Function at 0x47a000
Capabilities:
Encode data using xor
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xd4
mov edi, ecx
mov ebx, dword [esp + 0xec]
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x20], eax
movdqu xmm0, xmmword [ecx + 0x118]
movd xmm1, dword [esp + 0xec]
pshufd xmm1, xmm1, 0x44
paddq xmm1, xmm0
movdqu xmmword [ecx + 0x118], xmm1
mov al, byte [ecx + 0x110]
mov cl, byte [ecx + 0x111]
test al, al
mov dword [esp + 0x24], edi
je 0x47b5be
mov edx, ecx
sub dl, al
add dl, 0x40
movzx esi, dl
cmp esi, ebx
ja 0x47b59d
lea esi, [edi + 0x10]
mov dword [esp + 0xc4], esi
lea esi, [edi + 0x50]
mov dword [esp + 0xc0], esi
nop
mov dword [esp + 0xd0], ebx
movzx esi, cl
mov ah, 0x40
sub ah, al
cmp al, cl
movzx ecx, ah
movzx edx, dl
cmovbe edx, ecx
lea ebp, [edi + esi + 0x10]
mov ecx, dword [esp + 0x20]
cmovbe ebp, ecx
movzx eax, al
lea eax, [edi + eax + 0x10]
movzx edx, dl
mov dword [esp + 0xbc], edx
push edx
push ecx
push eax
call fcn.004c4690
add esp, 0xc
mov ecx, dword [edi + 0xd0]
xor eax, eax
nop dword [eax + eax]
xor ecx, dword [ebp + eax*4]
mov edx, ecx
movzx esi, ch
movzx edi, cl
shr ecx, 0x18
shr edx, 0xe
and edx, 0x3fc
mov edx, dword [edx + 0x4ed350]
xor edx, dword [ecx*4 + 0x4ecf50]
xor edx, dword [esi*4 + 0x4ed750]
mov ecx, edx
xor ecx, dword [edi*4 + 0x4edb50]
add eax, 1
cmp eax, 0x10
jne 0x47a0d0
mov eax, dword [esp + 0x24]
mov dword [eax + 0xd0], ecx
mov edx, dword [eax + 0xa0]
mov dword [esp + 0xcc], edx
mov edi, dword [eax + 0xa4]
mov dword [esp + 0x14], edi
mov ecx, dword [eax + 0xa8]
mov dword [esp + 0x60], ecx
mov ebx, ecx
mov ecx, dword [eax + 0xac]
mov dword [esp + 0x18], ecx
mov esi, eax
mov eax, ecx
xor eax, ebx
and eax, edi
xor eax, ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x28], ecx
add ecx, edx
lea eax, [eax + ecx - 0x28955b88]
mov dword [esp + 0xc], eax
mov edi, dword [esi + 0x98]
mov ecx, dword [esi + 0x9c]
mov dword [esp + 0x2c], ecx
mov eax, ecx
xor eax, edi
mov ebx, dword [esi + 0x94]
and eax, ebx
xor eax, ecx
mov ecx, dword [esi + 0x90]
mov dword [esp + 0xc8], ecx
add eax, ecx
mov ecx, dword [ebp]
mov dword [esp + 0x8c], ecx
add eax, ecx
add eax, 0xd76aa478
rol eax, 7
add eax, ebx
mov dword [esp + 8], eax
mov dword [esp + 0xb8], edi
mov ecx, edi
xor ecx, ebx
mov dword [esp + 0xb4], ebx
and ecx, eax
xor ecx, edi
mov edx, dword [ebp + 4]
mov dword [esp + 0x3c], edx
mov esi, dword [esp + 0x2c]
add esi, edx
lea eax, [ecx + esi]
add eax, 0xe8c7b756
mov edx, dword [esp + 0xc]
rol edx, 7
mov esi, dword [esp + 0x14]
add edx, esi
mov dword [esp + 0xc], edx
rol eax, 0xc
mov edi, dword [esp + 0x60]
mov ecx, edi
xor ecx, esi
and ecx, edx
xor ecx, edi
mov edx, dword [esp + 0x24]
mov edx, dword [edx + 0x14]
mov dword [esp + 0x54], edx
mov edi, dword [esp + 0x18]
add edi, edx
add edi, ecx
add edi, 0xe8c7b756
mov ecx, dword [esp + 8]
add eax, ecx
xor ecx, ebx
and ecx, eax
xor ecx, ebx
mov edx, dword [ebp + 8]
mov dword [esp + 0xb0], edx
mov ebx, dword [esp + 0xb8]
add ebx, edx
add ecx, ebx
add ecx, 0x242070db
mov dword [esp], ecx
rol edi, 0xc
mov ecx, dword [esp + 0xc]
add edi, ecx
mov ebx, esi
xor ecx, esi
and ecx, edi
xor ecx, esi
mov edx, dword [esp + 0x24]
mov edx, dword [edx + 0x18]
mov dword [esp + 0xac], edx
mov ebx, dword [esp + 0x60]
add ebx, edx
add ecx, ebx
add ecx, 0x242070db
mov dword [esp + 4], ecx
mov ecx, dword [esp]
rol ecx, 0x11
mov dword [esp + 0x34], eax
add ecx, eax
mov dword [esp], ecx
mov ebx, eax
mov eax, dword [esp + 8]
xor ebx, eax
and ebx, ecx
xor ebx, eax
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x9c], edx
mov ecx, dword [esp + 0xb4]
add ecx, edx
lea esi, [ebx + ecx]
add esi, 0xc1bdceee
mov edx, dword [esp + 4]
rol edx, 0x11
add edx, edi
mov dword [esp + 4], edx
rol esi, 0x16
mov ecx, edi
mov ebx, dword [esp + 0xc]
xor ecx, ebx
and ecx, edx
xor ecx, ebx
mov edx, dword [esp + 0x24]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x98], edx
mov ebx, dword [esp + 0x14]
add ebx, edx
add ebx, ecx
add ebx, 0xc1bdceee
mov ecx, dword [esp]
add esi, ecx
mov edx, dword [esp + 0x34]
xor ecx, edx
and ecx, esi
xor ecx, edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0xa8], edx
add eax, edx
add eax, ecx
add eax, 0xf57c0faf
mov dword [esp + 8], eax
rol ebx, 0x16
mov eax, dword [esp + 4]
add ebx, eax
mov dword [esp + 0x38], ebx
xor eax, edi
and eax, ebx
xor eax, edi
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x20]
mov dword [esp + 0xa4], edx
mov ebx, dword [esp + 0xc]
add ebx, edx
lea edx, [eax + ebx]
add edx, 0xf57c0faf
mov eax, dword [esp + 8]
rol eax, 7
mov dword [esp + 0x40], esi
add eax, esi
mov ebx, eax
mov dword [esp + 8], eax
mov eax, esi
mov esi, dword [esp]
xor eax, esi
and eax, ebx
xor eax, esi
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x5c], ebx
mov esi, dword [esp + 0x34]
add esi, ebx
add esi, eax
add esi, 0x4787c62a
rol edx, 7
mov eax, dword [esp + 0x38]
add edx, eax
rol esi, 0xc
mov ebx, dword [esp + 4]
xor eax, ebx
and eax, edx
xor eax, ebx
mov ebx, dword [ecx + 0x24]
mov dword [esp + 0x88], ebx
add edi, ebx
add edi, eax
add edi, 0x4787c62a
mov ecx, dword [esp + 8]
add esi, ecx
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x34], eax
add dword [esp], eax
mov eax, ecx
mov ecx, dword [esp + 0x40]
xor eax, ecx
and eax, esi
xor eax, ecx
mov ecx, dword [esp]
lea ebx, [eax + ecx]
add ebx, 0xa8304613
rol edi, 0xc
add edi, edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x28]
mov dword [esp + 0xa0], eax
add dword [esp + 4], eax
mov eax, edx
mov ecx, dword [esp + 0x38]
xor eax, ecx
and eax, edi
xor eax, ecx
mov ecx, dword [esp + 4]
add eax, ecx
add eax, 0xa8304613
mov dword [esp], eax
rol ebx, 0x11
add ebx, esi
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x78], eax
add dword [esp + 0x40], eax
mov eax, esi
mov ecx, dword [esp + 8]
xor eax, ecx
and eax, ebx
xor eax, ecx
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x40]
add ebp, eax
add ebp, 0xfd469501
mov eax, dword [esp]
rol eax, 0x11
add eax, edi
mov dword [esp], eax
rol ebp, 0x16
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x38]
add ecx, eax
mov eax, edi
xor eax, edx
and eax, dword [esp]
xor eax, edx
add eax, ecx
add eax, 0xfd469501
mov dword [esp + 4], eax
add ebp, ebx
mov dword [esp + 0x30], ebp
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x50], eax
add dword [esp + 8], eax
mov ecx, ebx
xor ecx, esi
and ecx, ebp
xor ecx, esi
mov eax, dword [esp + 8]
add eax, ecx
add eax, 0x698098d8
mov dword [esp + 8], eax
mov ebp, dword [esp + 4]
rol ebp, 0x16
mov ecx, dword [esp]
add ebp, ecx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x90], eax
add edx, eax
xor ecx, edi
and ecx, ebp
xor ecx, edi
lea eax, [ecx + edx]
add eax, 0x698098d8
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 8]
rol ecx, 7
mov edx, dword [esp + 0x30]
add ecx, edx
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x40], eax
add esi, eax
xor edx, ebx
and edx, ecx
xor edx, ebx
add esi, edx
add esi, 0x8b44f7af
mov edx, dword [esp + 0xc]
rol edx, 7
mov ecx, ebp
mov dword [esp + 4], ebp
add edx, ebp
mov ebp, edx
rol esi, 0xc
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x38], eax
add edi, eax
mov eax, ecx
mov ecx, dword [esp]
xor eax, ecx
and eax, edx
mov dword [esp + 0xc], edx
xor eax, ecx
add edi, eax
add edi, 0x8b44f7af
mov ecx, dword [esp + 8]
add esi, ecx
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x28]
mov dword [esp + 0x80], edx
add ebx, edx
mov eax, ecx
mov ecx, dword [esp + 0x30]
xor eax, ecx
and eax, esi
xor eax, ecx
add ebx, eax
add ebx, 0xffff5bb1
rol edi, 0xc
add edi, ebp
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp]
add ecx, eax
mov edx, dword [esp + 4]
xor ebp, edx
and ebp, edi
xor ebp, edx
add ebp, ecx
add ebp, 0xffff5bb1
rol ebx, 0x11
mov dword [esp + 0x4c], esi
add ebx, esi
mov edx, ebx
mov dword [esp + 0x48], ebx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x30]
add ecx, eax
mov eax, esi
mov ebx, dword [esp + 8]
xor eax, ebx
and eax, edx
xor eax, ebx
lea esi, [eax + ecx]
add esi, 0x895cd7be
rol ebp, 0x11
add ebp, edi
rol esi, 0x16
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 4]
add edx, eax
mov eax, edi
mov ecx, dword [esp + 0xc]
xor eax, ecx
and eax, ebp
mov dword [esp + 0x58], ebp
xor eax, ecx
add edx, eax
add edx, 0x895cd7be
mov ecx, dword [esp + 0x48]
add esi, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x70], eax
add ebx, eax
mov eax, ecx
mov ecx, dword [esp + 0x4c]
xor eax, ecx
and eax, esi
xor eax, ecx
add ebx, eax
add ebx, 0x6b901122
mov ecx, edx
rol ecx, 0x16
add ecx, ebp
mov edx, ecx
mov dword [esp], ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x40]
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0xc]
add eax, ecx
xor ebp, edi
and ebp, edx
xor ebp, edi
lea ecx, [eax + ebp]
add ecx, 0x6b901122
rol ebx, 7
mov eax, esi
mov dword [esp + 4], esi
add ebx, esi
mov edx, dword [esp + 0x10]
mov edx, dword [edx + 0x34]
mov dword [esp + 0x84], edx
mov esi, dword [esp + 0x4c]
add esi, edx
mov edx, eax
mov ebp, dword [esp + 0x48]
xor edx, ebp
and edx, ebx
xor edx, ebp
add edx, esi
add edx, 0xfd987193
rol ecx, 7
mov eax, dword [esp]
add ecx, eax
rol edx, 0xc
mov esi, dword [esp + 0x24]
mov esi, dword [esi + 0x44]
mov dword [esp + 0x4c], esi
add edi, esi
mov esi, eax
mov eax, dword [esp + 0x58]
xor esi, eax
and esi, ecx
xor esi, eax
add esi, edi
add esi, 0xfd987193
mov dword [esp + 8], esi
add edx, ebx
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x10]
mov esi, dword [esi + 0x38]
mov dword [esp + 0x68], esi
add ebp, esi
mov edi, ebx
mov esi, dword [esp + 4]
xor edi, esi
and edi, edx
xor edi, esi
lea esi, [edi + ebp]
add esi, 0xa679438e
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 8]
rol esi, 0xc
mov dword [esp + 0x44], ecx
add esi, ecx
mov edi, dword [esp + 0x24]
mov edi, dword [edi + 0x48]
mov dword [esp + 0x64], edi
mov ebp, eax
add ebp, edi
mov edi, ecx
mov eax, dword [esp]
xor edi, eax
and edi, esi
xor edi, eax
add edi, ebp
add edi, 0xa679438e
mov ecx, dword [esp + 0x1c]
rol ecx, 0x11
add ecx, edx
mov dword [esp + 0x1c], ecx
mov ebp, dword [esp + 0x10]
mov ebp, dword [ebp + 0x3c]
mov dword [esp + 0x48], ebp
mov eax, dword [esp + 4]
add eax, ebp
mov ebp, edx
xor ebp, ebx
and ebp, ecx
xor ebp, ebx
add ebp, eax
add ebp, 0x49b40821
rol edi, 0x11
mov ecx, esi
mov dword [esp + 8], esi
add edi, esi
rol ebp, 0x16
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 0x4c]
mov dword [esp + 0x58], esi
mov eax, dword [esp]
add eax, esi
mov esi, ecx
mov edx, dword [esp + 0x44]
xor esi, edx
and esi, edi
xor esi, edx
add eax, esi
add eax, 0x49b40821
mov dword [esp], eax
add ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc]
mov esi, ecx
not esi
mov eax, dword [esp + 0x1c]
and esi, eax
add esi, ebx
add ebp, eax
mov ebx, eax
mov eax, ebp
and eax, ecx
add eax, esi
add eax, 0xf61e2562
mov dword [esp + 4], eax
add edx, dword [esp + 0x54]
mov esi, dword [esp + 8]
mov eax, esi
not eax
and eax, edi
add eax, edx
mov ecx, dword [esp]
rol ecx, 0x16
add ecx, edi
mov dword [esp], ecx
and ecx, esi
add eax, ecx
add eax, 0xf61e2562
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x34]
mov eax, ebx
not eax
and eax, ebp
add eax, ecx
mov ecx, dword [esp + 4]
rol ecx, 5
add ecx, ebp
mov dword [esp + 4], ecx
and ecx, ebx
lea edx, [ecx + eax]
add edx, 0xc040b340
add esi, dword [esp + 0xa0]
mov eax, edi
not eax
mov ecx, dword [esp]
and eax, ecx
add eax, esi
mov esi, dword [esp + 0x10]
rol esi, 5
add esi, ecx
mov ecx, esi
mov dword [esp + 0x10], esi
rol edx, 9
and ecx, edi
add eax, ecx
add eax, 0xc040b340
mov dword [esp + 0xc], eax
add ebx, dword [esp + 0x94]
mov eax, ebp
not eax
mov esi, dword [esp + 4]
and eax, esi
add eax, ebx
add edx, esi
mov dword [esp + 0x44], edx
and edx, ebp
lea ebx, [edx + eax]
add ebx, 0x265e5a51
add edi, dword [esp + 0x30]
mov edx, dword [esp]
mov eax, edx
not eax
mov ecx, dword [esp + 0x10]
and eax, ecx
add eax, edi
mov edi, dword [esp + 0xc]
rol edi, 9
add edi, ecx
mov dword [esp + 0xc], edi
mov ecx, edi
and ecx, edx
lea edi, [ecx + eax]
add edi, 0x265e5a51
add ebp, dword [esp + 0x8c]
mov eax, esi
not eax
mov ecx, dword [esp + 0x44]
and eax, ecx
add eax, ebp
rol ebx, 0xe
add ebx, ecx
mov ecx, ebx
and ecx, esi
lea ebp, [ecx + eax]
add ebp, 0xe9b6c7aa
mov ecx, edx
add ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov eax, edx
not eax
mov esi, dword [esp + 0xc]
and eax, esi
add eax, ecx
rol edi, 0xe
add edi, esi
rol ebp, 0x14
mov ecx, edi
and ecx, edx
add eax, ecx
add eax, 0xe9b6c7aa
mov dword [esp], eax
mov ecx, dword [esp + 4]
add ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x44]
mov eax, edx
not eax
and eax, ebx
add eax, ecx
add ebp, ebx
mov dword [esp + 0x1c], ebp
mov ecx, ebp
and ecx, edx
add eax, ecx
add eax, 0xd62f105d
mov dword [esp + 8], eax
mov ebp, dword [esp + 0x10]
add ebp, dword [esp + 0x88]
mov ecx, esi
not ecx
and ecx, edi
add ecx, ebp
mov ebp, dword [esp]
rol ebp, 0x14
add ebp, edi
mov dword [esp], ebp
and ebp, esi
add ecx, ebp
add ecx, 0xd62f105d
mov dword [esp + 4], ecx
add edx, dword [esp + 0x80]
mov ebp, ebx
not ebp
mov ecx, dword [esp + 0x1c]
and ebp, ecx
add ebp, edx
mov eax, dword [esp + 8]
rol eax, 5
add eax, ecx
mov edx, eax
mov dword [esp + 8], eax
and edx, ebx
add edx, ebp
add edx, 0x2441453
add esi, dword [esp + 0x7c]
mov ebp, edi
not ebp
mov eax, dword [esp]
and ebp, eax
add ebp, esi
mov ecx, dword [esp + 4]
rol ecx, 5
add ecx, eax
mov esi, ecx
mov dword [esp + 4], ecx
rol edx, 9
and esi, edi
add esi, ebp
add esi, 0x2441453
add ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
mov ebp, ecx
not ebp
mov eax, dword [esp + 8]
and ebp, eax
add ebp, ebx
add edx, eax
mov ebx, edx
and ebx, ecx
lea eax, [ebx + ebp]
add eax, 0xd8a1e681
mov dword [esp + 0x10], eax
add edi, dword [esp + 0x58]
mov ebx, dword [esp]
mov ebp, ebx
not ebp
mov eax, dword [esp + 4]
and ebp, eax
add ebp, edi
rol esi, 9
add esi, eax
mov edi, esi
and edi, ebx
add edi, ebp
add edi, 0xd8a1e681
mov ebx, ecx
add ebx, dword [esp + 0xa8]
mov eax, dword [esp + 8]
mov ebp, eax
not ebp
and ebp, edx
add ebp, ebx
mov ebx, dword [esp + 0x10]
rol ebx, 0xe
add ebx, edx
mov dword [esp + 0x10], ebx
and ebx, eax
add ebp, ebx
add ebp, 0xe7d3fbc8
mov eax, dword [esp]
add eax, dword [esp + 0xa4]
mov ecx, dword [esp + 4]
mov ebx, ecx
not ebx
and ebx, esi
add ebx, eax
rol edi, 0xe
add edi, esi
rol ebp, 0x14
mov dword [esp + 0xc], ebp
mov ebp, edi
and ebp, ecx
add ebp, ebx
add ebp, 0xe7d3fbc8
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0x40]
mov ebx, edx
not ebx
mov eax, dword [esp + 0x10]
and ebx, eax
add ebx, ecx
mov ecx, dword [esp + 0xc]
add ecx, eax
mov dword [esp + 0xc], ecx
and ecx, edx
lea eax, [ecx + ebx]
add eax, 0x21e1cde6
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 4]
add eax, dword [esp + 0x38]
mov ebx, esi
not ebx
and ebx, edi
add ebx, eax
rol ebp, 0x14
add ebp, edi
mov ecx, ebp
and ecx, esi
lea eax, [ecx + ebx]
add eax, 0x21e1cde6
mov dword [esp], eax
add edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x10]
mov ebx, ecx
not ebx
mov eax, dword [esp + 0xc]
and ebx, eax
add ebx, edx
mov edx, dword [esp + 0x1c]
rol edx, 5
add edx, eax
mov eax, edx
mov dword [esp + 0x1c], edx
and edx, ecx
add ebx, edx
add ebx, 0xc33707d6
add esi, dword [esp + 0x64]
mov ecx, edi
mov edx, edi
not edx
and edx, ebp
add edx, esi
mov esi, dword [esp]
rol esi, 5
add esi, ebp
mov dword [esp], esi
rol ebx, 9
mov dword [esp + 8], ebx
and esi, edi
add esi, edx
add esi, 0xc33707d6
mov ebx, dword [esp + 0x10]
add ebx, dword [esp + 0x9c]
mov ecx, dword [esp + 0xc]
mov edx, ecx
not edx
and edx, eax
add edx, ebx
mov ebx, dword [esp + 8]
add ebx, eax
mov dword [esp + 8], ebx
mov eax, ecx
and ebx, ecx
lea ecx, [ebx + edx]
add ecx, 0xf4d50d87
mov dword [esp + 0x10], ecx
add edi, dword [esp + 0x98]
mov edx, ebp
not edx
mov ecx, dword [esp]
and edx, ecx
add edx, edi
rol esi, 9
add esi, ecx
mov edi, esi
and edi, ebp
add edi, edx
add edi, 0xf4d50d87
mov ebx, eax
add ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x1c]
mov edx, ecx
not edx
mov eax, dword [esp + 8]
and edx, eax
add edx, ebx
mov ebx, dword [esp + 0x10]
rol ebx, 0xe
add ebx, eax
mov dword [esp + 0x10], ebx
and ebx, ecx
mov eax, ecx
add ebx, edx
add ebx, 0x455a14ed
add ebp, dword [esp + 0x90]
mov ecx, dword [esp]
mov edx, ecx
not edx
and edx, esi
add edx, ebp
rol edi, 0xe
add edi, esi
rol ebx, 0x14
mov ebp, ebx
mov ebx, edi
and ebx, ecx
lea ecx, [ebx + edx]
add ecx, 0x455a14ed
mov dword [esp + 4], ecx
add eax, dword [esp + 0x84]
mov ebx, dword [esp + 8]
mov edx, ebx
not edx
mov ecx, dword [esp + 0x10]
and edx, ecx
add edx, eax
mov eax, ebp
add eax, ecx
mov dword [esp + 0x1c], eax
and eax, ebx
lea ebp, [eax + edx]
add ebp, 0xa9e3e905
mov ecx, dword [esp]
add ecx, dword [esp + 0x4c]
mov eax, esi
not eax
and eax, edi
add eax, ecx
mov ecx, dword [esp + 4]
rol ecx, 0x14
add ecx, edi
mov dword [esp + 4], ecx
and ecx, esi
add eax, ecx
add eax, 0xa9e3e905
mov dword [esp + 0xc], eax
add ebx, dword [esp + 0xb0]
mov eax, dword [esp + 0x10]
mov ecx, eax
not ecx
mov edx, dword [esp + 0x1c]
and ecx, edx
add ecx, ebx
rol ebp, 5
add ebp, edx
mov ebx, ebp
and ebx, eax
lea edx, [ebx + ecx]
add edx, 0xfcefa3f8
add esi, dword [esp + 0xac]
mov ecx, edi
not ecx
mov eax, dword [esp + 4]
and ecx, eax
add ecx, esi
mov esi, dword [esp + 0xc]
rol esi, 5
add esi, eax
mov dword [esp + 0xc], esi
rol edx, 9
and esi, edi
add ecx, esi
add ecx, 0xfcefa3f8
mov dword [esp], ecx
mov ebx, dword [esp + 0x10]
add ebx, dword [esp + 0x78]
mov eax, dword [esp + 0x1c]
mov esi, eax
not esi
and esi, ebp
add esi, ebx
mov ebx, edx
add ebx, ebp
mov dword [esp + 0x44], ebx
and ebx, eax
mov edx, eax
add ebx, esi
add ebx, 0x676f02d9
add edi, dword [esp + 0x74]
mov ecx, dword [esp + 4]
mov esi, ecx
not esi
mov eax, dword [esp + 0xc]
and esi, eax
add esi, edi
mov edi, dword [esp]
rol edi, 9
add edi, eax
mov dword [esp], edi
and edi, ecx
add esi, edi
add esi, 0x676f02d9
mov dword [esp + 0x10], esi
mov edi, edx
add edi, dword [esp + 0x70]
mov esi, ebp
not esi
mov edx, dword [esp + 0x44]
and esi, edx
add esi, edi
rol ebx, 0xe
add ebx, edx
mov edi, ebx
mov dword [esp + 8], ebx
and edi, ebp
lea ebx, [edi + esi]
add ebx, 0x8d2a4c8a
mov edx, ecx
add edx, dword [esp + 0x6c]
mov esi, eax
not esi
mov ecx, dword [esp]
and esi, ecx
add esi, edx
mov edi, dword [esp + 0x10]
rol edi, 0xe
add edi, ecx
mov dword [esp + 0x10], edi
rol ebx, 0x14
and edi, eax
mov ecx, eax
lea edx, [edi + esi]
add edx, 0x8d2a4c8a
mov edi, ebx
mov eax, dword [esp + 8]
add edi, eax
mov dword [esp + 4], edi
add ebp, dword [esp + 0x5c]
xor edi, eax
mov esi, edi
mov eax, dword [esp + 0x44]
xor esi, eax
lea ebx, [esi + ebp]
add ebx, 0xfffa3942
rol edx, 0x14
mov esi, dword [esp + 0x10]
add edx, esi
add ecx, dword [esp + 0x88]
mov ebp, edx
xor ebp, esi
mov esi, ebp
xor esi, dword [esp]
add esi, ecx
add esi, 0xfffa3942
rol ebx, 4
add ebx, dword [esp + 4]
rol esi, 4
add eax, dword [esp + 0x50]
xor edi, ebx
add eax, edi
add eax, 0x8771f681
add esi, edx
mov ecx, dword [esp]
add ecx, dword [esp + 0x90]
xor ebp, esi
add ecx, ebp
add ecx, 0x8771f681
mov ebp, eax
rol ebp, 0xb
add ebp, ebx
mov dword [esp], ebp
mov eax, dword [esp + 8]
add eax, dword [esp + 0x94]
xor ebp, ebx
mov edi, ebp
xor edi, dword [esp + 4]
add edi, eax
add edi, 0x6d9d6122
rol ecx, 0xb
rol edi, 0x10
mov eax, esi
mov dword [esp + 0x1c], esi
add ecx, esi
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x10]
add esi, dword [esp + 0x30]
mov dword [esp + 0x10], esi
mov esi, ecx
xor esi, eax
mov ecx, esi
xor ecx, edx
mov eax, dword [esp + 0x10]
add eax, ecx
add eax, 0x6d9d6122
add edi, dword [esp]
mov ecx, dword [esp + 4]
add ecx, dword [esp + 0x68]
xor ebp, edi
add ecx, ebp
add ecx, 0xfde5380c
rol eax, 0x10
add eax, dword [esp + 8]
rol ecx, 0x17
add edx, dword [esp + 0x64]
xor esi, eax
add esi, edx
add esi, 0xfde5380c
add ecx, edi
mov dword [esp + 4], ecx
add ebx, dword [esp + 0x3c]
xor ecx, edi
mov edx, ecx
xor edx, dword [esp]
add ebx, edx
add ebx, 0xa4beea44
rol esi, 0x17
mov dword [esp + 0x10], eax
add esi, eax
mov edx, esi
mov dword [esp + 0xc], esi
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x54]
xor edx, eax
mov esi, edx
xor esi, dword [esp + 8]
add ebp, esi
add ebp, 0xa4beea44
rol ebx, 4
mov esi, dword [esp + 4]
add ebx, esi
rol ebp, 4
mov eax, dword [esp]
add eax, dword [esp + 0xa8]
xor ecx, ebx
add eax, ecx
add eax, 0x4bdecfa9
add ebp, dword [esp + 0xc]
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0xa4]
xor edx, ebp
add edx, ecx
add edx, 0x4bdecfa9
rol eax, 0xb
add eax, ebx
mov dword [esp], eax
add edi, dword [esp + 0x78]
mov ecx, ebx
xor ecx, esi
xor ecx, eax
lea esi, [ecx + edi]
add esi, 0xf6bb4b60
mov ecx, edx
rol ecx, 0xb
rol esi, 0x10
add ecx, ebp
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x74]
mov edx, ebp
mov edi, dword [esp + 0xc]
xor edx, edi
xor edx, ecx
add edx, eax
add edx, 0xf6bb4b60
mov ecx, esi
mov esi, dword [esp]
add ecx, esi
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 4]
add eax, dword [esp + 0x80]
xor esi, ebx
xor esi, ecx
add esi, eax
add esi, 0xbebfbc70
rol edx, 0x10
mov ecx, dword [esp + 8]
add edx, ecx
mov eax, edi
add eax, dword [esp + 0x7c]
mov edi, ecx
xor edi, ebp
xor edi, edx
add edi, eax
add edi, 0xbebfbc70
rol esi, 0x17
mov ecx, dword [esp + 0x10]
add esi, ecx
add ebx, dword [esp + 0x84]
xor ecx, dword [esp]
xor ecx, esi
add ebx, ecx
add ebx, 0x289b7ec6
rol edi, 0x17
rol ebx, 4
mov ecx, edx
mov dword [esp + 4], edx
add edi, edx
add ebp, dword [esp + 0x4c]
mov eax, dword [esp + 8]
xor ecx, eax
xor ecx, edi
add ebp, ecx
add ebp, 0x289b7ec6
add ebx, esi
mov edx, dword [esp]
add edx, dword [esp + 0x8c]
mov ecx, esi
xor ecx, dword [esp + 0x10]
xor ecx, ebx
add ecx, edx
add ecx, 0xeaa127fa
rol ebp, 4
add ebp, edi
mov dword [esp], ebp
add eax, dword [esp + 0x28]
mov edx, eax
mov eax, edi
xor eax, dword [esp + 4]
xor eax, ebp
add eax, edx
add eax, 0xeaa127fa
rol ecx, 0xb
add ecx, ebx
mov ebp, ecx
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x10]
add edx, dword [esp + 0x9c]
mov ecx, ebx
xor ecx, esi
xor ecx, ebp
add edx, ecx
add edx, 0xd4ef3085
rol eax, 0xb
rol edx, 0x10
mov ebp, dword [esp]
add eax, ebp
mov ecx, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
add eax, dword [esp + 0x98]
xor ebp, edi
xor ebp, ecx
add eax, ebp
add eax, 0xd4ef3085
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov ecx, edx
add ecx, eax
mov dword [esp + 8], ecx
add esi, dword [esp + 0x34]
mov ebp, eax
xor ebp, ebx
xor ebp, ecx
add esi, ebp
add esi, 0x4881d05
mov edx, dword [esp + 0x10]
rol edx, 0x10
mov ebp, dword [esp + 0xc]
add edx, ebp
mov dword [esp + 0x10], edx
add edi, dword [esp + 0xa0]
xor ebp, dword [esp]
xor ebp, edx
add edi, ebp
add edi, 0x4881d05
rol esi, 0x17
add esi, ecx
add ebx, dword [esp + 0x40]
mov ebp, ecx
mov ecx, eax
xor ebp, eax
xor ebp, esi
mov eax, esi
mov dword [esp + 4], esi
add ebx, ebp
add ebx, 0xd9d4d039
rol edi, 0x17
rol ebx, 4
add edi, edx
mov esi, dword [esp]
add esi, dword [esp + 0x38]
mov ebp, edx
mov edx, dword [esp + 0xc]
xor ebp, edx
xor ebp, edi
add ebp, esi
add ebp, 0xd9d4d039
add ebx, eax
add ecx, dword [esp + 0x70]
xor eax, dword [esp + 8]
xor eax, ebx
add eax, ecx
add eax, 0xe6db99e5
rol ebp, 4
add ebp, edi
add edx, dword [esp + 0x6c]
mov esi, edi
xor esi, dword [esp + 0x10]
xor esi, ebp
add edx, esi
add edx, 0xe6db99e5
rol eax, 0xb
add eax, ebx
mov dword [esp], eax
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0x48]
mov esi, ebx
xor esi, dword [esp + 4]
xor esi, eax
add ecx, esi
add ecx, 0x1fa27cf8
mov eax, edx
rol eax, 0xb
rol ecx, 0x10
mov edx, ecx
add eax, ebp
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x58]
mov esi, ebp
xor esi, edi
xor esi, eax
lea eax, [esi + ecx]
add eax, 0x1fa27cf8
mov dword [esp + 0x10], eax
mov esi, dword [esp]
add edx, esi
mov eax, dword [esp + 4]
add eax, dword [esp + 0xb0]
xor esi, ebx
xor esi, edx
mov ecx, edx
mov dword [esp + 0xc], edx
add esi, eax
add esi, 0xc4ac5665
mov edx, dword [esp + 0x10]
rol edx, 0x10
mov eax, dword [esp + 8]
add edx, eax
add edi, dword [esp + 0xac]
xor eax, ebp
xor eax, edx
add edi, eax
add edi, 0xc4ac5665
add ebx, dword [esp + 0x8c]
rol esi, 0x17
add esi, ecx
mov eax, dword [esp]
not eax
or eax, esi
xor eax, ecx
add ebx, eax
add ebx, 0xf4292244
add ebp, dword [esp + 0x28]
rol edi, 0x17
mov dword [esp + 0x10], edx
add edi, edx
mov dword [esp + 4], edi
mov ecx, dword [esp + 8]
mov eax, ecx
not eax
or eax, edi
xor eax, edx
lea edi, [eax + ebp]
add edi, 0xf4292244
mov edx, dword [esp]
add edx, dword [esp + 0x78]
rol ebx, 6
add ebx, esi
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0xc]
not eax
or eax, ebx
xor eax, esi
lea ebx, [eax + edx]
add ebx, 0x432aff97
mov ebp, ecx
add ebp, dword [esp + 0x74]
rol edi, 6
mov ecx, dword [esp + 4]
add edi, ecx
mov dword [esp + 8], edi
mov eax, dword [esp + 0x10]
not eax
or eax, edi
xor eax, ecx
lea edi, [eax + ebp]
add edi, 0x432aff97
mov edx, dword [esp + 0xc]
add edx, dword [esp + 0x68]
mov ebp, ebx
rol ebp, 0xa
mov ecx, dword [esp + 0x28]
add ebp, ecx
mov eax, esi
not eax
or eax, ebp
xor eax, ecx
lea ebx, [eax + edx]
add ebx, 0xab9423a7
mov edx, dword [esp + 0x10]
add edx, dword [esp + 0x64]
rol edi, 0xa
mov ecx, dword [esp + 8]
add edi, ecx
mov eax, dword [esp + 4]
not eax
or eax, edi
xor eax, ecx
lea ecx, [eax + edx]
add ecx, 0xab9423a7
add esi, dword [esp + 0x5c]
rol ebx, 0xf
add ebx, ebp
mov edx, dword [esp + 0x28]
mov eax, edx
not eax
or eax, ebx
xor eax, ebp
add eax, esi
add eax, 0xfc93a039
mov dword [esp], eax
mov esi, dword [esp + 4]
add esi, dword [esp + 0x88]
rol ecx, 0xf
mov dword [esp + 0xc], edi
add ecx, edi
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 8]
not eax
or eax, ecx
xor eax, edi
add eax, esi
add eax, 0xfc93a039
mov esi, edx
add esi, dword [esp + 0x70]
mov edx, dword [esp]
rol edx, 0x15
add edx, ebx
mov dword [esp], edx
mov ecx, ebp
not ecx
or ecx, edx
xor ecx, ebx
add ecx, esi
add ecx, 0x655b59c3
mov edi, dword [esp + 8]
add edi, dword [esp + 0x6c]
rol eax, 0x15
mov esi, dword [esp + 0x10]
add eax, esi
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0xc]
not edx
or edx, eax
xor edx, esi
add edx, edi
add edx, 0x655b59c3
add ebp, dword [esp + 0x9c]
rol ecx, 6
mov eax, dword [esp]
add ecx, eax
mov dword [esp + 4], ecx
mov esi, ebx
not esi
or esi, ecx
xor esi, eax
add esi, ebp
add esi, 0x8f0ccc92
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x98]
rol edx, 6
mov eax, dword [esp + 0x28]
add edx, eax
mov ebp, dword [esp + 0x10]
not ebp
or ebp, edx
xor ebp, eax
mov edi, eax
add ecx, ebp
add ecx, 0x8f0ccc92
add ebx, dword [esp + 0x80]
rol esi, 0xa
mov eax, dword [esp + 4]
add esi, eax
mov ebp, dword [esp]
not ebp
or ebp, esi
xor ebp, eax
add ebx, ebp
add ebx, 0xffeff47d
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x7c]
rol ecx, 0xa
mov dword [esp + 8], edx
add ecx, edx
mov dword [esp + 0x10], ecx
mov ebp, edi
not ebp
or ebp, ecx
xor ebp, edx
add ebp, eax
add ebp, 0xffeff47d
mov edi, dword [esp]
add edi, dword [esp + 0x3c]
rol ebx, 0xf
add ebx, esi
mov ecx, dword [esp + 4]
not ecx
or ecx, ebx
xor ecx, esi
add edi, ecx
add edi, 0x85845dd1
mov edx, dword [esp + 0x28]
add edx, dword [esp + 0x54]
rol ebp, 0xf
mov eax, dword [esp + 0x10]
add ebp, eax
mov ecx, dword [esp + 8]
not ecx
or ecx, ebp
xor ecx, eax
lea eax, [ecx + edx]
add eax, 0x85845dd1
mov dword [esp], eax
mov eax, dword [esp + 4]
add eax, dword [esp + 0x50]
rol edi, 0x15
add edi, ebx
mov dword [esp + 4], edi
mov ecx, esi
not ecx
or ecx, edi
xor ecx, ebx
add ecx, eax
add ecx, 0x6fa87e4f
mov edx, dword [esp + 8]
add edx, dword [esp + 0x90]
mov eax, dword [esp]
rol eax, 0x15
add eax, ebp
mov dword [esp], eax
mov edi, dword [esp + 0x10]
not edi
or edi, eax
xor edi, ebp
add edi, edx
add edi, 0x6fa87e4f
add esi, dword [esp + 0x48]
rol ecx, 6
mov eax, dword [esp + 4]
add ecx, eax
mov edx, ebx
not edx
or edx, ecx
xor edx, eax
add esi, edx
add esi, 0xfe2ce6e0
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x58]
mov dword [esp + 0x10], eax
rol edi, 6
mov eax, dword [esp]
add edi, eax
mov dword [esp + 8], edi
mov edx, ebp
not edx
or edx, edi
xor edx, eax
mov eax, dword [esp + 0x10]
lea edi, [edx + eax]
add edi, 0xfe2ce6e0
add ebx, dword [esp + 0x34]
rol esi, 0xa
mov dword [esp + 0x54], ecx
add esi, ecx
mov edx, dword [esp + 4]
not edx
or edx, esi
xor edx, ecx
add ebx, edx
add ebx, 0xa3014314
add ebp, dword [esp + 0xa0]
rol edi, 0xa
mov eax, dword [esp + 8]
add edi, eax
mov dword [esp + 0xc], edi
mov ecx, dword [esp]
mov edx, ecx
not edx
or edx, edi
xor edx, eax
add ebp, edx
add ebp, 0xa3014314
mov edi, dword [esp + 4]
add edi, dword [esp + 0x84]
rol ebx, 0xf
add ebx, esi
mov edx, dword [esp + 0x54]
not edx
or edx, ebx
xor edx, esi
add edi, edx
add edi, 0x4e0811a1
add ecx, dword [esp + 0x4c]
rol ebp, 0xf
mov eax, dword [esp + 0xc]
add ebp, eax
mov edx, dword [esp + 8]
not edx
or edx, ebp
xor edx, eax
add edx, ecx
add edx, 0x4e0811a1
mov ecx, dword [esp + 0x54]
add ecx, dword [esp + 0xa8]
rol edi, 0x15
add edi, ebx
mov dword [esp], edi
mov eax, esi
not eax
or eax, edi
xor eax, ebx
lea edi, [eax + ecx]
add edi, 0xf7537e82
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0xa4]
rol edx, 0x15
add edx, ebp
mov dword [esp + 8], edx
mov eax, dword [esp + 0xc]
not eax
or eax, edx
xor eax, ebp
lea edx, [eax + ecx]
add edx, 0xf7537e82
add esi, dword [esp + 0x94]
rol edi, 6
mov ecx, dword [esp]
add edi, ecx
mov eax, ebx
not eax
or eax, edi
xor eax, ecx
add eax, esi
add eax, 0xbd3af235
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0xc]
add esi, dword [esp + 0x30]
rol edx, 6
mov ecx, dword [esp + 8]
add edx, ecx
mov dword [esp + 4], edx
mov eax, ebp
not eax
or eax, edx
mov edx, ecx
xor eax, ecx
add esi, eax
add esi, 0xbd3af235
add ebx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x10]
rol ecx, 0xa
add ecx, edi
mov dword [esp + 0x10], ecx
mov eax, dword [esp]
not eax
or eax, ecx
xor eax, edi
add eax, ebx
add eax, 0x2ad7d2bb
add ebp, dword [esp + 0xac]
rol esi, 0xa
mov ecx, dword [esp + 4]
add esi, ecx
mov ebx, edx
not ebx
or ebx, esi
xor ebx, ecx
add ebx, ebp
add ebx, 0x2ad7d2bb
mov ebp, dword [esp]
add ebp, dword [esp + 0x40]
rol eax, 0xf
mov ecx, dword [esp + 0x10]
add eax, ecx
mov edx, edi
not edx
or edx, eax
xor edx, ecx
add edx, ebp
add edx, 0xeb86d391
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0x38]
rol ebx, 0xf
add ebx, esi
mov ebp, dword [esp + 4]
not ebp
or ebp, ebx
xor ebp, esi
add ecx, ebp
add ecx, 0xeb86d391
add edi, dword [esp + 0xc8]
rol edx, 0x15
mov ebp, dword [esp + 0x24]
mov dword [ebp + 0x90], edi
mov edi, ebp
mov ebp, dword [esp + 0xb4]
add ebp, eax
add ebp, edx
mov dword [edi + 0x94], ebp
add eax, dword [esp + 0xb8]
mov dword [edi + 0x98], eax
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x2c]
mov dword [edi + 0x9c], eax
mov eax, dword [esp + 4]
add eax, dword [esp + 0xcc]
mov dword [edi + 0xa0], eax
rol ecx, 0x15
mov eax, dword [esp + 0x14]
add eax, ebx
add eax, ecx
mov dword [edi + 0xa4], eax
add ebx, dword [esp + 0x60]
mov dword [edi + 0xa8], ebx
add esi, dword [esp + 0x18]
mov dword [edi + 0xac], esi
mov ebx, dword [esp + 0xd0]
mov eax, dword [esp + 0xbc]
sub ebx, eax
add dword [esp + 0x20], eax
mov cl, byte [edi + 0x111]
cmp byte [edi + 0x110], cl
jbe 0x47b5be
movzx eax, cl
push eax
push dword [esp + 0xc4]
push dword [esp + 0xcc]
call fcn.004c4690
add esp, 0xc
mov al, byte [edi + 0x111]
mov byte [edi + 0x110], al
mov dl, 0x40
mov ecx, eax
cmp ebx, 0x40
jae 0x47a080
movzx eax, al
add eax, edi
add eax, 0x10
push ebx
push dword [esp + 0x24]
push eax
call fcn.004c4690
add esp, 0xc
add bl, byte [edi + 0x110]
jmp 0x47cb13
movzx ecx, cl
lea eax, [ecx + 0x40]
mov dword [esp + 0xc0], eax
cmp ebx, eax
jb 0x47cb02
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
lea ebp, [eax + ecx]
nop
mov dword [esp + 0xd0], ebx
mov ecx, dword [edi + 0xd0]
xor eax, eax
nop
xor ecx, dword [ebp + eax*4]
mov edx, ecx
movzx esi, ch
movzx edi, cl
shr ecx, 0x18
shr edx, 0xe
and edx, 0x3fc
mov edx, dword [edx + 0x4ed350]
xor edx, dword [ecx*4 + 0x4ecf50]
xor edx, dword [esi*4 + 0x4ed750]
mov ecx, edx
xor ecx, dword [edi*4 + 0x4edb50]
add eax, 1
cmp eax, 0x10
jne 0x47b5f0
mov eax, dword [esp + 0x24]
mov dword [eax + 0xd0], ecx
mov edx, dword [eax + 0xa0]
mov dword [esp + 0xc8], edx
mov edi, dword [eax + 0xa4]
mov dword [esp + 0x60], edi
mov ecx, dword [eax + 0xa8]
mov dword [esp + 0xb0], ecx
mov esi, ecx
mov ecx, dword [eax + 0xac]
mov dword [esp + 0xb8], ecx
mov ebx, eax
mov eax, ecx
xor eax, esi
and eax, edi
xor eax, ecx
mov esi, dword [esp + 0x20]
mov ecx, dword [esi]
mov dword [esp + 0x50], ecx
add ecx, edx
lea eax, [eax + ecx - 0x28955b88]
mov dword [esp + 4], eax
mov ecx, ebx
mov edi, dword [ebx + 0x98]
mov edx, dword [ebx + 0x9c]
mov dword [esp + 0xb4], edx
mov eax, edx
xor eax, edi
mov ebx, dword [ebx + 0x94]
and eax, ebx
xor eax, edx
mov ecx, dword [ecx + 0x90]
mov dword [esp + 0xc4], ecx
add eax, ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx]
mov dword [esp + 0x5c], ecx
add ecx, eax
add ecx, 0xd76aa478
rol ecx, 7
add ecx, ebx
mov dword [esp + 0xc], ecx
rol dword [esp + 4], 7
mov dword [esp + 0x44], edi
mov eax, edi
xor eax, ebx
and eax, ecx
xor eax, edi
mov ecx, dword [esi + edx + 4]
mov dword [esp + 0x38], ecx
mov edi, esi
mov edx, dword [esp + 0xb4]
lea esi, [edx + ecx]
lea eax, [eax + esi - 0x173848aa]
mov dword [esp], eax
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 4]
add ecx, esi
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xb0]
mov eax, edx
xor eax, esi
and eax, ecx
xor eax, edx
mov ecx, dword [edi + 4]
mov esi, edi
mov dword [esp + 0x40], ecx
mov edi, dword [esp + 0xb8]
add edi, ecx
add edi, eax
add edi, 0xe8c7b756
mov ecx, dword [esp]
rol ecx, 0xc
mov eax, dword [esp + 0xc]
add ecx, eax
mov dword [esp], ecx
mov dword [esp + 0xbc], ebx
xor eax, ebx
and eax, ecx
xor eax, ebx
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + edx + 8]
mov dword [esp + 0xac], ecx
mov ebx, dword [esp + 0x44]
add ebx, ecx
add ebx, eax
add ebx, 0x242070db
rol edi, 0xc
mov eax, dword [esp + 4]
add edi, eax
mov dword [esp + 0x3c], edi
mov ecx, dword [esp + 0x60]
xor eax, ecx
and eax, edi
xor eax, ecx
mov ecx, dword [esi + 8]
mov edi, esi
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xcc], ebp
mov ebp, dword [esp + 0xb0]
add ebp, ecx
lea esi, [eax + ebp]
add esi, 0x242070db
rol ebx, 0x11
mov eax, dword [esp]
add ebx, eax
rol esi, 0x11
mov ecx, dword [esp + 0xc]
xor eax, ecx
and eax, ebx
xor eax, ecx
mov ecx, dword [edi + edx + 0xc]
mov dword [esp + 0x94], ecx
mov edx, dword [esp + 0xbc]
lea ebp, [edx + ecx]
add eax, ebp
add eax, 0xc1bdceee
mov dword [esp + 8], eax
mov ebp, dword [esp + 0x3c]
add esi, ebp
mov dword [esp + 0x28], esi
mov eax, dword [esp + 4]
xor ebp, eax
and ebp, esi
xor ebp, eax
mov esi, eax
mov edx, edi
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x98], ecx
mov eax, dword [esp + 0x60]
add eax, ecx
lea edi, [eax + ebp]
add edi, 0xc1bdceee
mov ecx, dword [esp + 8]
rol ecx, 0x16
add ecx, ebx
mov dword [esp + 8], ecx
mov eax, ebx
mov ebp, dword [esp]
xor eax, ebp
and eax, ecx
xor eax, ebp
mov ebp, edx
mov ecx, dword [esp + 0x10]
mov ecx, dword [edx + ecx + 0x10]
mov dword [esp + 0xa4], ecx
mov edx, dword [esp + 0xc]
add edx, ecx
lea ecx, [eax + edx]
add ecx, 0xf57c0faf
mov edx, edi
rol edx, 0x16
mov eax, dword [esp + 0x28]
add edx, eax
mov dword [esp + 0xc], edx
mov edi, dword [esp + 0x3c]
xor eax, edi
and eax, edx
xor eax, edi
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x54], edx
mov edi, ebp
add esi, edx
add esi, eax
add esi, 0xf57c0faf
rol ecx, 7
mov eax, dword [esp + 8]
add ecx, eax
mov dword [esp + 0x14], ecx
rol esi, 7
xor eax, ebx
and eax, ecx
xor eax, ebx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], ebp
mov ecx, dword [ebp + ecx + 0x14]
mov dword [esp + 0x88], ecx
mov ebp, dword [esp]
add ebp, ecx
add eax, ebp
add eax, 0x4787c62a
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc]
add esi, eax
mov dword [esp + 0x30], esi
mov ebp, dword [esp + 0x28]
xor eax, ebp
and eax, esi
xor eax, ebp
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x3c]
add edx, ecx
add eax, edx
add eax, 0x4787c62a
mov dword [esp], eax
mov esi, dword [esp + 0x34]
rol esi, 0xc
mov ecx, dword [esp + 0x14]
add esi, ecx
mov eax, dword [esp + 0x10]
mov edx, dword [edi + eax + 0x18]
mov dword [esp + 0xa0], edx
add ebx, edx
mov eax, ecx
mov edx, dword [esp + 8]
xor eax, edx
and eax, esi
xor eax, edx
add eax, ebx
add eax, 0xa8304613
mov dword [esp + 4], eax
mov edi, dword [esp]
rol edi, 0xc
mov ecx, dword [esp + 0x30]
add edi, ecx
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x9c], eax
add ebp, eax
mov eax, ecx
mov ecx, dword [esp + 0xc]
xor eax, ecx
and eax, edi
xor eax, ecx
add ebp, eax
add ebp, 0xa8304613
mov eax, dword [esp + 4]
rol eax, 0x11
mov ecx, esi
mov dword [esp + 0x34], esi
add eax, esi
mov esi, eax
rol ebp, 0x11
mov eax, dword [esp + 0x10]
mov eax, dword [ebx + eax + 0x1c]
mov dword [esp + 0x74], eax
add edx, eax
mov eax, ecx
mov ecx, dword [esp + 0x14]
xor eax, ecx
and eax, esi
xor eax, ecx
add eax, edx
add eax, 0xfd469501
mov dword [esp + 8], eax
add ebp, edi
mov eax, dword [ebx + 0x1c]
mov ecx, ebx
mov dword [esp + 0x48], eax
mov ebx, dword [esp + 0xc]
add ebx, eax
mov eax, edi
mov edx, dword [esp + 0x30]
xor eax, edx
and eax, ebp
xor eax, edx
add eax, ebx
add eax, 0xfd469501
mov dword [esp], eax
mov ebx, dword [esp + 8]
rol ebx, 0x16
mov eax, esi
mov dword [esp + 4], esi
add ebx, esi
mov esi, ebx
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x10]
mov ebx, dword [ecx + ebx + 0x20]
mov dword [esp + 0x90], ebx
mov ecx, dword [esp + 0x14]
add ecx, ebx
mov ebx, eax
mov eax, dword [esp + 0x34]
xor ebx, eax
and ebx, esi
xor ebx, eax
mov esi, eax
add ecx, ebx
add ecx, 0x698098d8
mov eax, dword [esp]
rol eax, 0x16
add eax, ebp
mov dword [esp], eax
mov ebx, dword [esp + 0x20]
mov ebx, dword [ebx + 0x20]
mov dword [esp + 0x8c], ebx
add edx, ebx
mov ebx, ebp
xor ebx, edi
and ebx, eax
xor ebx, edi
add edx, ebx
add edx, 0x698098d8
rol ecx, 7
mov eax, dword [esp + 8]
add ecx, eax
rol edx, 7
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov edx, dword [ebx + edx + 0x24]
mov dword [esp + 0x3c], edx
add esi, edx
mov ebx, eax
mov eax, dword [esp + 4]
xor ebx, eax
and ebx, ecx
xor ebx, eax
add esi, ebx
add esi, 0x8b44f7af
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
add eax, ebx
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x24]
mov dword [esp + 0x34], edx
add edi, edx
xor ebx, ebp
mov dword [esp + 0xc], eax
and ebx, eax
xor ebx, ebp
add edi, ebx
add edi, 0x8b44f7af
rol esi, 0xc
add esi, ecx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov edx, dword [ebx + edx + 0x28]
mov dword [esp + 0x7c], edx
add dword [esp + 4], edx
mov ebx, ecx
mov edx, dword [esp + 8]
xor ebx, edx
and ebx, esi
xor ebx, edx
mov edx, dword [esp + 4]
add ebx, edx
add ebx, 0xffff5bb1
rol edi, 0xc
add edi, eax
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x28]
mov dword [esp + 0x78], edx
add ebp, edx
mov edx, eax
mov eax, dword [esp]
xor edx, eax
and edx, edi
xor edx, eax
add ebp, edx
add ebp, 0xffff5bb1
rol ebx, 0x11
add ebx, esi
rol ebp, 0x11
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov edx, dword [eax + edx + 0x2c]
mov dword [esp + 0x30], edx
mov eax, dword [esp + 8]
add eax, edx
mov edx, esi
xor edx, ecx
and edx, ebx
xor edx, ecx
add eax, edx
add eax, 0x895cd7be
mov dword [esp + 4], eax
add ebp, edi
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x28], edx
add dword [esp], edx
mov edx, edi
mov eax, dword [esp + 0xc]
xor edx, eax
and edx, ebp
xor edx, eax
mov eax, dword [esp]
add eax, edx
add eax, 0x895cd7be
mov dword [esp + 8], eax
mov eax, dword [esp + 4]
rol eax, 0x16
add eax, ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov eax, dword [edx + eax + 0x30]
mov dword [esp + 0x6c], eax
add ecx, eax
mov eax, ebx
xor eax, esi
and eax, dword [esp + 4]
xor eax, esi
add eax, ecx
add eax, 0x6b901122
mov dword [esp], eax
mov eax, dword [esp + 8]
rol eax, 0x16
add eax, ebp
mov dword [esp + 8], eax
mov ecx, dword [edx + 0x30]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0xc]
add edx, ecx
mov ecx, ebp
xor ecx, edi
and ecx, eax
xor ecx, edi
add edx, ecx
add edx, 0x6b901122
mov eax, dword [esp]
rol eax, 7
mov ecx, dword [esp + 4]
add eax, ecx
mov dword [esp], eax
rol edx, 7
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov edx, dword [eax + edx + 0x34]
mov dword [esp + 0x4c], edx
add esi, edx
xor ecx, ebx
and ecx, dword [esp]
xor ecx, ebx
lea edx, [ecx + esi]
add edx, 0xfd987193
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
add ecx, eax
mov esi, dword [esp + 0x20]
mov esi, dword [esi + 0x34]
mov dword [esp + 0x80], esi
add edi, esi
mov esi, eax
xor esi, ebp
and esi, ecx
xor esi, ebp
lea eax, [esi + edi]
add eax, 0xfd987193
mov dword [esp + 0x14], eax
rol edx, 0xc
mov eax, dword [esp]
add edx, eax
mov dword [esp + 0x2c], edx
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov esi, dword [edi + esi + 0x38]
mov dword [esp + 0x64], esi
add ebx, esi
mov esi, eax
mov eax, dword [esp + 4]
xor esi, eax
and esi, edx
xor esi, eax
mov edx, eax
add esi, ebx
add esi, 0xa679438e
mov ebx, dword [esp + 0x14]
rol ebx, 0xc
mov eax, ecx
mov dword [esp + 0xc], ecx
add ebx, ecx
mov ecx, ebx
mov dword [esp + 0x14], ebx
mov ebx, dword [edi + 0x38]
mov dword [esp + 0x1c], ebx
add ebp, ebx
mov ebx, eax
mov eax, dword [esp + 8]
xor ebx, eax
and ebx, ecx
xor ebx, eax
add ebx, ebp
add ebx, 0xa679438e
rol esi, 0x11
mov eax, dword [esp + 0x2c]
add esi, eax
rol ebx, 0x11
mov ebp, dword [esp + 0x10]
mov ebp, dword [edi + ebp + 0x3c]
mov dword [esp + 0x58], ebp
add edx, ebp
mov ecx, edx
mov ebp, eax
mov edx, dword [esp]
xor ebp, edx
and ebp, esi
xor ebp, edx
add ebp, ecx
add ebp, 0x49b40821
mov eax, dword [esp + 0x14]
add ebx, eax
mov edi, dword [edi + 0x3c]
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 8]
add ecx, edi
mov edi, eax
mov eax, dword [esp + 0xc]
xor edi, eax
and edi, ebx
xor edi, eax
lea eax, [edi + ecx]
add eax, 0x49b40821
mov dword [esp + 0x18], eax
add edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
mov edi, ecx
not edi
and edi, esi
add edi, edx
rol ebp, 0x16
add ebp, esi
mov eax, ebp
and eax, ecx
add eax, edi
add eax, 0xf61e2562
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
mov eax, edx
not eax
and eax, ebx
add eax, ecx
mov ecx, dword [esp + 0x18]
rol ecx, 0x16
add ecx, ebx
mov dword [esp + 0x18], ecx
and ecx, edx
lea edi, [ecx + eax]
add edi, 0xf61e2562
mov ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0xa0]
mov eax, esi
not eax
and eax, ebp
add eax, ecx
mov ecx, dword [esp + 8]
rol ecx, 5
add ecx, ebp
mov dword [esp + 8], ecx
rol edi, 5
and ecx, esi
add eax, ecx
add eax, 0xc040b340
mov dword [esp + 4], eax
add edx, dword [esp + 0x9c]
mov eax, ebx
not eax
mov ecx, dword [esp + 0x18]
and eax, ecx
add eax, edx
mov edx, edi
add edx, ecx
mov dword [esp + 0x14], edx
mov edi, ecx
mov ecx, edx
and ecx, ebx
add eax, ecx
add eax, 0xc040b340
mov dword [esp], eax
add esi, dword [esp + 0x30]
mov eax, ebp
not eax
mov ecx, dword [esp + 8]
and eax, ecx
add eax, esi
mov edx, dword [esp + 4]
rol edx, 9
add edx, ecx
mov dword [esp + 4], edx
mov ecx, edx
and ecx, ebp
add eax, ecx
add eax, 0x265e5a51
mov dword [esp + 0xc], eax
add ebx, dword [esp + 0x28]
mov eax, edi
not eax
mov edx, dword [esp + 0x14]
and eax, edx
add eax, ebx
mov ecx, dword [esp]
rol ecx, 9
add ecx, edx
mov dword [esp], ecx
and ecx, edi
lea edx, [ecx + eax]
add edx, 0x265e5a51
add ebp, dword [esp + 0x5c]
mov ebx, dword [esp + 8]
mov eax, ebx
not eax
mov ecx, dword [esp + 4]
and eax, ecx
add eax, ebp
mov esi, dword [esp + 0xc]
rol esi, 0xe
add esi, ecx
mov dword [esp + 0xc], esi
mov ebp, ecx
rol edx, 0xe
mov ecx, esi
and ecx, ebx
add eax, ecx
add eax, 0xe9b6c7aa
mov dword [esp + 0x2c], eax
mov ecx, edi
add ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x14]
mov eax, esi
not eax
mov edi, dword [esp]
and eax, edi
add eax, ecx
add edx, edi
mov dword [esp + 0x18], edx
and edx, esi
lea edi, [edx + eax]
add edi, 0xe9b6c7aa
add ebx, dword [esp + 0x88]
mov edx, ebp
mov eax, ebp
not eax
mov ecx, dword [esp + 0xc]
and eax, ecx
add eax, ebx
mov ebx, dword [esp + 0x2c]
rol ebx, 0x14
add ebx, ecx
mov ebp, ebx
mov ecx, ebx
and ecx, edx
lea ebx, [ecx + eax]
add ebx, 0xd62f105d
add esi, dword [esp + 0x84]
mov edx, dword [esp]
mov eax, edx
not eax
mov ecx, dword [esp + 0x18]
and eax, ecx
add eax, esi
rol edi, 0x14
add edi, ecx
mov ecx, edi
and ecx, edx
lea edx, [ecx + eax]
add edx, 0xd62f105d
mov eax, dword [esp + 4]
add eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xc]
mov ecx, esi
not ecx
mov dword [esp + 0x2c], ebp
and ecx, ebp
add ecx, eax
rol ebx, 5
add ebx, ebp
rol edx, 5
mov ebp, ebx
and ebp, esi
lea eax, [ecx + ebp]
add eax, 0x2441453
mov dword [esp + 0x14], eax
mov eax, dword [esp]
add eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x18]
mov ebp, ecx
not ebp
and ebp, edi
add ebp, eax
add edx, edi
mov dword [esp], edx
and edx, ecx
add ebp, edx
add ebp, 0x2441453
add esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
mov eax, ecx
not eax
and eax, ebx
add eax, esi
mov esi, dword [esp + 0x14]
rol esi, 9
add esi, ebx
mov dword [esp + 0x14], esi
and esi, ecx
add eax, esi
add eax, 0xd8a1e681
mov dword [esp + 8], eax
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x70]
mov eax, edi
not eax
mov esi, dword [esp]
and eax, esi
add eax, edx
rol ebp, 9
add ebp, esi
mov edx, ebp
and edx, edi
add edx, eax
add edx, 0xd8a1e681
mov esi, ecx
add esi, dword [esp + 0xa4]
mov eax, ebx
not eax
mov ecx, dword [esp + 0x14]
and eax, ecx
add eax, esi
mov esi, dword [esp + 8]
rol esi, 0xe
add esi, ecx
mov dword [esp + 8], esi
rol edx, 0xe
and esi, ebx
add eax, esi
add eax, 0xe7d3fbc8
mov dword [esp + 4], eax
add edi, dword [esp + 0x54]
mov ecx, dword [esp]
mov eax, ecx
not eax
and eax, ebp
add eax, edi
add edx, ebp
mov esi, edx
mov dword [esp + 0x18], edx
and esi, ecx
lea edi, [esi + eax]
add edi, 0xe7d3fbc8
add ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov eax, ecx
not eax
mov esi, dword [esp + 8]
and eax, esi
add eax, ebx
mov ebx, dword [esp + 4]
rol ebx, 0x14
add ebx, esi
mov dword [esp + 4], ebx
mov esi, ebx
and esi, ecx
lea ebx, [esi + eax]
add ebx, 0x21e1cde6
mov esi, dword [esp]
add esi, dword [esp + 0x34]
mov eax, ebp
not eax
and eax, edx
add eax, esi
rol edi, 0x14
add edi, edx
mov esi, edi
and esi, ebp
add eax, esi
add eax, 0x21e1cde6
mov dword [esp + 0xc], eax
add ecx, dword [esp + 0x64]
mov edx, dword [esp + 8]
mov esi, edx
not esi
mov eax, dword [esp + 4]
and esi, eax
add esi, ecx
rol ebx, 5
add ebx, eax
mov eax, dword [esp + 0xc]
rol eax, 5
mov ecx, ebx
and ecx, edx
add ecx, esi
add ecx, 0xc33707d6
mov dword [esp], ecx
add ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, edx
not ecx
and ecx, edi
add ecx, ebp
add eax, edi
mov dword [esp + 0xc], eax
mov esi, eax
and esi, edx
lea ebp, [esi + ecx]
add ebp, 0xc33707d6
mov eax, dword [esp + 8]
add eax, dword [esp + 0x94]
mov edx, dword [esp + 4]
mov ecx, edx
not ecx
and ecx, ebx
add ecx, eax
mov esi, dword [esp]
rol esi, 9
add esi, ebx
mov dword [esp], esi
and esi, edx
lea eax, [esi + ecx]
add eax, 0xf4d50d87
mov dword [esp + 8], eax
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x98]
mov ecx, edi
not ecx
mov eax, dword [esp + 0xc]
and ecx, eax
add ecx, edx
rol ebp, 9
add ebp, eax
mov edx, ebp
and edx, edi
add edx, ecx
add edx, 0xf4d50d87
mov eax, dword [esp + 4]
add eax, dword [esp + 0x90]
mov ecx, ebx
not ecx
mov esi, dword [esp]
and ecx, esi
add ecx, eax
mov eax, dword [esp + 8]
rol eax, 0xe
add eax, esi
mov dword [esp + 8], eax
rol edx, 0xe
mov esi, eax
and esi, ebx
lea eax, [esi + ecx]
add eax, 0x455a14ed
mov dword [esp + 0x14], eax
add edi, dword [esp + 0x8c]
mov eax, dword [esp + 0xc]
mov ecx, eax
not ecx
and ecx, ebp
add ecx, edi
add edx, ebp
mov esi, edx
and esi, eax
lea edi, [esi + ecx]
add edi, 0x455a14ed
add ebx, dword [esp + 0x4c]
mov eax, dword [esp]
mov ecx, eax
not ecx
mov esi, dword [esp + 8]
and ecx, esi
add ecx, ebx
mov ebx, dword [esp + 0x14]
rol ebx, 0x14
add ebx, esi
mov dword [esp + 0x14], ebx
mov esi, ebx
and esi, eax
lea ebx, [esi + ecx]
add ebx, 0xa9e3e905
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x80]
mov ecx, ebp
not ecx
and ecx, edx
add ecx, eax
rol edi, 0x14
add edi, edx
mov eax, edi
and eax, ebp
add eax, ecx
add eax, 0xa9e3e905
mov dword [esp + 0xc], eax
mov eax, dword [esp]
add eax, dword [esp + 0xac]
mov dword [esp], eax
mov ecx, dword [esp + 8]
mov eax, ecx
not eax
mov esi, dword [esp + 0x14]
and eax, esi
add eax, dword [esp]
rol ebx, 5
add ebx, esi
rol dword [esp + 0xc], 5
mov esi, ebx
and esi, ecx
add eax, esi
add eax, 0xfcefa3f8
mov dword [esp + 4], eax
add ebp, dword [esp + 0xa8]
mov esi, edx
not esi
and esi, edi
add esi, ebp
mov ebp, dword [esp + 0xc]
add ebp, edi
mov dword [esp + 0xc], ebp
and ebp, edx
lea eax, [esi + ebp]
add eax, 0xfcefa3f8
mov dword [esp + 0x18], eax
add ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x14]
mov ebp, esi
not ebp
and ebp, ebx
add ebp, ecx
mov eax, dword [esp + 4]
rol eax, 9
add eax, ebx
mov dword [esp + 4], eax
and eax, esi
add eax, ebp
add eax, 0x676f02d9
mov dword [esp + 8], eax
add edx, dword [esp + 0x48]
mov eax, edi
not eax
mov ebp, dword [esp + 0xc]
and eax, ebp
add eax, edx
mov ecx, dword [esp + 0x18]
rol ecx, 9
add ecx, ebp
mov edx, ecx
mov dword [esp + 0x18], ecx
and edx, edi
add edx, eax
add edx, 0x676f02d9
add esi, dword [esp + 0x6c]
mov eax, ebx
not eax
mov ecx, dword [esp + 4]
and eax, ecx
add eax, esi
mov esi, dword [esp + 8]
rol esi, 0xe
add esi, ecx
mov ecx, esi
mov dword [esp + 8], esi
mov esi, edx
rol esi, 0xe
mov edx, ecx
and edx, ebx
add eax, edx
add eax, 0x8d2a4c8a
mov dword [esp], eax
add edi, dword [esp + 0x68]
mov eax, ebp
not eax
mov ecx, dword [esp + 0x18]
and eax, ecx
add eax, edi
add esi, ecx
mov edx, esi
mov edi, esi
and edx, ebp
lea esi, [edx + eax]
add esi, 0x8d2a4c8a
mov eax, dword [esp]
rol eax, 0x14
rol esi, 0x14
mov edx, dword [esp + 8]
add eax, edx
mov dword [esp], eax
add ebx, dword [esp + 0x88]
xor eax, edx
mov edx, eax
xor edx, dword [esp + 4]
add ebx, edx
add ebx, 0xfffa3942
mov edx, edi
mov dword [esp + 0x14], edi
add esi, edi
add ebp, dword [esp + 0x84]
mov edi, esi
xor edi, edx
mov edx, edi
xor edx, ecx
add ebp, edx
add ebp, 0xfffa3942
rol ebx, 4
add ebx, dword [esp]
mov edx, dword [esp + 4]
add edx, dword [esp + 0x90]
xor eax, ebx
add edx, eax
add edx, 0x8771f681
rol ebp, 4
add ebp, esi
add ecx, dword [esp + 0x8c]
xor edi, ebp
add ecx, edi
add ecx, 0x8771f681
rol edx, 0xb
add edx, ebx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 8]
add eax, dword [esp + 0x30]
xor edx, ebx
mov edi, edx
xor edi, dword [esp]
add eax, edi
add eax, 0x6d9d6122
mov dword [esp + 0x18], eax
mov eax, ecx
rol eax, 0xb
add eax, ebp
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
xor eax, ebp
mov ecx, eax
xor ecx, esi
mov edi, dword [esp + 0x14]
add ecx, edi
add ecx, 0x6d9d6122
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x18]
rol edi, 0x10
add edi, dword [esp + 0xc]
mov ecx, dword [esp]
add ecx, dword [esp + 0x64]
xor edx, edi
add ecx, edx
add ecx, 0xfde5380c
mov edx, dword [esp + 4]
rol edx, 0x10
add edx, dword [esp + 8]
mov dword [esp + 4], edx
add esi, dword [esp + 0x1c]
xor eax, edx
lea edx, [eax + esi]
add edx, 0xfde5380c
mov eax, ecx
rol eax, 0x17
rol edx, 0x17
mov dword [esp + 0x18], edi
add eax, edi
mov dword [esp + 0x2c], eax
add ebx, dword [esp + 0x38]
xor eax, edi
mov ecx, eax
xor ecx, dword [esp + 0xc]
add ebx, ecx
add ebx, 0xa4beea44
mov esi, dword [esp + 4]
add edx, esi
add ebp, dword [esp + 0x40]
mov ecx, edx
mov edi, edx
mov dword [esp + 0x14], edx
xor ecx, esi
mov edx, ecx
xor edx, dword [esp + 8]
add ebp, edx
add ebp, 0xa4beea44
rol ebx, 4
mov esi, dword [esp + 0x2c]
add ebx, esi
mov edx, dword [esp + 0xc]
add edx, dword [esp + 0xa4]
xor eax, ebx
add eax, edx
add eax, 0x4bdecfa9
rol ebp, 4
add ebp, edi
mov edx, dword [esp + 8]
add edx, dword [esp + 0x54]
xor ecx, ebp
add edx, ecx
add edx, 0x4bdecfa9
mov edi, eax
rol edi, 0xb
add edi, ebx
mov dword [esp], edi
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x74]
mov ecx, ebx
xor ecx, esi
xor ecx, edi
add ecx, eax
add ecx, 0xf6bb4b60
rol edx, 0xb
add edx, ebp
mov eax, edx
mov dword [esp + 0x18], edx
mov esi, dword [esp + 4]
add esi, dword [esp + 0x48]
mov edx, ebp
xor edx, dword [esp + 0x14]
xor edx, eax
add edx, esi
add edx, 0xf6bb4b60
rol ecx, 0x10
rol edx, 0x10
add ecx, edi
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x7c]
xor edi, ebx
xor edi, ecx
lea esi, [edi + eax]
add esi, 0xbebfbc70
mov edi, dword [esp + 0x18]
add edx, edi
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x78]
xor edi, ebp
xor edi, edx
add edi, eax
add edi, 0xbebfbc70
rol esi, 0x17
mov dword [esp + 8], ecx
add esi, ecx
add ebx, dword [esp + 0x4c]
xor ecx, dword [esp]
xor ecx, esi
add ebx, ecx
add ebx, 0x289b7ec6
rol edi, 0x17
mov ecx, edx
mov dword [esp + 0x2c], edx
add edi, edx
add ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x18]
xor ecx, eax
xor ecx, edi
add ebp, ecx
add ebp, 0x289b7ec6
rol ebx, 4
rol ebp, 4
add ebx, esi
mov ecx, dword [esp]
add ecx, dword [esp + 0x5c]
mov dword [esp], ecx
mov ecx, esi
xor ecx, dword [esp + 8]
xor ecx, ebx
mov edx, dword [esp]
add ecx, edx
add ecx, 0xeaa127fa
mov dword [esp], ecx
add ebp, edi
mov dword [esp + 0xc], ebp
add eax, dword [esp + 0x50]
mov ecx, eax
mov eax, edi
mov edx, dword [esp + 0x2c]
xor eax, edx
xor eax, ebp
add eax, ecx
add eax, 0xeaa127fa
mov dword [esp + 4], eax
mov ecx, dword [esp]
rol ecx, 0xb
add ecx, ebx
mov ebp, ecx
mov dword [esp], ecx
mov eax, dword [esp + 8]
add eax, dword [esp + 0x94]
mov ecx, ebx
xor ecx, esi
xor ecx, ebp
add ecx, eax
add ecx, 0xd4ef3085
mov eax, dword [esp + 4]
rol eax, 0xb
mov ebp, dword [esp + 0xc]
add eax, ebp
add edx, dword [esp + 0x98]
xor ebp, edi
xor ebp, eax
add edx, ebp
add edx, 0xd4ef3085
rol ecx, 0x10
rol edx, 0x10
mov ebp, dword [esp]
add ecx, ebp
add esi, dword [esp + 0xa0]
xor ebp, ebx
xor ebp, ecx
add esi, ebp
add esi, 0x4881d05
mov ebp, eax
mov dword [esp + 4], eax
add edx, eax
add edi, dword [esp + 0x9c]
mov eax, dword [esp + 0xc]
xor ebp, eax
xor ebp, edx
add edi, ebp
add edi, 0x4881d05
rol esi, 0x17
add esi, ecx
mov dword [esp + 8], esi
add ebx, dword [esp + 0x3c]
mov ebp, ecx
xor ebp, dword [esp]
xor ebp, esi
add ebx, ebp
add ebx, 0xd9d4d039
rol edi, 0x17
add edi, edx
mov esi, eax
add esi, dword [esp + 0x34]
mov ebp, edx
xor ebp, dword [esp + 4]
xor ebp, edi
add ebp, esi
add ebp, 0xd9d4d039
rol ebx, 4
rol ebp, 4
mov eax, dword [esp + 8]
add ebx, eax
mov esi, dword [esp]
add esi, dword [esp + 0x6c]
mov dword [esp], esi
mov esi, eax
xor esi, ecx
xor esi, ebx
mov eax, dword [esp]
add eax, esi
add eax, 0xe6db99e5
mov dword [esp], eax
add ebp, edi
mov eax, dword [esp + 4]
add eax, dword [esp + 0x68]
mov esi, edi
xor esi, edx
xor esi, ebp
add eax, esi
add eax, 0xe6db99e5
mov dword [esp + 4], eax
mov eax, dword [esp]
rol eax, 0xb
add eax, ebx
mov dword [esp], eax
add ecx, dword [esp + 0x58]
mov esi, ebx
xor esi, dword [esp + 8]
xor esi, eax
add ecx, esi
add ecx, 0x1fa27cf8
mov eax, dword [esp + 4]
rol eax, 0xb
add eax, ebp
mov dword [esp + 4], eax
add edx, dword [esp + 0x70]
mov esi, ebp
xor esi, edi
xor esi, eax
add edx, esi
add edx, 0x1fa27cf8
mov eax, ecx
rol eax, 0x10
rol edx, 0x10
mov esi, dword [esp]
add eax, esi
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0xac]
xor esi, ebx
xor esi, eax
add esi, ecx
add esi, 0xc4ac5665
mov eax, dword [esp + 4]
add edx, eax
add edi, dword [esp + 0xa8]
xor eax, ebp
xor eax, edx
mov dword [esp + 0x18], edx
add edi, eax
add edi, 0xc4ac5665
rol esi, 0x17
add ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x14]
add esi, ecx
mov eax, dword [esp]
not eax
or eax, esi
xor eax, ecx
add ebx, eax
add ebx, 0xf4292244
rol edi, 0x17
add ebp, dword [esp + 0x50]
add edi, edx
mov dword [esp + 8], edi
mov ecx, dword [esp + 4]
mov eax, ecx
not eax
or eax, edi
xor eax, edx
lea edi, [eax + ebp]
add edi, 0xf4292244
rol ebx, 6
mov edx, dword [esp]
add edx, dword [esp + 0x74]
add ebx, esi
mov dword [esp], ebx
mov eax, dword [esp + 0x14]
not eax
or eax, ebx
xor eax, esi
lea ebx, [eax + edx]
add ebx, 0x432aff97
rol edi, 6
mov ebp, ecx
add ebp, dword [esp + 0x48]
mov ecx, dword [esp + 8]
add edi, ecx
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x18]
not eax
or eax, edi
xor eax, ecx
lea edi, [eax + ebp]
add edi, 0x432aff97
mov ebp, ebx
rol ebp, 0xa
mov edx, dword [esp + 0x14]
add edx, dword [esp + 0x64]
mov ecx, dword [esp]
add ebp, ecx
mov eax, esi
not eax
or eax, ebp
xor eax, ecx
lea ebx, [eax + edx]
add ebx, 0xab9423a7
rol edi, 0xa
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
add edi, ecx
mov eax, dword [esp + 8]
not eax
or eax, edi
mov dword [esp + 0x14], edi
xor eax, ecx
lea ecx, [eax + edx]
add ecx, 0xab9423a7
rol ebx, 0xf
add esi, dword [esp + 0x88]
add ebx, ebp
mov dword [esp + 0x50], ebx
mov eax, dword [esp]
not eax
or eax, ebx
xor eax, ebp
lea ebx, [eax + esi]
add ebx, 0xfc93a039
rol ecx, 0xf
mov edx, dword [esp + 8]
add edx, dword [esp + 0x84]
add ecx, edi
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xc]
not eax
or eax, ecx
xor eax, edi
add edx, eax
add edx, 0xfc93a039
rol ebx, 0x15
mov eax, dword [esp]
add eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x50]
add ebx, esi
mov ecx, ebp
not ecx
or ecx, ebx
xor ecx, esi
lea edi, [ecx + eax]
add edi, 0x655b59c3
mov ecx, edx
rol ecx, 0x15
mov esi, dword [esp + 0xc]
add esi, dword [esp + 0x68]
mov eax, dword [esp + 4]
add ecx, eax
mov edx, dword [esp + 0x14]
not edx
or edx, ecx
xor edx, eax
add edx, esi
add edx, 0x655b59c3
rol edi, 6
add ebp, dword [esp + 0x94]
mov eax, ebx
mov dword [esp], ebx
add edi, ebx
mov ebx, dword [esp + 0x50]
mov esi, ebx
not esi
or esi, edi
xor esi, eax
add esi, ebp
add esi, 0x8f0ccc92
rol edx, 6
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x98]
mov dword [esp + 0x5c], ecx
add edx, ecx
mov dword [esp + 0x14], edx
mov ebp, dword [esp + 4]
not ebp
or ebp, edx
xor ebp, ecx
lea ecx, [eax + ebp]
add ecx, 0x8f0ccc92
rol esi, 0xa
add ebx, dword [esp + 0x7c]
mov dword [esp + 0xc], edi
add esi, edi
mov dword [esp + 8], esi
mov ebp, dword [esp]
not ebp
or ebp, esi
xor ebp, edi
add ebx, ebp
add ebx, 0xffeff47d
rol ecx, 0xa
mov edx, dword [esp + 4]
add edx, dword [esp + 0x78]
mov eax, dword [esp + 0x14]
add ecx, eax
mov edi, dword [esp + 0x5c]
mov ebp, edi
not ebp
or ebp, ecx
mov esi, ecx
mov dword [esp + 4], ecx
xor ebp, eax
add ebp, edx
add ebp, 0xffeff47d
rol ebx, 0xf
mov edx, dword [esp]
add edx, dword [esp + 0x38]
mov eax, dword [esp + 8]
add ebx, eax
mov ecx, dword [esp + 0xc]
not ecx
or ecx, ebx
xor ecx, eax
lea eax, [ecx + edx]
add eax, 0x85845dd1
rol ebp, 0xf
add edi, dword [esp + 0x40]
add ebp, esi
mov edx, dword [esp + 0x14]
mov ecx, edx
not ecx
or ecx, ebp
xor ecx, esi
lea esi, [ecx + edi]
add esi, 0x85845dd1
rol eax, 0x15
mov edi, dword [esp + 0xc]
add edi, dword [esp + 0x90]
add eax, ebx
mov ecx, dword [esp + 8]
not ecx
or ecx, eax
xor ecx, ebx
add ecx, edi
add ecx, 0x6fa87e4f
rol esi, 0x15
add edx, dword [esp + 0x8c]
add esi, ebp
mov edi, dword [esp + 4]
not edi
or edi, esi
xor edi, ebp
add edx, edi
add edx, 0x6fa87e4f
mov dword [esp], edx
rol ecx, 6
mov edi, dword [esp + 8]
add edi, dword [esp + 0x58]
mov dword [esp + 0xc], eax
add ecx, eax
mov edx, ebx
not edx
or edx, ecx
xor edx, eax
add edi, edx
add edi, 0xfe2ce6e0
mov eax, dword [esp]
rol eax, 6
mov edx, dword [esp + 4]
add edx, dword [esp + 0x70]
mov dword [esp + 4], edx
mov dword [esp + 0x14], esi
add eax, esi
mov dword [esp], eax
mov edx, ebp
not edx
or edx, eax
xor edx, esi
mov eax, dword [esp + 4]
lea esi, [edx + eax]
add esi, 0xfe2ce6e0
rol edi, 0xa
add ebx, dword [esp + 0xa0]
add edi, ecx
mov edx, dword [esp + 0xc]
not edx
or edx, edi
xor edx, ecx
add ebx, edx
add ebx, 0xa3014314
rol esi, 0xa
add ebp, dword [esp + 0x9c]
mov eax, dword [esp]
add esi, eax
mov edx, dword [esp + 0x14]
not edx
or edx, esi
xor edx, eax
add ebp, edx
add ebp, 0xa3014314
rol ebx, 0xf
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x4c]
add ebx, edi
mov edx, ecx
not edx
or edx, ebx
xor edx, edi
add eax, edx
add eax, 0x4e0811a1
mov dword [esp + 4], eax
rol ebp, 0xf
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x80]
add ebp, esi
mov edx, dword [esp]
not edx
or edx, ebp
xor edx, esi
add eax, edx
add eax, 0x4e0811a1
mov dword [esp + 8], eax
mov edx, dword [esp + 4]
rol edx, 0x15
add ecx, dword [esp + 0xa4]
add edx, ebx
mov dword [esp + 4], edx
mov eax, edi
not eax
or eax, edx
xor eax, ebx
add eax, ecx
add eax, 0xf7537e82
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 8]
rol ecx, 0x15
mov edx, dword [esp]
add edx, dword [esp + 0x54]
add ecx, ebp
mov dword [esp + 8], ecx
mov eax, esi
not eax
or eax, ecx
xor eax, ebp
add eax, edx
add eax, 0xf7537e82
mov dword [esp], eax
mov ecx, dword [esp + 0xc]
rol ecx, 6
add edi, dword [esp + 0x30]
mov edx, dword [esp + 4]
add ecx, edx
mov dword [esp + 0xc], ecx
mov eax, ebx
not eax
or eax, ecx
xor eax, edx
lea ecx, [eax + edi]
add ecx, 0xbd3af235
mov edx, dword [esp]
rol edx, 6
add esi, dword [esp + 0x28]
mov edi, dword [esp + 8]
add edx, edi
mov eax, ebp
not eax
or eax, edx
xor eax, edi
add esi, eax
add esi, 0xbd3af235
rol ecx, 0xa
add ebx, dword [esp + 0xac]
mov edi, dword [esp + 0xc]
add ecx, edi
mov eax, dword [esp + 4]
not eax
or eax, ecx
xor eax, edi
add eax, ebx
add eax, 0x2ad7d2bb
rol esi, 0xa
add ebp, dword [esp + 0xa8]
mov dword [esp], edx
add esi, edx
mov ebx, dword [esp + 8]
not ebx
or ebx, esi
xor ebx, edx
add ebx, ebp
add ebx, 0x2ad7d2bb
rol eax, 0xf
mov edi, dword [esp + 4]
add edi, dword [esp + 0x3c]
add eax, ecx
mov edx, dword [esp + 0xc]
not edx
or edx, eax
xor edx, ecx
add edx, edi
add edx, 0xeb86d391
rol ebx, 0xf
mov edi, dword [esp + 8]
add edi, dword [esp + 0x34]
add ebx, esi
mov ebp, dword [esp]
not ebp
or ebp, ebx
xor ebp, esi
add edi, ebp
add edi, 0xeb86d391
mov dword [esp + 4], edi
mov ebp, dword [esp + 0xc]
add ebp, dword [esp + 0xc4]
mov edi, dword [esp + 0x24]
mov dword [edi + 0x90], ebp
rol edx, 0x15
mov ebp, dword [esp + 0xbc]
add ebp, eax
add ebp, edx
mov dword [edi + 0x94], ebp
add eax, dword [esp + 0x44]
mov dword [edi + 0x98], eax
add ecx, dword [esp + 0xb4]
mov dword [edi + 0x9c], ecx
mov eax, dword [esp]
add eax, dword [esp + 0xc8]
mov ecx, dword [esp + 4]
rol ecx, 0x15
mov dword [edi + 0xa0], eax
mov eax, dword [esp + 0x60]
add eax, ebx
add eax, ecx
mov ebp, dword [esp + 0xcc]
mov dword [edi + 0xa4], eax
add ebx, dword [esp + 0xb0]
mov dword [edi + 0xa8], ebx
add esi, dword [esp + 0xb8]
mov dword [edi + 0xac], esi
add dword [esp + 0x20], 0x40
mov ebx, dword [esp + 0xd0]
add ebx, 0xffffffc0
add ebp, 0x40
cmp ebx, dword [esp + 0xc0]
jae 0x47b5e0
lea eax, [edi + 0x10]
push ebx
push dword [esp + 0x24]
push eax
call fcn.004c4690
add esp, 0xc
mov byte [edi + 0x110], bl
add esp, 0xd4
pop esi
pop edi
pop ebx
pop ebp
ret 8