; Code rippé issu de pamplemousse.asm
; par BeatriX
; merci IDA :) 



.386    
.model FLAT,c

.Data

aA  BYTE    80h,0 
byte_414B9C BYTE    0

.CODE 

PUBLIC SHA_1


; Appel de SHA_1
; SHA_1(Chaine_N2,nom,Valeurs_initiales)

SHA_1 PROC

  pushad
  mov ebp, esp
  mov     esi, [ebp+28h]    ; pointeur vers nom
  mov     ecx, [ebp+24h]      ; pointeur vers valeurs initiales
  push    ecx
  call    sub_403830
  mov     edi, esi
  or      ecx, 0FFFFFFFFh
  xor     eax, eax
  mov     edx, [ebp+24h]
  repne scasb
  not     ecx
  dec     ecx
  push    ecx
  push    esi
  push    edx
  call    sub_403860
  mov     eax, [ebp+24h]
  mov     ecx, [ebp+2Ch]     ; pointeur vers chaine N2
  push    eax
  push    ecx
  call    sub_403920
  add esp, 18h
  popad
  ret 
SHA_1 ENDP



sub_403830      proc near               ; CODE XREF: sub_401080+340p

arg_0           = dword ptr  4

                mov     eax, [esp+arg_0]
                xor     ecx, ecx
                mov     dword ptr [eax], 0D76AA478h
                mov     dword ptr [eax+4], 0E8C7B756h
                mov     dword ptr [eax+8], 242070DBh
                mov     dword ptr [eax+0Ch], 0C1BDCEEEh
                mov     dword ptr [eax+10h], 0F57C0FAFh
                mov     [eax+18h], ecx
                mov     [eax+14h], ecx
                retn
sub_403830      endp



sub_403860      proc near               ; CODE XREF: sub_401080+35Ap
                                        ; sub_403920+43p ...

arg_0           = dword ptr  4
arg_4           = dword ptr  8
arg_8           = dword ptr  0Ch

                mov     ecx, [esp+arg_8]
                push    ebx
                mov     ebx, [esp+4+arg_0]
                push    ebp
                push    esi
                lea     esi, ds:0[ecx*8]
                mov     edx, [ebx+14h]
                push    edi
                mov     eax, edx
                shr     eax, 3
                lea     edx, [edx+ecx*8]
                and     eax, 3Fh
                cmp     edx, esi
                mov     [ebx+14h], edx
                jnb     short loc_40388B
                inc     dword ptr [ebx+18h]

loc_40388B:                             ; CODE XREF: sub_403860+26j
                mov     edi, [ebx+18h]
                mov     edx, ecx
                shr     edx, 1Dh
                add     edi, edx
                lea     edx, [eax+ecx]
                cmp     edx, 3Fh
                mov     [ebx+18h], edi
                jbe     short loc_4038FB
                mov     ebp, 40h
                mov     esi, [esp+10h+arg_4]
                sub     ebp, eax
                lea     edi, [eax+ebx+1Ch]
                mov     ecx, ebp
                mov     eax, ecx
                shr     ecx, 2
                rep movsd
                mov     ecx, eax
                and     ecx, 3
                rep movsb
                lea     ecx, [ebx+1Ch]
                push    ecx
                push    ebx
                call    sub_4018B0
                mov     edi, [esp+18h+arg_8]
                lea     esi, [ebp+3Fh]
                add     esp, 8
                cmp     esi, edi
                jnb     short loc_4038F3

loc_4038D7:                             ; CODE XREF: sub_403860+91j
                mov     edx, [esp+10h+arg_4]
                lea     eax, [edx+esi-3Fh]
                push    eax
                push    ebx
                call    sub_4018B0
                add     esi, 40h
                add     esp, 8
                add     ebp, 40h
                cmp     esi, edi
                jb      short loc_4038D7

loc_4038F3:                             ; CODE XREF: sub_403860+75j
                mov     ecx, [esp+10h+arg_8]
                xor     eax, eax
                jmp     short loc_4038FD
; ---------------------------------------------------------------------------

loc_4038FB:                             ; CODE XREF: sub_403860+3Ej
                xor     ebp, ebp

loc_4038FD:                             ; CODE XREF: sub_403860+99j
                mov     edx, [esp+10h+arg_4]
                sub     ecx, ebp
                lea     edi, [eax+ebx+1Ch]
                mov     eax, ecx
                lea     esi, [edx+ebp]
                shr     ecx, 2
                rep movsd
                mov     ecx, eax
                and     ecx, 3
                rep movsb
                pop     edi
                pop     esi
                pop     ebp
                pop     ebx
                retn
sub_403860      endp



sub_403920      proc near               ; CODE XREF: sub_401080+36Ap


var_C           = byte ptr -0Ch
var_B           = byte ptr -0Bh
var_A           = byte ptr -0Ah
var_9           = byte ptr -9
var_8           = dword ptr -8
arg_0           = dword ptr  4
arg_4           = dword ptr  8

                sub     esp, 8
                xor     ecx, ecx
                push    ebp
                push    esi
                mov     esi, [esp+10h+arg_4]
                push    edi
                lea     eax, [esi+18h]

loc_40392F:                             ; CODE XREF: sub_403920+39j
                mov     edx, [eax]
                add     ecx, 4
                shr     edx, 18h
                mov     [esp+ecx+14h+var_C], dl
                mov     edx, [eax]
                shr     edx, 10h
                mov     [esp+ecx+14h+var_B], dl
                mov     edx, [eax]
                shr     edx, 8
                mov     [esp+ecx+14h+var_A], dl
                mov     dl, [eax]
                mov     [esp+ecx+14h+var_9], dl
                sub     eax, 4
                cmp     ecx, 8
                jb      short loc_40392F
                push    1
                push    offset aA       ; "Ç"
                push    esi
                call    sub_403860
                mov     eax, [esi+14h]
                lea     ebp, [esi+14h]
                and     eax, 1F8h
                add     esp, 0Ch
                cmp     eax, 1C0h
                jz      short loc_40399E

loc_40397D:                             ; CODE XREF: sub_403920+7Cj
                push    1
                push    offset byte_414B9C
                push    esi
                call    sub_403860
                mov     ecx, [ebp+0]
                add     esp, 0Ch
                and     ecx, 1F8h
                cmp     ecx, 1C0h
                jnz     short loc_40397D

loc_40399E:                             ; CODE XREF: sub_403920+5Bj
                lea     edx, [esp+14h+var_8]
                push    8
                push    edx
                push    esi
                call    sub_403860
                mov     edx, [esp+20h+arg_0]
                or      edi, 0FFFFFFFFh
                add     esp, 0Ch
                mov     ecx, esi
                lea     eax, [edx+1]
                sub     edi, edx

loc_4039BC:                             ; CODE XREF: sub_403920+C5j
                mov     edx, [ecx]
                add     eax, 4
                shr     edx, 18h
                mov     [eax-5], dl
                mov     edx, [ecx]
                shr     edx, 10h
                mov     [eax-4], dl
                mov     edx, [ecx]
                shr     edx, 8
                mov     [eax-3], dl
                mov     dl, [ecx]
                mov     [eax-2], dl
                lea     edx, [edi+eax]
                add     ecx, 4
                cmp     edx, 14h
                jb      short loc_4039BC
                mov     ecx, 10h
                xor     eax, eax
                lea     edi, [esi+1Ch]
                rep stosd
                mov     [esi], eax
                xor     ecx, ecx
                mov     [esi+4], eax
                pop     edi
                mov     [esi+8], eax
                mov     [esi+0Ch], eax
                mov     [esi+10h], eax
                mov     [ebp+0], ecx
                mov     [ebp+4], ecx
                pop     esi
                pop     ebp
                add     esp, 8
                retn
sub_403920      endp


sub_4018B0      proc near               ; CODE XREF: sub_403860+64p
                                        ; sub_403860+81p

var_44          = dword ptr -44h
var_40          = dword ptr -40h
var_3C          = dword ptr -3Ch
var_38          = dword ptr -38h
var_34          = dword ptr -34h
var_30          = dword ptr -30h
var_2C          = dword ptr -2Ch
var_28          = dword ptr -28h
var_24          = dword ptr -24h
var_20          = dword ptr -20h
var_1C          = dword ptr -1Ch
var_18          = dword ptr -18h
var_14          = dword ptr -14h
var_10          = dword ptr -10h
var_C           = dword ptr -0Ch
var_8           = dword ptr -8
var_4           = dword ptr -4
arg_0           = dword ptr  4
arg_4           = dword ptr  8

                sub     esp, 44h
                mov     eax, [esp+44h+arg_4]
                push    ebx
                push    ebp
                push    esi
                mov     esi, [eax]
                push    edi
                mov     ecx, [esp+54h+arg_0]
                mov     edi, esi
                mov     ebp, esi
                and     edi, 0FF0000h
                mov     ebx, [ecx+4]
                mov     edx, [ecx]
                shr     ebp, 10h
                or      edi, ebp
                mov     ebp, esi
                shl     ebp, 10h
                and     esi, 0FF00h
                mov     [esp+54h+var_40], ebx
                or      ebp, esi
                mov     esi, ebx
                shr     edi, 8
                shl     ebp, 8
                or      edi, ebp
                mov     ebp, [ecx+0Ch]
                not     esi
                and     esi, ebp
                mov     ebp, [ecx+8]
                and     ebp, ebx
                mov     ebx, edx
                or      esi, ebp
                mov     ebp, edx
                shr     ebx, 1Bh
                shl     ebp, 5
                mov     [esp+54h+var_4], edi
                or      ebx, ebp
                add     edi, esi
                mov     esi, [ecx+10h]
                add     ebx, edi
                mov     edi, [esp+54h+var_40]
                lea     esi, [esi+ebx+5A827999h]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [eax+4]
                mov     [esp+54h+var_40], ebx
                mov     ebx, edi
                mov     ebp, edi
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, edi
                shl     ebp, 10h
                and     edi, 0FF00h
                or      ebp, edi
                mov     edi, edx
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, esi
                mov     [esp+54h+var_8], ebx
                mov     ebx, [ecx+8]
                not     edi
                and     edi, ebx
                mov     ebx, [esp+54h+var_40]
                and     ebx, edx
                or      edi, ebx
                mov     ebx, esi
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_8]
                add     ebp, edi
                mov     edi, [ecx+0Ch]
                add     ebx, ebp
                lea     edi, [edi+ebx+5A827999h]
                mov     ebx, edx
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     [esp+54h+arg_0], ebx
                mov     edx, [eax+8]
                mov     ebx, edx
                mov     ebp, edx
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, edx
                shl     ebp, 10h
                and     edx, 0FF00h
                or      ebp, edx
                mov     edx, esi
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, [esp+54h+arg_0]
                mov     [esp+54h+var_20], ebx
                mov     ebx, [esp+54h+var_40]
                not     edx
                and     edx, ebx
                mov     ebx, esi
                and     ebx, ebp
                mov     ebp, edi
                or      edx, ebx
                mov     ebx, edi
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_20]
                add     ebp, edx
                mov     edx, [ecx+8]
                add     ebx, ebp
                lea     edx, [edx+ebx+5A827999h]
                mov     ebx, esi
                shl     ebx, 1Eh
                shr     esi, 2
                or      ebx, esi
                mov     esi, [eax+0Ch]
                mov     [esp+54h+arg_4], ebx
                mov     ebx, esi
                mov     ebp, esi
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, esi
                shl     ebp, 10h
                and     esi, 0FF00h
                or      ebp, esi
                mov     esi, edi
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, edx
                mov     [esp+54h+var_1C], ebx
                mov     ebx, [esp+54h+arg_0]
                not     esi
                and     esi, ebx
                mov     ebx, [esp+54h+arg_4]
                and     ebx, edi
                or      esi, ebx
                mov     ebx, edx
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_1C]
                add     ebp, esi
                mov     esi, [esp+54h+var_40]
                add     ebx, ebp
                lea     esi, [esi+ebx+5A827999h]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [eax+10h]
                mov     [esp+54h+var_3C], ebx
                mov     ebx, edi
                mov     ebp, edi
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, edi
                shr     ebx, 8
                shl     ebp, 10h
                and     edi, 0FF00h
                or      ebp, edi
                mov     edi, edx
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, esi
                mov     [esp+54h+var_18], ebx
                mov     ebx, [esp+54h+arg_4]
                not     edi
                and     edi, ebx
                mov     ebx, [esp+54h+var_3C]
                and     ebx, edx
                or      edi, ebx
                mov     ebx, esi
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_18]
                add     ebp, edi
                mov     edi, [esp+54h+arg_0]
                add     ebx, ebp
                lea     edi, [edi+ebx+5A827999h]
                mov     ebx, edx
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, [eax+14h]
                mov     [esp+54h+var_44], ebx
                mov     ebx, edx
                mov     ebp, edx
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, edx
                shl     ebp, 10h
                and     edx, 0FF00h
                or      ebp, edx
                mov     edx, esi
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, edi
                mov     [esp+54h+var_14], ebx
                mov     ebx, [esp+54h+var_3C]
                not     edx
                and     edx, ebx
                mov     ebx, [esp+54h+var_44]
                and     ebx, esi
                or      edx, ebx
                mov     ebx, edi
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_14]
                add     ebp, edx
                mov     edx, [esp+54h+arg_4]
                add     ebx, ebp
                lea     edx, [edx+ebx+5A827999h]
                mov     ebx, esi
                shl     ebx, 1Eh
                shr     esi, 2
                or      ebx, esi
                mov     esi, [eax+18h]
                mov     [esp+54h+var_40], ebx
                mov     ebx, esi
                mov     ebp, esi
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, esi
                shl     ebp, 10h
                and     esi, 0FF00h
                or      ebp, esi
                mov     esi, edi
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     [esp+54h+var_10], ebx
                mov     ebx, [esp+54h+var_44]
                not     esi
                and     esi, ebx
                mov     ebx, [esp+54h+var_40]
                and     ebx, edi
                mov     ebp, edx
                or      esi, ebx
                mov     ebx, edx
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_10]
                add     ebp, esi
                mov     esi, [esp+54h+var_3C]
                add     ebx, ebp
                lea     esi, [esi+ebx+5A827999h]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [eax+1Ch]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, edi
                mov     ebp, edi
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, edi
                shl     ebp, 10h
                and     edi, 0FF00h
                or      ebp, edi
                mov     edi, edx
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, [esp+54h+arg_0]
                mov     [esp+54h+var_C], ebx
                mov     ebx, [esp+54h+var_40]
                not     edi
                and     edi, ebx
                mov     ebx, edx
                and     ebx, ebp
                mov     ebp, esi
                or      edi, ebx
                mov     ebx, esi
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_C]
                add     ebp, edi
                mov     edi, [esp+54h+var_44]
                add     ebx, ebp
                lea     edi, [edi+ebx+5A827999h]
                mov     ebx, edx
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, [eax+20h]
                mov     [esp+54h+arg_4], ebx
                mov     ebx, edx
                mov     ebp, edx
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, edx
                shl     ebp, 10h
                and     edx, 0FF00h
                or      ebp, edx
                mov     edx, esi
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, edi
                mov     [esp+54h+var_30], ebx
                mov     ebx, [esp+54h+arg_0]
                not     edx
                and     edx, ebx
                mov     ebx, [esp+54h+arg_4]
                and     ebx, esi
                or      edx, ebx
                mov     ebx, edi
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_30]
                add     ebp, edx
                mov     edx, [esp+54h+var_40]
                add     ebx, ebp
                lea     edx, [edx+ebx+5A827999h]
                mov     ebx, esi
                shl     ebx, 1Eh
                shr     esi, 2
                or      ebx, esi
                mov     esi, [eax+24h]
                mov     [esp+54h+var_3C], ebx
                mov     ebx, esi
                mov     ebp, esi
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, esi
                shl     ebp, 10h
                and     esi, 0FF00h
                or      ebp, esi
                mov     esi, edi
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, edx
                mov     [esp+54h+var_38], ebx
                mov     ebx, [esp+54h+arg_4]
                not     esi
                and     esi, ebx
                mov     ebx, [esp+54h+var_3C]
                and     ebx, edi
                or      esi, ebx
                mov     ebx, edx
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_38]
                add     ebp, esi
                mov     esi, [esp+54h+arg_0]
                add     ebx, ebp
                lea     esi, [esi+ebx+5A827999h]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [eax+28h]
                mov     [esp+54h+var_44], ebx
                mov     ebx, edi
                mov     ebp, edi
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, edi
                shl     ebp, 10h
                and     edi, 0FF00h
                or      ebp, edi
                mov     edi, edx
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, esi
                mov     [esp+54h+var_2C], ebx
                mov     ebx, [esp+54h+var_3C]
                not     edi
                and     edi, ebx
                mov     ebx, [esp+54h+var_44]
                and     ebx, edx
                or      edi, ebx
                mov     ebx, esi
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_2C]
                add     ebp, edi
                mov     edi, [esp+54h+arg_4]
                add     ebx, ebp
                lea     edi, [edi+ebx+5A827999h]
                mov     ebx, edx
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, [eax+2Ch]
                mov     [esp+54h+var_40], ebx
                mov     ebx, edx
                mov     ebp, edx
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, edx
                shl     ebp, 10h
                and     edx, 0FF00h
                or      ebp, edx
                mov     edx, esi
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, edi
                mov     [esp+54h+var_28], ebx
                mov     ebx, [esp+54h+var_44]
                not     edx
                and     edx, ebx
                mov     ebx, [esp+54h+var_40]
                and     ebx, esi
                or      edx, ebx
                mov     ebx, edi
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_28]
                add     ebp, edx
                mov     edx, [esp+54h+var_3C]
                add     ebx, ebp
                lea     edx, [edx+ebx+5A827999h]
                mov     ebx, esi
                shl     ebx, 1Eh
                shr     esi, 2
                or      ebx, esi
                mov     esi, [eax+30h]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, esi
                mov     ebp, esi
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, esi
                shl     ebp, 10h
                and     esi, 0FF00h
                or      ebp, esi
                mov     esi, edi
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, [esp+54h+arg_0]
                mov     [esp+54h+var_24], ebx
                mov     ebx, [esp+54h+var_40]
                not     esi
                and     esi, ebx
                mov     ebx, edi
                and     ebx, ebp
                mov     ebp, edx
                or      esi, ebx
                mov     ebx, edx
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_24]
                add     ebp, esi
                mov     esi, [esp+54h+var_44]
                add     ebx, ebp
                lea     esi, [esi+ebx+5A827999h]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [eax+34h]
                mov     [esp+54h+arg_4], ebx
                mov     ebx, edi
                mov     ebp, edi
                and     ebx, 0FF0000h
                shr     ebp, 10h
                or      ebx, ebp
                mov     ebp, edi
                and     edi, 0FF00h
                shl     ebp, 10h
                or      ebp, edi
                mov     edi, edx
                shr     ebx, 8
                shl     ebp, 8
                or      ebx, ebp
                mov     ebp, esi
                mov     [esp+54h+var_34], ebx
                mov     ebx, [esp+54h+arg_0]
                not     edi
                and     edi, ebx
                mov     ebx, [esp+54h+arg_4]
                and     ebx, edx
                or      edi, ebx
                mov     ebx, esi
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+var_34]
                add     ebp, edi
                mov     edi, [esp+54h+var_40]
                add     ebx, ebp
                lea     edi, [edi+ebx+5A827999h]
                mov     ebx, edx
                mov     [esp+54h+var_40], edi
                mov     edi, [eax+38h]
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, edi
                mov     ebp, edi
                and     edx, 0FF0000h
                shr     ebp, 10h
                or      edx, ebp
                mov     ebp, edi
                shl     ebp, 10h
                and     edi, 0FF00h
                mov     [esp+54h+var_3C], ebx
                or      ebp, edi
                mov     edi, [esp+54h+arg_4]
                shr     edx, 8
                shl     ebp, 8
                or      edx, ebp
                mov     ebp, esi
                not     ebp
                and     ebp, edi
                mov     edi, [esp+54h+var_40]
                and     ebx, esi
                or      ebp, ebx
                mov     ebx, edi
                shr     ebx, 1Bh
                shl     edi, 5
                or      ebx, edi
                mov     edi, edx
                add     edi, ebp
                add     ebx, edi
                mov     edi, [esp+54h+arg_0]
                lea     edi, [edi+ebx+5A827999h]
                mov     ebx, esi
                mov     [esp+54h+arg_0], edi
                mov     edi, [eax+3Ch]
                shl     ebx, 1Eh
                shr     esi, 2
                or      ebx, esi
                mov     esi, edi
                mov     ebp, edi
                and     esi, 0FF0000h
                shr     ebp, 10h
                or      esi, ebp
                mov     ebp, edi
                shl     ebp, 10h
                and     edi, 0FF00h
                mov     [esp+54h+var_44], ebx
                or      ebp, edi
                mov     edi, [esp+54h+var_40]
                shr     esi, 8
                shl     ebp, 8
                or      esi, ebp
                mov     ebp, edi
                not     ebp
                and     ebp, [esp+54h+var_3C]
                and     ebx, edi
                mov     edi, [esp+54h+arg_0]
                or      ebp, ebx
                mov     ebx, edi
                shr     ebx, 1Bh
                shl     edi, 5
                or      ebx, edi
                mov     edi, esi
                add     edi, ebp
                mov     ebp, [esp+54h+var_30]
                add     ebx, edi
                mov     edi, [esp+54h+arg_4]
                lea     edi, [edi+ebx+5A827999h]
                mov     [esp+54h+arg_4], edi
                mov     edi, [esp+54h+var_40]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [esp+54h+var_34]
                xor     edi, ebp
                mov     ebp, [esp+54h+var_20]
                xor     edi, ebp
                mov     ebp, [esp+54h+var_4]
                xor     edi, ebp
                mov     [esp+54h+var_40], ebx
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+arg_0]
                mov     [esp+54h+var_4], ebp
                mov     [eax], ebp
                mov     ebp, edi
                and     ebx, edi
                mov     edi, [esp+54h+arg_4]
                not     ebp
                and     ebp, [esp+54h+var_44]
                or      ebp, ebx
                mov     ebx, edi
                shr     ebx, 1Bh
                shl     edi, 5
                or      ebx, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebp
                mov     ebp, [esp+54h+var_38]
                add     ebx, edi
                mov     edi, [esp+54h+var_3C]
                lea     edi, [edi+ebx+5A827999h]
                mov     [esp+54h+var_3C], edi
                mov     edi, [esp+54h+arg_0]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, edx
                xor     edi, ebp
                mov     ebp, [esp+54h+var_1C]
                xor     edi, ebp
                mov     ebp, [esp+54h+var_8]
                xor     edi, ebp
                mov     [esp+54h+arg_0], ebx
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+arg_4]
                mov     [esp+54h+var_4], ebp
                mov     [eax+4], ebp
                mov     ebp, edi
                and     edi, ebx
                not     ebp
                and     ebp, [esp+54h+var_40]
                or      ebp, edi
                mov     edi, [esp+54h+var_3C]
                mov     ebx, edi
                shr     ebx, 1Bh
                shl     edi, 5
                or      ebx, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebp
                mov     ebp, [esp+54h+var_2C]
                add     ebx, edi
                mov     edi, [esp+54h+var_44]
                lea     edi, [edi+ebx+5A827999h]
                mov     [esp+54h+var_44], edi
                mov     edi, [esp+54h+arg_4]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, esi
                xor     edi, ebp
                mov     ebp, [esp+54h+var_18]
                xor     edi, ebp
                mov     ebp, [esp+54h+var_20]
                xor     edi, ebp
                mov     [esp+54h+arg_4], ebx
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+var_3C]
                mov     [esp+54h+var_4], ebp
                mov     [eax+8], ebp
                mov     ebp, edi
                and     ebx, edi
                mov     edi, [esp+54h+var_44]
                not     ebp
                and     ebp, [esp+54h+arg_0]
                or      ebp, ebx
                mov     ebx, edi
                shr     ebx, 1Bh
                shl     edi, 5
                or      ebx, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebp
                mov     ebp, [eax]
                add     ebx, edi
                mov     edi, [esp+54h+var_40]
                lea     edi, [edi+ebx+5A827999h]
                mov     [esp+54h+var_40], edi
                mov     edi, [esp+54h+var_3C]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [esp+54h+var_28]
                xor     edi, [esp+54h+var_14]
                mov     [esp+54h+var_3C], ebx
                xor     edi, [esp+54h+var_1C]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+var_44]
                mov     [esp+54h+var_4], ebp
                mov     [eax+0Ch], ebp
                mov     ebp, edi
                and     ebx, edi
                mov     edi, [esp+54h+var_40]
                not     ebp
                and     ebp, [esp+54h+arg_4]
                or      ebp, ebx
                mov     ebx, edi
                shr     ebx, 1Bh
                shl     edi, 5
                or      ebx, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebp
                add     ebx, edi
                mov     edi, [esp+54h+arg_0]
                lea     edi, [edi+ebx+5A827999h]
                mov     [esp+54h+arg_0], edi
                mov     edi, [esp+54h+var_44]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [esp+54h+var_24]
                mov     ebp, [eax+4]
                xor     edi, [esp+54h+var_10]
                mov     [esp+54h+var_44], ebx
                xor     edi, [esp+54h+var_18]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+arg_0]
                mov     [esp+54h+var_4], ebp
                mov     [eax+10h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_40]
                mov     [esp+54h+var_8], ebp
                mov     ebp, [esp+54h+var_3C]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_8]
                xor     ebp, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+arg_4]
                lea     edi, [edi+ebp+6ED9EBA1h]
                mov     ebp, [eax+8]
                mov     [esp+54h+arg_4], edi
                mov     edi, [esp+54h+var_40]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [esp+54h+var_34]
                xor     edi, [esp+54h+var_C]
                mov     [esp+54h+var_40], ebx
                xor     edi, [esp+54h+var_14]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+arg_4]
                mov     [esp+54h+var_4], ebp
                mov     [eax+14h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+arg_0]
                mov     [esp+54h+var_8], ebp
                mov     ebp, [esp+54h+var_44]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_8]
                xor     ebp, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+var_3C]
                lea     ebp, [edi+ebp+6ED9EBA1h]
                mov     edi, [esp+54h+arg_0]
                mov     ebx, edi
                mov     [esp+54h+var_3C], ebp
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, edx
                xor     edi, [esp+54h+var_30]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, [eax+0Ch]
                xor     edi, [esp+54h+var_10]
                xor     edi, ebx
                mov     ebx, edi
                add     edi, edi
                shr     ebx, 1Fh
                or      ebx, edi
                mov     [esp+54h+var_4], ebx
                mov     [eax+18h], ebx
                mov     ebx, ebp
                mov     edi, [esp+54h+var_40]
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+arg_4]
                xor     ebp, edi
                mov     edi, [esp+54h+arg_0]
                xor     ebp, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+var_44]
                lea     edi, [edi+ebp+6ED9EBA1h]
                mov     ebp, [eax+10h]
                mov     [esp+54h+var_44], edi
                mov     edi, [esp+54h+arg_4]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, esi
                xor     edi, [esp+54h+var_38]
                mov     [esp+54h+arg_4], ebx
                xor     edi, [esp+54h+var_C]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+var_44]
                mov     [esp+54h+var_4], ebp
                mov     [eax+1Ch], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_3C]
                xor     ebx, edi
                mov     edi, [esp+54h+arg_0]
                xor     ebx, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebp
                mov     ebp, [eax+14h]
                add     ebx, edi
                mov     edi, [esp+54h+var_40]
                lea     edi, [edi+ebx+6ED9EBA1h]
                mov     [esp+54h+var_40], edi
                mov     edi, [esp+54h+var_3C]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [esp+54h+var_2C]
                xor     edi, [esp+54h+var_30]
                mov     [esp+54h+var_3C], ebx
                xor     edi, ebp
                mov     ebp, [eax]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+var_40]
                mov     [esp+54h+var_4], ebp
                mov     [eax+20h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_44]
                mov     [esp+54h+var_8], ebp
                mov     ebp, [esp+54h+arg_4]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_8]
                xor     ebp, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+arg_0]
                lea     edi, [edi+ebp+6ED9EBA1h]
                mov     [esp+54h+arg_0], edi
                mov     edi, [esp+54h+var_44]
                mov     ebp, [eax+18h]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [esp+54h+var_28]
                xor     edi, [esp+54h+var_38]
                mov     [esp+54h+var_44], ebx
                xor     edi, ebp
                mov     ebp, [eax+4]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+arg_0]
                mov     [esp+54h+var_4], ebp
                mov     [eax+24h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_40]
                mov     [esp+54h+var_8], ebp
                mov     ebp, [esp+54h+var_3C]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_8]
                xor     ebp, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+arg_4]
                lea     edi, [edi+ebp+6ED9EBA1h]
                mov     ebp, [eax+1Ch]
                mov     [esp+54h+arg_4], edi
                mov     edi, [esp+54h+var_40]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [esp+54h+var_24]
                xor     edi, [esp+54h+var_2C]
                mov     [esp+54h+var_40], ebx
                xor     edi, ebp
                mov     ebp, [eax+8]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+arg_4]
                mov     [esp+54h+var_4], ebp
                mov     [eax+28h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+arg_0]
                mov     [esp+54h+var_8], ebp
                mov     ebp, [esp+54h+var_44]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_8]
                xor     ebp, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+var_3C]
                lea     ebp, [edi+ebp+6ED9EBA1h]
                mov     edi, [esp+54h+arg_0]
                mov     ebx, edi
                mov     [esp+54h+var_3C], ebp
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [esp+54h+var_34]
                xor     edi, [esp+54h+var_28]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, [eax+20h]
                xor     edi, ebx
                mov     ebx, [eax+0Ch]
                xor     edi, ebx
                mov     ebx, edi
                add     edi, edi
                shr     ebx, 1Fh
                or      ebx, edi
                mov     edi, [esp+54h+var_40]
                mov     [esp+54h+var_4], ebx
                mov     [eax+2Ch], ebx
                mov     ebx, ebp
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+arg_4]
                xor     ebp, edi
                mov     edi, [esp+54h+arg_0]
                xor     ebp, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+var_44]
                lea     edi, [edi+ebp+6ED9EBA1h]
                mov     ebp, [eax+24h]
                mov     [esp+54h+var_44], edi
                mov     edi, [esp+54h+arg_4]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, edx
                xor     edi, [esp+54h+var_24]
                mov     [esp+54h+arg_4], ebx
                xor     edi, ebp
                mov     ebp, [eax+10h]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+var_44]
                mov     [esp+54h+var_4], ebp
                mov     [eax+30h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_3C]
                xor     ebx, edi
                mov     edi, [esp+54h+arg_0]
                xor     ebx, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebp
                mov     ebp, [eax+28h]
                add     ebx, edi
                mov     edi, [esp+54h+var_40]
                lea     edi, [edi+ebx+6ED9EBA1h]
                mov     [esp+54h+var_40], edi
                mov     edi, [esp+54h+var_3C]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, esi
                xor     edi, [esp+54h+var_34]
                mov     [esp+54h+var_3C], ebx
                xor     edi, ebp
                mov     ebp, [eax+14h]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+var_40]
                mov     [esp+54h+var_4], ebp
                mov     [eax+34h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     [esp+54h+var_8], ebp
                mov     ebp, [esp+54h+arg_4]
                xor     ebp, ebx
                mov     edi, [esp+54h+var_44]
                mov     ebx, [esp+54h+var_8]
                xor     ebp, edi
                mov     edi, [esp+54h+var_4]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+arg_0]
                lea     edi, [edi+ebp+6ED9EBA1h]
                mov     ebp, [esp+54h+var_44]
                mov     ebx, ebp
                shl     ebx, 1Eh
                shr     ebp, 2
                or      ebx, ebp
                mov     ebp, [eax+2Ch]
                xor     edx, ebp
                mov     ebp, [eax+18h]
                xor     edx, ebp
                mov     ebp, [eax]
                xor     edx, ebp
                mov     [esp+54h+var_44], ebx
                mov     ebp, edx
                add     edx, edx
                shr     ebp, 1Fh
                or      ebp, edx
                mov     edx, edi
                mov     [esp+54h+arg_0], ebp
                mov     [eax+38h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edx, 5
                or      ebp, edx
                mov     edx, [esp+54h+var_40]
                mov     [esp+54h+var_4], ebp
                mov     ebp, [esp+54h+var_3C]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_4]
                xor     ebp, edx
                mov     edx, [esp+54h+arg_0]
                add     edx, ebx
                add     ebp, edx
                mov     edx, [esp+54h+arg_4]
                lea     edx, [edx+ebp+6ED9EBA1h]
                mov     ebp, [esp+54h+var_40]
                mov     ebx, ebp
                shl     ebx, 1Eh
                shr     ebp, 2
                or      ebx, ebp
                mov     ebp, [eax+30h]
                xor     esi, ebp
                mov     ebp, [eax+1Ch]
                xor     esi, ebp
                mov     ebp, [eax+4]
                xor     esi, ebp
                mov     [esp+54h+var_40], ebx
                mov     ebp, esi
                add     esi, esi
                shr     ebp, 1Fh
                or      ebp, esi
                mov     esi, edx
                mov     [esp+54h+arg_0], ebp
                mov     [eax+3Ch], ebp
                mov     ebp, edx
                shr     ebp, 1Bh
                shl     esi, 5
                or      ebp, esi
                mov     esi, [esp+54h+arg_0]
                mov     [esp+54h+arg_4], ebp
                mov     ebp, [esp+54h+var_44]
                xor     ebp, ebx
                mov     ebx, [esp+54h+arg_4]
                add     esi, ebx
                xor     ebp, edi
                mov     ebx, edi
                add     ebp, esi
                mov     esi, [esp+54h+var_3C]
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [eax+34h]
                lea     esi, [esi+ebp+6ED9EBA1h]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, [eax+20h]
                mov     ebp, [eax+8]
                xor     edi, ebx
                mov     ebx, [eax]
                xor     edi, ebp
                mov     ebp, edx
                xor     edi, ebx
                mov     ebx, edi
                add     edi, edi
                shr     ebx, 1Fh
                or      ebx, edi
                mov     edi, esi
                mov     [esp+54h+var_C], ebx
                mov     [eax], ebx
                mov     ebx, esi
                shr     ebx, 1Bh
                shl     edi, 5
                or      ebx, edi
                mov     edi, [esp+54h+var_40]
                xor     ebp, edi
                mov     edi, [esp+54h+arg_0]
                xor     ebp, edi
                mov     edi, [esp+54h+var_C]
                add     edi, ebx
                mov     ebx, edx
                add     ebp, edi
                mov     edi, [esp+54h+var_44]
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, [eax+38h]
                lea     edi, [edi+ebp+6ED9EBA1h]
                mov     ebp, [eax+24h]
                mov     [esp+54h+var_38], edx
                xor     edx, ebp
                mov     ebp, [eax+0Ch]
                mov     [esp+54h+arg_4], ebx
                xor     edx, ebp
                mov     ebp, [eax+4]
                xor     edx, ebp
                xor     ebx, esi
                mov     ebp, edx
                add     edx, edx
                shr     ebp, 1Fh
                or      ebp, edx
                mov     edx, edi
                mov     [esp+54h+var_34], ebp
                mov     [eax+4], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edx, 5
                or      ebp, edx
                mov     edx, [esp+54h+arg_0]
                xor     ebx, edx
                mov     edx, [esp+54h+var_34]
                add     edx, ebp
                mov     ebp, esi
                add     ebx, edx
                mov     edx, [esp+54h+var_40]
                shl     ebp, 1Eh
                shr     esi, 2
                lea     ebx, [edx+ebx+6ED9EBA1h]
                mov     edx, [eax+3Ch]
                or      ebp, esi
                mov     esi, [eax+28h]
                mov     [esp+54h+var_34], edx
                xor     edx, esi
                mov     esi, [eax+10h]
                mov     [esp+54h+var_3C], ebp
                xor     edx, esi
                mov     esi, [eax+8]
                xor     edx, esi
                mov     esi, edx
                add     edx, edx
                shr     esi, 1Fh
                or      esi, edx
                mov     edx, ebx
                mov     [esp+54h+var_30], esi
                mov     [eax+8], esi
                mov     esi, ebx
                shr     esi, 1Bh
                shl     edx, 5
                or      esi, edx
                mov     edx, [esp+54h+var_30]
                mov     [esp+54h+var_4], esi
                mov     esi, [esp+54h+arg_4]
                xor     esi, ebp
                mov     ebp, [esp+54h+var_4]
                xor     esi, edi
                add     edx, ebp
                add     esi, edx
                mov     edx, [esp+54h+arg_0]
                lea     ebp, [edx+esi+6ED9EBA1h]
                mov     edx, [eax+2Ch]
                xor     edx, [eax+14h]
                mov     esi, edi
                shl     esi, 1Eh
                xor     edx, [eax+0Ch]
                shr     edi, 2
                or      esi, edi
                mov     edi, [eax]
                xor     edx, edi
                mov     [esp+54h+var_44], esi
                mov     edi, edx
                add     edx, edx
                shr     edi, 1Fh
                or      edi, edx
                mov     edx, ebp
                mov     [esp+54h+var_30], edi
                mov     [eax+0Ch], edi
                mov     edi, ebp
                shr     edi, 1Bh
                shl     edx, 5
                or      edi, edx
                mov     edx, [esp+54h+var_30]
                mov     [esp+54h+arg_0], edi
                mov     edi, [esp+54h+var_3C]
                xor     edi, esi
                mov     esi, [esp+54h+arg_0]
                xor     edi, ebx
                add     edx, esi
                add     edi, edx
                mov     edx, [esp+54h+arg_4]
                mov     esi, ebx
                lea     edi, [edx+edi+6ED9EBA1h]
                mov     edx, [eax+30h]
                xor     edx, [eax+18h]
                shl     esi, 1Eh
                xor     edx, [eax+10h]
                shr     ebx, 2
                or      esi, ebx
                mov     ebx, [eax+4]
                xor     edx, ebx
                mov     [esp+54h+var_40], esi
                mov     ebx, edx
                add     edx, edx
                shr     ebx, 1Fh
                or      ebx, edx
                mov     edx, edi
                mov     [esp+54h+var_30], ebx
                mov     [eax+10h], ebx
                mov     ebx, edi
                shr     ebx, 1Bh
                shl     edx, 5
                or      ebx, edx
                mov     edx, [esp+54h+var_30]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, [esp+54h+var_44]
                xor     ebx, esi
                mov     esi, [esp+54h+arg_0]
                xor     ebx, ebp
                add     edx, esi
                add     ebx, edx
                mov     edx, [esp+54h+var_3C]
                mov     esi, [eax+8]
                lea     ebx, [edx+ebx+6ED9EBA1h]
                mov     edx, ebp
                shl     edx, 1Eh
                shr     ebp, 2
                or      edx, ebp
                mov     [esp+54h+arg_0], edx
                mov     edx, [eax+34h]
                mov     ebp, [eax+1Ch]
                xor     edx, ebp
                mov     ebp, [eax+14h]
                xor     edx, ebp
                mov     ebp, edi
                xor     edx, esi
                mov     esi, edx
                add     edx, edx
                shr     esi, 1Fh
                or      esi, edx
                mov     edx, ebx
                mov     [esp+54h+var_30], esi
                mov     [eax+14h], esi
                mov     esi, ebx
                shr     esi, 1Bh
                shl     edx, 5
                or      esi, edx
                mov     edx, [esp+54h+var_40]
                xor     ebp, edx
                mov     edx, [esp+54h+arg_0]
                xor     ebp, edx
                mov     edx, [esp+54h+var_30]
                add     edx, esi
                mov     esi, edi
                add     ebp, edx
                mov     edx, [esp+54h+var_44]
                shl     esi, 1Eh
                lea     ebp, [edx+ebp+6ED9EBA1h]
                mov     edx, [esp+54h+var_38]
                xor     edx, [eax+20h]
                shr     edi, 2
                xor     edx, [eax+18h]
                or      esi, edi
                mov     edi, [eax+0Ch]
                mov     [esp+54h+arg_4], esi
                xor     edx, edi
                xor     esi, ebx
                mov     edi, edx
                add     edx, edx
                shr     edi, 1Fh
                or      edi, edx
                mov     edx, ebp
                mov     [esp+54h+var_30], edi
                mov     [eax+18h], edi
                mov     edi, ebp
                shr     edi, 1Bh
                shl     edx, 5
                or      edi, edx
                mov     edx, [esp+54h+arg_0]
                xor     esi, edx
                mov     edx, [esp+54h+var_30]
                add     edx, edi
                mov     edi, ebx
                add     esi, edx
                mov     edx, [esp+54h+var_40]
                shl     edi, 1Eh
                lea     edx, [edx+esi+6ED9EBA1h]
                mov     esi, [esp+54h+var_34]
                xor     esi, [eax+24h]
                shr     ebx, 2
                xor     esi, [eax+1Ch]
                or      edi, ebx
                mov     ebx, [eax+10h]
                mov     [esp+54h+var_3C], edi
                xor     esi, ebx
                mov     ebx, esi
                add     esi, esi
                shr     ebx, 1Fh
                or      ebx, esi
                mov     esi, edx
                mov     [esp+54h+var_30], ebx
                mov     [eax+1Ch], ebx
                mov     ebx, edx
                shr     ebx, 1Bh
                shl     esi, 5
                or      ebx, esi
                mov     esi, [esp+54h+var_30]
                mov     [esp+54h+var_4], ebx
                mov     ebx, [esp+54h+arg_4]
                xor     ebx, edi
                xor     ebx, ebp
                mov     edi, [esp+54h+var_4]
                add     esi, edi
                mov     edi, ebp
                add     ebx, esi
                mov     esi, [esp+54h+arg_0]
                shl     edi, 1Eh
                lea     esi, [esi+ebx+6ED9EBA1h]
                mov     ebx, [eax+28h]
                xor     ebx, [eax+20h]
                shr     ebp, 2
                or      edi, ebp
                mov     ebp, [eax+14h]
                xor     ebx, ebp
                mov     ebp, [eax]
                xor     ebx, ebp
                mov     [esp+54h+var_44], edi
                mov     ebp, ebx
                add     ebx, ebx
                shr     ebp, 1Fh
                or      ebp, ebx
                mov     ebx, edi
                mov     [esp+54h+var_30], ebp
                mov     [eax+20h], ebp
                mov     ebp, [esp+54h+var_3C]
                or      ebx, edx
                and     ebx, ebp
                and     edi, edx
                or      ebx, edi
                mov     ebp, esi
                mov     edi, esi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebx
                mov     ebx, [eax+18h]
                add     ebp, edi
                mov     edi, [esp+54h+arg_4]
                lea     ebp, [edi+ebp-70E44324h]
                mov     edi, edx
                shl     edi, 1Eh
                shr     edx, 2
                or      edi, edx
                mov     edx, [eax+2Ch]
                xor     edx, [eax+24h]
                mov     [esp+54h+arg_4], ebp
                xor     edx, ebx
                mov     ebx, [eax+4]
                xor     edx, ebx
                mov     ebx, edx
                add     edx, edx
                shr     ebx, 1Fh
                or      ebx, edx
                mov     edx, [esp+54h+var_44]
                mov     [esp+54h+var_30], ebx
                mov     [eax+24h], ebx
                mov     ebx, edi
                or      ebx, esi
                and     ebx, edx
                mov     edx, edi
                and     edx, esi
                or      ebx, edx
                mov     edx, [esp+54h+var_30]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, ebp
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+arg_0]
                add     edx, ebp
                mov     ebp, [eax+1Ch]
                add     ebx, edx
                mov     edx, [esp+54h+var_3C]
                lea     edx, [edx+ebx-70E44324h]
                mov     ebx, esi
                shl     ebx, 1Eh
                shr     esi, 2
                or      ebx, esi
                mov     esi, [eax+30h]
                xor     esi, [eax+28h]
                mov     [esp+54h+arg_0], ebx
                xor     esi, ebp
                mov     ebp, [eax+8]
                xor     esi, ebp
                mov     ebp, esi
                add     esi, esi
                shr     ebp, 1Fh
                or      ebp, esi
                mov     esi, [esp+54h+arg_4]
                mov     [esp+54h+var_30], ebp
                mov     [eax+28h], ebp
                mov     ebp, edi
                or      ebp, ebx
                and     ebp, esi
                mov     esi, edi
                and     esi, ebx
                mov     ebx, edx
                or      ebp, esi
                mov     esi, edx
                shr     ebx, 1Bh
                shl     esi, 5
                or      ebx, esi
                mov     esi, [esp+54h+var_30]
                add     esi, ebp
                mov     ebp, [eax+20h]
                add     ebx, esi
                mov     esi, [esp+54h+var_44]
                lea     esi, [esi+ebx-70E44324h]
                mov     [esp+54h+var_44], esi
                mov     esi, [esp+54h+arg_4]
                mov     ebx, esi
                shl     ebx, 1Eh
                shr     esi, 2
                or      ebx, esi
                mov     esi, [eax+34h]
                xor     esi, [eax+2Ch]
                mov     [esp+54h+arg_4], ebx
                xor     esi, ebp
                mov     ebp, [eax+0Ch]
                xor     esi, ebp
                mov     ebp, esi
                add     esi, esi
                shr     ebp, 1Fh
                or      ebp, esi
                mov     esi, [esp+54h+arg_0]
                mov     [esp+54h+var_30], ebp
                mov     [eax+2Ch], ebp
                mov     ebp, edx
                or      ebp, esi
                and     ebp, ebx
                mov     ebx, edx
                and     ebx, esi
                mov     esi, [esp+54h+var_44]
                or      ebp, ebx
                mov     ebx, esi
                shr     ebx, 1Bh
                shl     esi, 5
                or      ebx, esi
                mov     esi, [esp+54h+var_30]
                add     esi, ebp
                mov     ebp, [eax+30h]
                add     ebx, esi
                mov     esi, edx
                shl     esi, 1Eh
                shr     edx, 2
                or      esi, edx
                mov     edx, [esp+54h+var_38]
                lea     edi, [edi+ebx-70E44324h]
                mov     ebx, [eax+24h]
                xor     edx, ebp
                mov     [esp+54h+var_3C], esi
                xor     edx, ebx
                mov     ebx, [eax+10h]
                xor     edx, ebx
                mov     ebx, edx
                add     edx, edx
                shr     ebx, 1Fh
                or      ebx, edx
                mov     edx, [esp+54h+var_44]
                mov     [esp+54h+var_30], ebx
                mov     [eax+30h], ebx
                mov     ebx, esi
                mov     ebp, [esp+54h+arg_4]
                or      ebx, edx
                and     ebx, ebp
                mov     ebp, esi
                and     ebp, edx
                mov     edx, edi
                or      ebx, ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edx, 5
                or      ebp, edx
                mov     edx, [esp+54h+var_30]
                add     edx, ebx
                mov     ebx, [esp+54h+var_44]
                add     ebp, edx
                mov     edx, [esp+54h+arg_0]
                lea     edx, [edx+ebp-70E44324h]
                mov     ebp, ebx
                shl     ebp, 1Eh
                shr     ebx, 2
                or      ebp, ebx
                mov     ebx, [esp+54h+var_34]
                xor     ebx, [eax+34h]
                mov     [esp+54h+var_44], ebp
                mov     ebp, [eax+28h]
                xor     ebx, ebp
                mov     ebp, [eax+14h]
                xor     ebx, ebp
                mov     ebp, ebx
                add     ebx, ebx
                shr     ebp, 1Fh
                or      ebp, ebx
                mov     ebx, [esp+54h+var_44]
                mov     [esp+54h+var_30], ebp
                mov     [eax+34h], ebp
                mov     ebp, ebx
                and     ebx, edi
                or      ebp, edi
                and     ebp, esi
                mov     esi, edx
                or      ebp, ebx
                mov     ebx, edx
                shr     ebx, 1Bh
                shl     esi, 5
                or      ebx, esi
                mov     esi, [esp+54h+var_30]
                add     esi, ebp
                add     ebx, esi
                mov     esi, [esp+54h+arg_4]
                lea     ebp, [esi+ebx-70E44324h]
                mov     ebx, [eax+2Ch]
                mov     esi, edi
                mov     [esp+54h+arg_4], ebp
                shl     esi, 1Eh
                shr     edi, 2
                or      esi, edi
                mov     edi, [esp+54h+var_38]
                xor     edi, ebx
                mov     ebx, [eax+18h]
                xor     edi, ebx
                mov     ebx, edi
                mov     edi, [eax]
                xor     ebx, edi
                mov     edi, ebx
                add     ebx, ebx
                shr     edi, 1Fh
                or      edi, ebx
                mov     ebx, esi
                mov     [esp+54h+var_30], edi
                mov     [eax+38h], edi
                mov     edi, [esp+54h+var_44]
                or      ebx, edx
                and     ebx, edi
                mov     edi, esi
                and     edi, edx
                or      ebx, edi
                mov     [esp+54h+arg_0], ebx
                mov     ebx, ebp
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     edi, [esp+54h+var_30]
                mov     ebp, [esp+54h+arg_0]
                add     edi, ebp
                mov     ebp, [eax+30h]
                add     ebx, edi
                mov     edi, [esp+54h+var_3C]
                lea     edi, [edi+ebx-70E44324h]
                mov     ebx, edx
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, [esp+54h+var_34]
                xor     edx, ebp
                mov     ebp, [eax+1Ch]
                xor     edx, ebp
                mov     [esp+54h+arg_0], ebx
                mov     ebp, edx
                mov     edx, [eax+4]
                xor     ebp, edx
                mov     edx, ebp
                add     ebp, ebp
                shr     edx, 1Fh
                or      edx, ebp
                mov     ebp, esi
                mov     [esp+54h+var_C], edx
                mov     [eax+3Ch], edx
                mov     edx, [esp+54h+arg_4]
                or      ebp, ebx
                and     ebp, edx
                mov     edx, esi
                and     edx, ebx
                mov     ebx, edi
                or      ebp, edx
                mov     edx, edi
                shr     ebx, 1Bh
                shl     edx, 5
                or      ebx, edx
                mov     edx, [esp+54h+var_C]
                add     edx, ebp
                mov     ebp, [eax+20h]
                add     ebx, edx
                mov     edx, [esp+54h+var_44]
                lea     edx, [edx+ebx-70E44324h]
                mov     [esp+54h+var_44], edx
                mov     edx, [esp+54h+arg_4]
                mov     ebx, edx
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, [eax+34h]
                xor     edx, ebp
                mov     ebp, [eax+8]
                xor     edx, ebp
                mov     ebp, [eax]
                xor     edx, ebp
                mov     [esp+54h+arg_4], ebx
                mov     ebp, edx
                add     edx, edx
                shr     ebp, 1Fh
                or      ebp, edx
                mov     edx, [esp+54h+arg_0]
                mov     [esp+54h+var_C], ebp
                mov     [eax], ebp
                mov     ebp, edi
                or      ebp, edx
                and     ebp, ebx
                mov     ebx, edi
                and     ebx, edx
                mov     edx, [esp+54h+var_44]
                or      ebp, ebx
                mov     ebx, edx
                shr     ebx, 1Bh
                shl     edx, 5
                or      ebx, edx
                mov     edx, [esp+54h+var_C]
                add     edx, ebp
                add     ebx, edx
                lea     esi, [esi+ebx-70E44324h]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                mov     edx, [eax+38h]
                mov     ebp, [eax+0Ch]
                or      ebx, edi
                mov     edi, [eax+24h]
                mov     [esp+54h+var_38], edx
                xor     edx, edi
                mov     edi, [eax+4]
                xor     edx, ebp
                xor     edx, edi
                mov     ebp, [esp+54h+arg_4]
                mov     edi, edx
                add     edx, edx
                shr     edi, 1Fh
                or      edi, edx
                mov     edx, [esp+54h+var_44]
                mov     [esp+54h+var_34], edi
                mov     [eax+4], edi
                mov     edi, ebx
                mov     [esp+54h+var_3C], ebx
                or      edi, edx
                and     edi, ebp
                mov     ebp, ebx
                and     ebp, edx
                mov     edx, esi
                or      edi, ebp
                mov     ebp, esi
                shr     ebp, 1Bh
                shl     edx, 5
                or      ebp, edx
                mov     edx, [esp+54h+var_34]
                add     edx, edi
                mov     edi, [esp+54h+var_44]
                add     ebp, edx
                mov     edx, [esp+54h+arg_0]
                lea     edx, [edx+ebp-70E44324h]
                mov     ebp, edi
                shl     ebp, 1Eh
                shr     edi, 2
                or      ebp, edi
                mov     edi, [eax+3Ch]
                mov     [esp+54h+var_44], ebp
                mov     ebp, [eax+28h]
                mov     [esp+54h+var_34], edi
                xor     edi, ebp
                mov     ebp, [eax+10h]
                xor     edi, ebp
                mov     ebp, [eax+8]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+var_44]
                mov     [esp+54h+var_30], ebp
                mov     [eax+8], ebp
                mov     ebp, edi
                and     edi, esi
                or      ebp, esi
                and     ebp, ebx
                mov     ebx, edx
                or      ebp, edi
                mov     edi, edx
                shr     ebx, 1Bh
                shl     edi, 5
                or      ebx, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebp
                add     ebx, edi
                mov     edi, [esp+54h+arg_4]
                lea     ebp, [edi+ebx-70E44324h]
                mov     edi, esi
                shl     edi, 1Eh
                shr     esi, 2
                mov     ebx, [eax]
                or      edi, esi
                mov     esi, [eax+2Ch]
                mov     [esp+54h+arg_4], ebp
                xor     esi, [eax+14h]
                xor     esi, [eax+0Ch]
                xor     esi, ebx
                mov     ebx, esi
                shr     ebx, 1Fh
                add     esi, esi
                or      ebx, esi
                mov     esi, [esp+54h+var_44]
                mov     [esp+54h+var_30], ebx
                mov     [eax+0Ch], ebx
                mov     ebx, edi
                or      ebx, edx
                and     ebx, esi
                mov     esi, edi
                and     esi, edx
                or      ebx, esi
                mov     esi, [esp+54h+var_30]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, ebp
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+arg_0]
                add     esi, ebp
                mov     ebp, [eax+4]
                add     ebx, esi
                mov     esi, [esp+54h+var_3C]
                lea     esi, [esi+ebx-70E44324h]
                mov     ebx, edx
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, [eax+30h]
                xor     edx, [eax+18h]
                mov     [esp+54h+arg_0], ebx
                xor     edx, [eax+10h]
                xor     edx, ebp
                mov     ebp, edx
                add     edx, edx
                shr     ebp, 1Fh
                or      ebp, edx
                mov     edx, [esp+54h+arg_4]
                mov     [esp+54h+var_30], ebp
                mov     [eax+10h], ebp
                mov     ebp, edi
                or      ebp, ebx
                and     ebp, edx
                mov     edx, edi
                and     edx, ebx
                mov     ebx, esi
                or      ebp, edx
                mov     edx, esi
                shr     ebx, 1Bh
                shl     edx, 5
                or      ebx, edx
                mov     edx, [esp+54h+var_30]
                add     edx, ebp
                mov     ebp, [eax+8]
                add     ebx, edx
                mov     edx, [esp+54h+var_44]
                lea     edx, [edx+ebx-70E44324h]
                mov     [esp+54h+var_44], edx
                mov     edx, [esp+54h+arg_4]
                mov     ebx, edx
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, [eax+34h]
                xor     edx, [eax+1Ch]
                mov     [esp+54h+arg_4], ebx
                xor     edx, [eax+14h]
                xor     edx, ebp
                mov     ebp, edx
                add     edx, edx
                shr     ebp, 1Fh
                or      ebp, edx
                mov     edx, [esp+54h+arg_0]
                mov     [esp+54h+var_30], ebp
                mov     [eax+14h], ebp
                mov     ebp, esi
                or      ebp, edx
                and     ebp, ebx
                mov     ebx, esi
                and     ebx, edx
                or      ebp, ebx
                mov     edx, [esp+54h+var_44]
                mov     ebx, edx
                shr     ebx, 1Bh
                shl     edx, 5
                or      ebx, edx
                mov     edx, [esp+54h+var_30]
                add     edx, ebp
                mov     ebp, [eax+20h]
                add     ebx, edx
                mov     edx, [esp+54h+var_38]
                xor     edx, ebp
                mov     ebp, [eax+18h]
                lea     edi, [edi+ebx-70E44324h]
                mov     ebx, esi
                shl     ebx, 1Eh
                shr     esi, 2
                or      ebx, esi
                mov     esi, [eax+0Ch]
                xor     edx, ebp
                mov     ebp, [esp+54h+arg_4]
                xor     edx, esi
                mov     [esp+54h+var_3C], ebx
                mov     esi, edx
                add     edx, edx
                shr     esi, 1Fh
                or      esi, edx
                mov     edx, [esp+54h+var_44]
                mov     [esp+54h+var_30], esi
                mov     [eax+18h], esi
                mov     esi, ebx
                or      esi, edx
                and     esi, ebp
                mov     ebp, ebx
                and     ebp, edx
                mov     edx, edi
                or      esi, ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edx, 5
                or      ebp, edx
                mov     edx, [esp+54h+var_30]
                add     edx, esi
                mov     esi, [esp+54h+var_44]
                add     ebp, edx
                mov     edx, [esp+54h+arg_0]
                lea     edx, [edx+ebp-70E44324h]
                mov     ebp, esi
                shl     ebp, 1Eh
                shr     esi, 2
                or      ebp, esi
                mov     esi, [esp+54h+var_34]
                xor     esi, [eax+24h]
                mov     [esp+54h+var_44], ebp
                mov     ebp, [eax+10h]
                xor     esi, [eax+1Ch]
                xor     esi, ebp
                mov     ebp, esi
                add     esi, esi
                shr     ebp, 1Fh
                or      ebp, esi
                mov     esi, [esp+54h+var_44]
                mov     [esp+54h+var_30], ebp
                mov     [eax+1Ch], ebp
                mov     ebp, esi
                and     esi, edi
                or      ebp, edi
                and     ebp, ebx
                mov     ebx, edx
                or      ebp, esi
                mov     esi, edx
                shr     ebx, 1Bh
                shl     esi, 5
                or      ebx, esi
                mov     esi, [esp+54h+var_30]
                add     esi, ebp
                add     ebx, esi
                mov     esi, [esp+54h+arg_4]
                lea     ebp, [esi+ebx-70E44324h]
                mov     esi, edi
                mov     [esp+54h+arg_4], ebp
                shl     esi, 1Eh
                mov     ebx, [eax+14h]
                shr     edi, 2
                or      esi, edi
                mov     edi, [eax+28h]
                xor     edi, [eax+20h]
                xor     edi, ebx
                mov     ebx, [eax]
                xor     edi, ebx
                mov     ebx, edi
                add     edi, edi
                shr     ebx, 1Fh
                or      ebx, edi
                mov     edi, [esp+54h+var_44]
                mov     [esp+54h+var_30], ebx
                mov     [eax+20h], ebx
                mov     ebx, esi
                or      ebx, edx
                and     ebx, edi
                mov     edi, esi
                and     edi, edx
                or      ebx, edi
                mov     edi, [esp+54h+var_30]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, ebp
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+arg_0]
                add     edi, ebp
                mov     ebp, [eax+18h]
                add     ebx, edi
                mov     edi, [esp+54h+var_3C]
                lea     edi, [edi+ebx-70E44324h]
                mov     ebx, edx
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, [eax+2Ch]
                xor     edx, [eax+24h]
                mov     [esp+54h+arg_0], ebx
                xor     edx, ebp
                mov     ebp, [eax+4]
                xor     edx, ebp
                mov     ebp, edx
                add     edx, edx
                shr     ebp, 1Fh
                or      ebp, edx
                mov     edx, [esp+54h+arg_4]
                mov     [esp+54h+var_30], ebp
                mov     [eax+24h], ebp
                mov     ebp, esi
                or      ebp, ebx
                and     ebp, edx
                mov     edx, esi
                and     edx, ebx
                mov     ebx, edi
                or      ebp, edx
                mov     edx, edi
                shr     ebx, 1Bh
                shl     edx, 5
                or      ebx, edx
                mov     edx, [esp+54h+var_30]
                add     edx, ebp
                mov     ebp, [eax+1Ch]
                add     ebx, edx
                mov     edx, [esp+54h+var_44]
                lea     edx, [edx+ebx-70E44324h]
                mov     [esp+54h+var_44], edx
                mov     edx, [esp+54h+arg_4]
                mov     ebx, edx
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, [eax+30h]
                xor     edx, [eax+28h]
                mov     [esp+54h+arg_4], ebx
                xor     edx, ebp
                mov     ebp, [eax+8]
                xor     edx, ebp
                mov     ebp, edx
                shr     ebp, 1Fh
                add     edx, edx
                or      ebp, edx
                mov     edx, [esp+54h+arg_0]
                mov     [esp+54h+var_30], ebp
                mov     [eax+28h], ebp
                mov     ebp, edi
                or      ebp, edx
                and     ebp, ebx
                mov     ebx, edi
                and     ebx, edx
                mov     edx, [esp+54h+var_44]
                or      ebp, ebx
                mov     ebx, edx
                shr     ebx, 1Bh
                shl     edx, 5
                or      ebx, edx
                mov     edx, [esp+54h+var_30]
                add     edx, ebp
                mov     ebp, [eax+2Ch]
                add     ebx, edx
                mov     edx, edi
                shl     edx, 1Eh
                shr     edi, 2
                or      edx, edi
                mov     edi, [eax+34h]
                lea     esi, [esi+ebx-70E44324h]
                mov     ebx, [eax+20h]
                xor     edi, ebp
                mov     ebp, [esp+54h+arg_4]
                xor     edi, ebx
                mov     ebx, [eax+0Ch]
                xor     edi, ebx
                mov     ebx, edi
                add     edi, edi
                shr     ebx, 1Fh
                or      ebx, edi
                mov     edi, [esp+54h+var_44]
                mov     [esp+54h+var_30], ebx
                mov     [eax+2Ch], ebx
                mov     ebx, edx
                or      ebx, edi
                and     ebx, ebp
                mov     ebp, edx
                and     ebp, edi
                mov     edi, esi
                or      ebx, ebp
                mov     ebp, esi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+arg_0]
                lea     edi, [edi+ebp-70E44324h]
                mov     ebp, [eax+24h]
                mov     [esp+54h+arg_0], edi
                mov     edi, [esp+54h+var_44]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [esp+54h+var_38]
                xor     edi, [eax+30h]
                mov     [esp+54h+var_44], ebx
                xor     edi, ebp
                mov     ebp, [eax+10h]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+arg_0]
                mov     [esp+54h+var_30], ebp
                mov     [eax+30h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     [esp+54h+var_4], ebp
                mov     ebp, edx
                mov     edi, [esp+54h+var_30]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_4]
                xor     ebp, esi
                add     edi, ebx
                mov     ebx, esi
                shl     ebx, 1Eh
                shr     esi, 2
                add     ebp, edi
                mov     edi, [esp+54h+arg_4]
                or      ebx, esi
                mov     esi, [esp+54h+var_34]
                xor     esi, [eax+34h]
                lea     edi, [edi+ebp-359D3E2Ah]
                mov     ebp, [eax+28h]
                mov     [esp+54h+var_40], ebx
                xor     esi, ebp
                mov     ebp, [eax+14h]
                xor     esi, ebp
                mov     ebp, esi
                add     esi, esi
                shr     ebp, 1Fh
                or      ebp, esi
                mov     esi, edi
                mov     [esp+54h+var_30], ebp
                mov     [eax+34h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     esi, 5
                or      ebp, esi
                mov     esi, [esp+54h+arg_0]
                mov     [esp+54h+arg_4], ebp
                mov     ebp, [esp+54h+var_44]
                xor     ebp, ebx
                mov     ebx, [esp+54h+arg_4]
                xor     ebp, esi
                mov     esi, [esp+54h+var_30]
                add     esi, ebx
                add     ebp, esi
                mov     esi, [esp+54h+arg_0]
                mov     ebx, esi
                shl     ebx, 1Eh
                shr     esi, 2
                or      ebx, esi
                mov     esi, [esp+54h+var_38]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, [eax+2Ch]
                lea     edx, [edx+ebp-359D3E2Ah]
                mov     ebp, [eax+18h]
                xor     esi, ebx
                mov     ebx, [eax]
                xor     esi, ebp
                mov     ebp, edi
                xor     esi, ebx
                mov     ebx, esi
                add     esi, esi
                shr     ebx, 1Fh
                or      ebx, esi
                mov     esi, edx
                mov     [esp+54h+var_30], ebx
                mov     [eax+38h], ebx
                mov     ebx, edx
                shr     ebx, 1Bh
                shl     esi, 5
                or      ebx, esi
                mov     esi, [esp+54h+var_40]
                xor     ebp, esi
                mov     esi, [esp+54h+arg_0]
                xor     ebp, esi
                mov     esi, [esp+54h+var_30]
                add     esi, ebx
                add     ebp, esi
                mov     esi, [esp+54h+var_44]
                lea     ebx, [esi+ebp-359D3E2Ah]
                mov     esi, [esp+54h+var_34]
                mov     ebp, edi
                shl     ebp, 1Eh
                shr     edi, 2
                or      ebp, edi
                mov     edi, [eax+30h]
                mov     [esp+54h+arg_4], ebp
                xor     esi, edi
                mov     edi, [eax+1Ch]
                xor     esi, edi
                mov     edi, [eax+4]
                xor     esi, edi
                xor     ebp, edx
                mov     edi, esi
                add     esi, esi
                shr     edi, 1Fh
                or      edi, esi
                mov     esi, ebx
                mov     [esp+54h+var_C], edi
                mov     [eax+3Ch], edi
                mov     edi, ebx
                shr     edi, 1Bh
                shl     esi, 5
                or      edi, esi
                mov     esi, [esp+54h+arg_0]
                xor     ebp, esi
                mov     esi, [esp+54h+var_C]
                add     esi, edi
                mov     edi, [eax+34h]
                add     ebp, esi
                mov     esi, [esp+54h+var_40]
                lea     ebp, [esi+ebp-359D3E2Ah]
                mov     esi, edx
                shl     esi, 1Eh
                shr     edx, 2
                or      esi, edx
                mov     edx, [eax+20h]
                xor     edi, edx
                mov     edx, [eax+8]
                xor     edi, edx
                mov     edx, [eax]
                xor     edi, edx
                mov     [esp+54h+var_40], ebp
                mov     edx, edi
                add     edi, edi
                shr     edx, 1Fh
                or      edx, edi
                mov     edi, ebp
                shr     edi, 1Bh
                shl     ebp, 5
                or      edi, ebp
                mov     ebp, [esp+54h+arg_4]
                xor     ebp, esi
                mov     [eax], edx
                xor     ebp, ebx
                add     edx, edi
                add     ebp, edx
                mov     edx, [esp+54h+arg_0]
                mov     edi, ebx
                mov     [esp+54h+var_3C], esi
                lea     edx, [edx+ebp-359D3E2Ah]
                mov     ebp, [eax+24h]
                mov     [esp+54h+arg_0], edx
                mov     edx, [eax+38h]
                shl     edi, 1Eh
                shr     ebx, 2
                or      edi, ebx
                mov     ebx, edx
                xor     ebx, ebp
                mov     ebp, [eax+0Ch]
                xor     ebx, ebp
                mov     ebp, [eax+4]
                xor     ebx, ebp
                mov     [esp+54h+var_44], edi
                mov     ebp, ebx
                add     ebx, ebx
                shr     ebp, 1Fh
                or      ebp, ebx
                mov     ebx, [esp+54h+arg_0]
                mov     [esp+54h+var_34], ebp
                mov     [eax+4], ebp
                mov     ebp, ebx
                shr     ebp, 1Bh
                shl     ebx, 5
                or      ebp, ebx
                mov     ebx, esi
                mov     esi, [esp+54h+var_40]
                xor     ebx, edi
                xor     ebx, esi
                mov     esi, [esp+54h+var_34]
                add     esi, ebp
                mov     ebp, [eax+28h]
                add     ebx, esi
                mov     esi, [esp+54h+arg_4]
                lea     esi, [esi+ebx-359D3E2Ah]
                mov     [esp+54h+arg_4], esi
                mov     esi, [esp+54h+var_40]
                mov     ebx, esi
                shl     ebx, 1Eh
                shr     esi, 2
                or      ebx, esi
                mov     esi, [eax+3Ch]
                mov     [esp+54h+var_40], ebx
                mov     ebx, esi
                xor     ebx, ebp
                mov     ebp, [eax+10h]
                xor     ebx, ebp
                mov     ebp, [eax+8]
                xor     ebx, ebp
                mov     ebp, ebx
                add     ebx, ebx
                shr     ebp, 1Fh
                or      ebp, ebx
                mov     ebx, [esp+54h+arg_4]
                mov     [esp+54h+var_30], ebp
                mov     [eax+8], ebp
                mov     ebp, ebx
                shr     ebp, 1Bh
                shl     ebx, 5
                or      ebp, ebx
                mov     ebx, edi
                mov     edi, [esp+54h+var_40]
                xor     ebx, edi
                mov     edi, [esp+54h+arg_0]
                xor     ebx, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebp
                add     ebx, edi
                mov     edi, [esp+54h+var_3C]
                lea     ebp, [edi+ebx-359D3E2Ah]
                mov     edi, [esp+54h+arg_0]
                mov     ebx, edi
                mov     [esp+54h+var_3C], ebp
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [eax+2Ch]
                xor     edi, [eax+14h]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, [eax]
                xor     edi, [eax+0Ch]
                xor     edi, ebx
                mov     ebx, edi
                add     edi, edi
                shr     ebx, 1Fh
                or      ebx, edi
                mov     edi, [esp+54h+var_40]
                mov     [esp+54h+var_30], ebx
                mov     [eax+0Ch], ebx
                mov     ebx, ebp
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+arg_4]
                xor     ebp, edi
                mov     edi, [esp+54h+arg_0]
                xor     ebp, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+var_44]
                lea     edi, [edi+ebp-359D3E2Ah]
                mov     [esp+54h+var_44], edi
                mov     edi, [esp+54h+arg_4]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     [esp+54h+arg_4], ebx
                mov     edi, [eax+30h]
                mov     ebp, [eax+4]
                xor     edi, [eax+18h]
                xor     edi, [eax+10h]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+var_44]
                mov     [esp+54h+var_30], ebp
                mov     [eax+10h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_3C]
                xor     ebx, edi
                mov     edi, [esp+54h+arg_0]
                xor     ebx, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebp
                mov     ebp, [eax+8]
                add     ebx, edi
                mov     edi, [esp+54h+var_40]
                lea     edi, [edi+ebx-359D3E2Ah]
                mov     [esp+54h+var_40], edi
                mov     edi, [esp+54h+var_3C]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [eax+34h]
                xor     edi, [eax+1Ch]
                mov     [esp+54h+var_3C], ebx
                xor     edi, [eax+14h]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+var_40]
                mov     [esp+54h+var_30], ebp
                mov     [eax+14h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_44]
                mov     [esp+54h+var_4], ebp
                mov     ebp, [esp+54h+arg_4]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_4]
                xor     ebp, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+arg_0]
                lea     edi, [edi+ebp-359D3E2Ah]
                mov     ebp, [eax+0Ch]
                mov     [esp+54h+arg_0], edi
                mov     edi, [esp+54h+var_44]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, edx
                xor     edi, [eax+20h]
                mov     [esp+54h+var_44], ebx
                xor     edi, [eax+18h]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+arg_0]
                mov     [esp+54h+var_30], ebp
                mov     [eax+18h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_40]
                mov     [esp+54h+var_4], ebp
                mov     ebp, [esp+54h+var_3C]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_4]
                xor     ebp, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+arg_4]
                lea     edi, [edi+ebp-359D3E2Ah]
                mov     ebp, [eax+10h]
                mov     [esp+54h+arg_4], edi
                mov     edi, [esp+54h+var_40]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, esi
                xor     edi, [eax+24h]
                mov     [esp+54h+var_40], ebx
                xor     edi, [eax+1Ch]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+arg_4]
                mov     [esp+54h+var_30], ebp
                mov     [eax+1Ch], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+arg_0]
                mov     [esp+54h+var_4], ebp
                mov     ebp, [esp+54h+var_44]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_4]
                xor     ebp, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+var_3C]
                lea     ebp, [edi+ebp-359D3E2Ah]
                mov     edi, [esp+54h+arg_0]
                mov     ebx, edi
                mov     [esp+54h+var_3C], ebp
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [eax+28h]
                xor     edi, [eax+20h]
                mov     [esp+54h+arg_0], ebx
                mov     ebx, [eax+14h]
                xor     edi, ebx
                mov     ebx, [eax]
                xor     edi, ebx
                mov     ebx, edi
                add     edi, edi
                shr     ebx, 1Fh
                or      ebx, edi
                mov     edi, [esp+54h+var_40]
                mov     [esp+54h+var_30], ebx
                mov     [eax+20h], ebx
                mov     ebx, ebp
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+arg_4]
                xor     ebp, edi
                mov     edi, [esp+54h+arg_0]
                xor     ebp, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+var_44]
                lea     edi, [edi+ebp-359D3E2Ah]
                mov     [esp+54h+var_44], edi
                mov     edi, [esp+54h+arg_4]
                mov     ebx, edi
                mov     ebp, [eax+18h]
                shr     edi, 2
                shl     ebx, 1Eh
                or      ebx, edi
                mov     edi, [eax+2Ch]
                xor     edi, [eax+24h]
                mov     [esp+54h+arg_4], ebx
                xor     edi, ebp
                mov     ebp, [eax+4]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+var_44]
                mov     [esp+54h+var_30], ebp
                mov     [eax+24h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_3C]
                xor     ebx, edi
                mov     edi, [esp+54h+arg_0]
                xor     ebx, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebp
                mov     ebp, [eax+1Ch]
                add     ebx, edi
                mov     edi, [esp+54h+var_40]
                lea     edi, [edi+ebx-359D3E2Ah]
                mov     [esp+54h+var_40], edi
                mov     edi, [esp+54h+var_3C]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [eax+30h]
                xor     edi, [eax+28h]
                mov     [esp+54h+var_3C], ebx
                xor     edi, ebp
                mov     ebp, [eax+8]
                xor     edi, ebp
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+var_40]
                mov     [esp+54h+var_30], ebp
                mov     [eax+28h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_44]
                mov     [esp+54h+var_4], ebp
                mov     ebp, [esp+54h+arg_4]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_4]
                xor     ebp, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+arg_0]
                lea     edi, [edi+ebp-359D3E2Ah]
                mov     ebp, [eax+2Ch]
                mov     [esp+54h+arg_0], edi
                mov     edi, [esp+54h+var_44]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, [eax+34h]
                xor     edi, ebp
                mov     ebp, [eax+20h]
                xor     edi, ebp
                mov     ebp, [eax+0Ch]
                xor     edi, ebp
                mov     [esp+54h+var_44], ebx
                mov     ebp, edi
                shr     ebp, 1Fh
                add     edi, edi
                or      ebp, edi
                mov     edi, [esp+54h+arg_0]
                mov     [esp+54h+var_30], ebp
                mov     [eax+2Ch], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+var_40]
                mov     [esp+54h+var_4], ebp
                mov     ebp, [esp+54h+var_3C]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_4]
                xor     ebp, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+arg_4]
                lea     edi, [edi+ebp-359D3E2Ah]
                mov     ebp, [eax+30h]
                mov     [esp+54h+arg_4], edi
                mov     edi, [esp+54h+var_40]
                mov     ebx, edi
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, edx
                xor     edi, ebp
                mov     ebp, [eax+24h]
                xor     edi, ebp
                mov     ebp, [eax+10h]
                xor     edi, ebp
                mov     [esp+54h+var_40], ebx
                mov     ebp, edi
                add     edi, edi
                shr     ebp, 1Fh
                or      ebp, edi
                mov     edi, [esp+54h+arg_4]
                mov     [esp+54h+var_30], ebp
                mov     [eax+30h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edi, 5
                or      ebp, edi
                mov     edi, [esp+54h+arg_0]
                mov     [esp+54h+var_4], ebp
                mov     ebp, [esp+54h+var_44]
                xor     ebp, ebx
                mov     ebx, [esp+54h+var_4]
                xor     ebp, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+var_3C]
                lea     ebp, [edi+ebp-359D3E2Ah]
                mov     edi, [esp+54h+arg_0]
                mov     ebx, edi
                mov     [esp+54h+var_3C], ebp
                shl     ebx, 1Eh
                shr     edi, 2
                or      ebx, edi
                mov     edi, esi
                mov     [esp+54h+arg_0], ebx
                mov     ebx, [eax+34h]
                xor     edi, ebx
                mov     ebx, [eax+28h]
                xor     edi, ebx
                mov     ebx, [eax+14h]
                xor     edi, ebx
                mov     ebx, edi
                add     edi, edi
                shr     ebx, 1Fh
                or      ebx, edi
                mov     [esp+54h+var_30], ebx
                mov     [eax+34h], ebx
                mov     ebx, ebp
                shr     ebx, 1Bh
                shl     ebp, 5
                or      ebx, ebp
                mov     ebp, [esp+54h+arg_4]
                mov     edi, [esp+54h+var_40]
                xor     ebp, edi
                mov     edi, [esp+54h+arg_0]
                xor     ebp, edi
                mov     edi, [esp+54h+var_30]
                add     edi, ebx
                add     ebp, edi
                mov     edi, [esp+54h+var_44]
                lea     edi, [edi+ebp-359D3E2Ah]
                mov     ebp, [esp+54h+arg_4]
                mov     ebx, ebp
                shl     ebx, 1Eh
                shr     ebp, 2
                or      ebx, ebp
                mov     ebp, [eax+18h]
                xor     edx, ebp
                mov     ebp, [eax+2Ch]
                xor     edx, ebp
                mov     ebp, [eax]
                xor     edx, ebp
                mov     [esp+54h+arg_4], ebx
                mov     ebp, edx
                add     edx, edx
                shr     ebp, 1Fh
                or      ebp, edx
                mov     edx, edi
                mov     [esp+54h+var_30], ebp
                mov     [eax+38h], ebp
                mov     ebp, edi
                shr     ebp, 1Bh
                shl     edx, 5
                or      ebp, edx
                mov     edx, [esp+54h+var_3C]
                xor     ebx, edx
                mov     edx, [esp+54h+arg_0]
                xor     ebx, edx
                mov     edx, [esp+54h+var_30]
                add     edx, ebp
                add     ebx, edx
                mov     edx, [esp+54h+var_40]
                lea     ebp, [edx+ebx-359D3E2Ah]
                mov     edx, [esp+54h+var_3C]
                mov     ebx, edx
                shl     ebx, 1Eh
                shr     edx, 2
                or      ebx, edx
                mov     edx, [eax+1Ch]
                xor     esi, edx
                mov     edx, [eax+30h]
                xor     esi, edx
                mov     edx, [eax+4]
                xor     esi, edx
                mov     edx, esi
                add     esi, esi
                shr     edx, 1Fh
                or      edx, esi
                mov     esi, ebp
                mov     [eax+3Ch], edx
                mov     eax, ebp
                shr     eax, 1Bh
                shl     esi, 5
                or      eax, esi
                mov     esi, [esp+54h+arg_4]
                xor     esi, ebx
                add     edx, eax
                xor     esi, edi
                add     esi, edx
                mov     edx, [esp+54h+arg_0]
                lea     eax, [edx+esi-359D3E2Ah]
                mov     edx, [ecx]
                add     edx, eax
                mov     eax, [ecx+4]
                mov     esi, [ecx+8]
                add     eax, ebp
                mov     [ecx+4], eax
                mov     eax, edi
                shl     eax, 1Eh
                shr     edi, 2
                mov     [ecx], edx
                or      eax, edi
                mov     edx, [ecx+0Ch]
                add     esi, eax
                mov     eax, [ecx+10h]
                add     edx, ebx
                mov     [ecx+0Ch], edx
                mov     edx, [esp+54h+arg_4]
                mov     [ecx+8], esi
                pop     edi
                add     eax, edx
                pop     esi
                pop     ebp
                mov     [ecx+10h], eax
                pop     ebx
                add     esp, 44h
                retn
sub_4018B0      endp

END
