Function at 0x405840
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x160
mov eax, dword [esp + 0x164]
mov edx, dword [eax + 0x54]
push ebx
mov dword [esp + 0x68], edx
mov edx, dword [eax + 0x5c]
push ebp
push esi
mov dword [esp + 0x60], edx
mov edx, dword [eax + 0x64]
push edi
lea esi, [eax + 0x10]
mov dword [esp + 0x16c], esi
mov ecx, 0x10
lea edi, [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x68], ecx
mov ecx, dword [eax + 0x68]
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 0x6c]
mov dword [esp + 0xb8], ecx
mov ecx, dword [eax + 0x70]
mov dword [esp + 0xbc], edx
mov edx, dword [eax + 0x74]
mov dword [esp + 0xc8], ecx
mov ecx, dword [eax + 0x78]
mov dword [esp + 0xcc], edx
mov edx, dword [eax + 0x7c]
mov dword [esp + 0xa0], ecx
mov ecx, dword [eax + 0x80]
mov dword [esp + 0xa4], edx
mov edx, dword [eax + 0x84]
mov esi, dword [eax + 0xc4]
mov dword [esp + 0x98], ecx
mov ecx, dword [eax + 0x88]
mov dword [esp + 0x9c], edx
mov edx, dword [eax + 0x8c]
mov dword [esp + 0x58], ecx
mov ecx, dword [eax + 0x90]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 0x94]
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax + 0x98]
mov dword [esp + 0xac], edx
mov edx, dword [eax + 0x9c]
mov dword [esp + 0x80], ecx
mov ecx, dword [eax + 0xa0]
mov dword [esp + 0x84], edx
mov edx, dword [eax + 0xa4]
mov dword [esp + 0x88], ecx
mov ecx, dword [eax + 0xa8]
mov dword [esp + 0x8c], edx
mov edx, dword [eax + 0xac]
mov dword [esp + 0x78], ecx
mov ecx, dword [eax + 0xb0]
mov dword [esp + 0x7c], edx
mov edx, dword [eax + 0xb4]
mov dword [esp + 0xc0], ecx
mov ecx, dword [eax + 0xb8]
mov dword [esp + 0xc4], edx
mov edx, dword [eax + 0xbc]
mov dword [esp + 0xb0], ecx
mov ecx, dword [eax + 0xc0]
mov dword [esp + 0xb4], edx
mov edx, dword [eax + 0xc8]
mov eax, dword [eax + 0xcc]
xor edi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], esi
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], eax
jmp 0x4059de
mov ecx, dword [esp + 0xd0]
mov esi, dword [esp + 0xd4]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
test edi, edi
je 0x405ac8
mov edi, ecx
xor eax, eax
mov ebx, esi
shrd edi, ebx, 0x13
or eax, edi
mov ebp, ecx
mov edx, ecx
mov edi, esi
shld esi, ebp, 3
shr ebx, 0x13
shl edx, 0xd
or edx, ebx
add ebp, ebp
xor ebx, ebx
or ebx, esi
mov esi, dword [esp + 0xd4]
shrd ecx, esi, 6
add ebp, ebp
add ebp, ebp
shr edi, 0x1d
or edi, ebp
xor eax, edi
xor eax, ecx
mov ecx, dword [esp + 0x64]
xor edx, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
shr esi, 6
xor edx, esi
xor edi, edi
or edi, ebx
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x64]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x60]
shrd ecx, eax, 7
shr eax, 7
xor edi, ebp
xor esi, ebx
xor esi, eax
mov eax, dword [esp + 0x174]
xor edi, ecx
mov ecx, dword [esp + 0x10]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x70]
adc edx, dword [esp + 0x74]
add ecx, dword [esp + 0x80]
adc edx, dword [esp + 0x84]
mov dword [eax + 0x50], ecx
mov dword [eax + 0x54], edx
mov eax, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x118], ecx
jmp 0x405ade
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x118], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x11c], ecx
mov ebx, edx
mov esi, edx
xor edi, edi
mov ecx, eax
shld ebx, ecx, 0x17
or edi, ebx
shl ecx, 0x17
xor ebx, ebx
shr esi, 9
or esi, ecx
mov ebp, eax
shrd ebp, edx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x3c]
xor esi, ebx
shr edx, 0x12
mov ecx, eax
shl ecx, 0xe
or ecx, edx
xor edi, ecx
xor ecx, ecx
mov ebx, eax
shrd ebx, ebp, 0xe
or ecx, ebx
xor esi, ecx
mov ecx, dword [esp + 0x3c]
shr ebp, 0xe
mov edx, eax
shl edx, 0x12
or edx, ebp
mov ebp, dword [esp + 0x40]
xor edi, edx
and ebp, eax
mov edx, eax
mov eax, dword [esp + 0x44]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x54]
not edx
and edx, dword [esp + 0x48]
not ebx
and ebx, dword [esp + 0x4c]
xor edx, ebp
xor ebx, eax
mov eax, dword [esp + 0x14]
add esi, edx
adc edi, ebx
add esi, dword [eax*8 + 0x47ebf0]
adc edi, dword [eax*8 + 0x47ebf4]
add esi, dword [esp + 0x118]
mov eax, dword [esp + 0x50]
adc edi, dword [esp + 0x11c]
add eax, esi
adc ecx, edi
add dword [esp + 0x30], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
adc dword [esp + 0x34], ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, ecx
mov esi, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 0x1e
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
mov ecx, eax
xor edi, edx
xor esi, ebx
shr ecx, 7
mov ebx, dword [esp + 0x18]
mov ebp, eax
shld ebp, ebx, 0x19
shl ebx, 0x19
or ecx, ebx
xor edx, edx
or edx, ebp
mov ebp, dword [esp + 0x24]
xor edi, ecx
mov ecx, dword [esp + 0x20]
xor esi, edx
mov edx, dword [esp + 0x18]
mov ebx, ecx
xor ebx, edx
and ebx, dword [esp + 0x28]
and ecx, edx
mov edx, dword [esp + 0x24]
xor ebp, eax
and ebp, dword [esp + 0x2c]
and edx, eax
xor ebx, ecx
xor ebp, edx
add edi, ebx
adc esi, ebp
add dword [esp + 0x50], edi
adc dword [esp + 0x54], esi
cmp dword [esp + 0x14], 0
je 0x405cf4
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 0x13
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 0x13
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0xd
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x94]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 0x1d
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, dword [esp + 0x68]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, dword [esp + 0x6c]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov dword [esp + 0x10], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x68]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x6c]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x88]
adc edx, dword [esp + 0x8c]
add ecx, dword [esp + 0x60]
adc edx, dword [esp + 0x64]
mov dword [eax + 0x58], ecx
mov dword [eax + 0x5c], edx
mov eax, edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x148], ecx
jmp 0x405d03
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x148], edx
mov ecx, dword [esp + 0x34]
mov ebx, ecx
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x30]
mov edx, ecx
xor esi, esi
shr edx, 9
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
or edx, edi
xor ebx, ebx
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x34]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
xor edi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
or edi, ebx
xor edx, edi
shr ebp, 0xe
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
xor esi, ecx
mov ecx, dword [esp + 0x34]
mov ebx, ecx
and ecx, dword [esp + 0x3c]
mov edi, eax
and eax, dword [esp + 0x38]
not ebx
and ebx, dword [esp + 0x44]
not edi
and edi, dword [esp + 0x40]
xor ebx, ecx
mov ecx, dword [esp + 0x4c]
xor edi, eax
mov eax, dword [esp + 0x14]
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ebf8]
adc esi, dword [eax*8 + 0x47ebfc]
add edx, dword [esp + 0x148]
mov eax, dword [esp + 0x48]
adc esi, dword [esp + 0x14c]
add eax, edx
adc ecx, esi
add dword [esp + 0x28], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
adc dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 0x1e
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, dword [esp + 0x50]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x1c]
shl ebx, 0x19
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x18]
xor edi, ecx
mov ecx, dword [esp + 0x50]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x20]
and edx, ecx
mov ecx, dword [esp + 0x1c]
xor ebp, eax
and ebp, dword [esp + 0x24]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x48], edi
adc dword [esp + 0x4c], esi
cmp dword [esp + 0x14], 0
je 0x405f1e
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0xbc]
shrd eax, ecx, 7
shl edx, 0x18
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, dword [esp + 0x70]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, dword [esp + 0x74]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov dword [esp + 0x10], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
or esi, ebp
add eax, eax
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0x70]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x74]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x78]
adc edx, dword [esp + 0x7c]
add ecx, dword [esp + 0x68]
adc edx, dword [esp + 0x6c]
mov dword [eax + 0x60], ecx
mov dword [eax + 0x64], edx
mov eax, edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x100], ecx
jmp 0x405f2d
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x100], edx
mov ecx, dword [esp + 0x2c]
mov ebx, ecx
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x28]
mov edx, ecx
xor esi, esi
shr edx, 9
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
or edx, edi
xor ebx, ebx
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x2c]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
xor edi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
or edi, ebx
xor edx, edi
shr ebp, 0xe
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
xor esi, ecx
mov ecx, dword [esp + 0x2c]
mov ebx, ecx
and ecx, dword [esp + 0x34]
mov edi, eax
and eax, dword [esp + 0x30]
not ebx
and ebx, dword [esp + 0x3c]
not edi
and edi, dword [esp + 0x38]
xor ebx, ecx
mov ecx, dword [esp + 0x44]
xor edi, eax
mov eax, dword [esp + 0x14]
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec00]
adc esi, dword [eax*8 + 0x47ec04]
add edx, dword [esp + 0x100]
mov eax, dword [esp + 0x40]
adc esi, dword [esp + 0x104]
add eax, edx
adc ecx, esi
add dword [esp + 0x20], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
adc dword [esp + 0x24], ecx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 0x1e
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, dword [esp + 0x48]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x54]
shl ebx, 0x19
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x50]
xor edi, ecx
mov ecx, dword [esp + 0x48]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x18]
and edx, ecx
mov ecx, dword [esp + 0x54]
xor ebp, eax
and ebp, dword [esp + 0x1c]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x40], edi
adc dword [esp + 0x44], esi
cmp dword [esp + 0x14], 0
je 0x40615a
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0xcc]
shrd eax, ecx, 7
shl edx, 0x18
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, dword [esp + 0x60]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, dword [esp + 0x64]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov dword [esp + 0x10], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
or esi, ebp
add eax, eax
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0x60]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x64]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xc0]
adc edx, dword [esp + 0xc4]
add ecx, dword [esp + 0xb8]
adc edx, dword [esp + 0xbc]
mov dword [eax + 0x68], ecx
mov dword [eax + 0x6c], edx
mov eax, edx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
mov dword [esp + 0x138], ecx
jmp 0x40616f
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x138], edx
mov ecx, dword [esp + 0x24]
mov ebx, ecx
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0x20]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x24]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0xe
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
mov ebp, dword [esp + 0x28]
xor esi, ecx
mov ecx, dword [esp + 0x24]
and ebp, eax
mov edi, eax
mov eax, dword [esp + 0x2c]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x3c]
not ebx
and ebx, dword [esp + 0x34]
not edi
and edi, dword [esp + 0x30]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec08]
adc esi, dword [eax*8 + 0x47ec0c]
add edx, dword [esp + 0x138]
mov eax, dword [esp + 0x38]
adc esi, dword [esp + 0x13c]
add eax, edx
adc ecx, esi
add dword [esp + 0x18], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
adc dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
mov ebp, eax
shld ebp, ecx, 0x1e
xor edi, edi
or edi, edx
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shr edx, 2
shl ecx, 0x1e
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ebx, dword [esp + 0x40]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x4c]
shl ebx, 0x19
xor esi, edx
mov edx, dword [esp + 0x48]
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x40]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x50]
and edx, ecx
mov ecx, dword [esp + 0x4c]
xor ebp, eax
and ebp, dword [esp + 0x54]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x38], edi
adc dword [esp + 0x3c], esi
cmp dword [esp + 0x14], 0
je 0x4063a0
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0xa4]
shrd eax, ecx, 7
shl edx, 0x18
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, dword [esp + 0x68]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, dword [esp + 0x6c]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov dword [esp + 0x10], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
or esi, ebp
add eax, eax
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0x68]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x6c]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xb0]
adc edx, dword [esp + 0xb4]
add ecx, dword [esp + 0xc8]
adc edx, dword [esp + 0xcc]
mov dword [eax + 0x70], ecx
mov dword [eax + 0x74], edx
mov eax, edx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
mov dword [esp + 0xe8], ecx
jmp 0x4063b5
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xe8], edx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x18]
mov ebx, ecx
xor esi, esi
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
mov edx, ecx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 0x12
xor ebx, ebx
or ebx, ebp
mov ebp, dword [esp + 0x1c]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor edx, edi
mov ecx, eax
shl ecx, 0x12
shr ebp, 0xe
or ecx, ebp
mov ebp, dword [esp + 0x20]
xor esi, ecx
mov ecx, dword [esp + 0x1c]
and ebp, eax
mov edi, eax
mov eax, dword [esp + 0x24]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x34]
not edi
and edi, dword [esp + 0x28]
not ebx
and ebx, dword [esp + 0x2c]
xor edi, ebp
xor ebx, eax
mov eax, dword [esp + 0x14]
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec10]
mov edi, dword [esp + 0x44]
adc esi, dword [eax*8 + 0x47ec14]
add edx, dword [esp + 0xe8]
mov eax, dword [esp + 0x30]
adc esi, dword [esp + 0xec]
add eax, edx
adc ecx, esi
add dword [esp + 0x50], eax
mov esi, dword [esp + 0x40]
mov dword [esp + 0x30], eax
adc dword [esp + 0x54], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x38]
mov eax, esi
xor eax, ecx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x3c]
mov edx, edi
xor edx, eax
mov dword [esp + 0xdc], edx
mov edx, esi
and edx, ecx
mov dword [esp + 0xe0], edx
mov edx, edi
and edx, eax
mov dword [esp + 0xe4], edx
mov edx, ecx
xor esi, esi
shl edx, 4
mov edi, ecx
mov ebx, eax
shrd edi, ebx, 0x1c
shr ebx, 0x1c
or edx, ebx
or esi, edi
mov ebp, eax
shld ebp, ecx, 0x1e
xor ebx, ebx
shl ecx, 0x1e
or ebx, ebp
mov edi, eax
xor edx, ebx
mov ebx, dword [esp + 0x38]
shr edi, 2
or edi, ecx
mov ecx, eax
shld eax, ebx, 0x19
xor esi, edi
shr ecx, 7
xor edi, edi
or edi, eax
mov eax, dword [esp + 0xd8]
and eax, dword [esp + 0x48]
shl ebx, 0x19
xor eax, dword [esp + 0xe0]
or ecx, ebx
xor esi, ecx
mov ecx, dword [esp + 0xdc]
and ecx, dword [esp + 0x4c]
xor edx, edi
xor ecx, dword [esp + 0xe4]
add esi, eax
adc edx, ecx
add dword [esp + 0x30], esi
adc dword [esp + 0x34], edx
cmp dword [esp + 0x14], 0
je 0x406622
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 0x13
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 0x13
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0xd
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0xbc]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 0x1d
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, dword [esp + 0x98]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, dword [esp + 0x9c]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov dword [esp + 0x10], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x98]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x9c]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xa0]
adc edx, dword [esp + 0xa4]
add ecx, dword [esp + 0xd0]
adc edx, dword [esp + 0xd4]
mov dword [eax + 0x78], ecx
mov dword [eax + 0x7c], edx
mov eax, edx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
mov dword [esp + 0x110], ecx
jmp 0x406637
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x110], edx
mov ecx, dword [esp + 0x54]
mov ebx, ecx
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x50]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x54]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
shr ebp, 0xe
xor edi, edi
or edi, ebx
xor edx, edi
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
mov ebp, dword [esp + 0x18]
xor esi, ecx
mov ecx, dword [esp + 0x54]
and ebp, eax
mov edi, eax
mov eax, dword [esp + 0x1c]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x28]
not ebx
and ebx, dword [esp + 0x24]
not edi
and edi, dword [esp + 0x20]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec18]
adc esi, dword [eax*8 + 0x47ec1c]
add edx, dword [esp + 0x110]
mov eax, dword [esp + 0x48]
adc esi, dword [esp + 0x114]
add ecx, edx
mov edx, dword [esp + 0x2c]
adc edx, esi
add eax, ecx
adc dword [esp + 0x4c], edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x34]
mov ebx, ecx
mov ebp, edx
shrd ebx, ebp, 0x1c
xor edi, edi
or edi, ebx
mov esi, ecx
mov ebx, edx
shld edx, ecx, 0x1e
shr ebp, 0x1c
shl esi, 4
or esi, ebp
shr ebx, 2
shl ecx, 0x1e
xor ebp, ebp
or ebx, ecx
mov dword [esp + 0x48], eax
or ebp, edx
mov ecx, dword [esp + 0x34]
xor esi, ebp
mov ebp, dword [esp + 0x30]
mov edx, ecx
shld ecx, ebp, 0x19
xor edi, ebx
shr edx, 7
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0xd8]
and ecx, dword [esp + 0x30]
shl ebp, 0x19
xor ecx, dword [esp + 0xe0]
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0xdc]
and edx, dword [esp + 0x34]
xor esi, ebx
xor edx, dword [esp + 0xe4]
add edi, ecx
adc esi, edx
add dword [esp + 0x28], edi
adc dword [esp + 0x2c], esi
cmp dword [esp + 0x14], 0
je 0x40687d
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 0x13
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 0x13
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0xd
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0xcc]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 0x1d
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, dword [esp + 0x58]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, dword [esp + 0x5c]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov dword [esp + 0x10], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x58]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x5c]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor edi, eax
mov eax, dword [esp + 0x174]
xor esi, ecx
mov ecx, dword [esp + 0x10]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x98]
adc edx, dword [esp + 0x9c]
add ecx, dword [esp + 0x90]
adc edx, dword [esp + 0x94]
mov dword [eax + 0x80], ecx
mov dword [eax + 0x84], edx
mov eax, edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x158], ecx
jmp 0x406899
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x158], edx
mov dword [esp + 0x15c], ecx
mov ecx, dword [esp + 0x4c]
mov ebx, ecx
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x4c]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0xe
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
mov ebp, dword [esp + 0x50]
xor esi, ecx
mov ecx, dword [esp + 0x4c]
and ebp, eax
mov edi, eax
mov eax, dword [esp + 0x54]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x24]
not ebx
and ebx, dword [esp + 0x1c]
not edi
and edi, dword [esp + 0x18]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec20]
adc esi, dword [eax*8 + 0x47ec24]
add edx, dword [esp + 0x158]
mov eax, dword [esp + 0x20]
adc esi, dword [esp + 0x15c]
add eax, edx
adc ecx, esi
add dword [esp + 0x40], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
adc dword [esp + 0x44], ecx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 0x1e
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, dword [esp + 0x28]
mov ebp, eax
shld ebp, ebx, 0x19
xor edx, edx
or edx, ebp
mov ebp, dword [esp + 0x34]
xor ebp, dword [esp + 0x3c]
shl ebx, 0x19
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x30]
xor edi, ecx
mov ecx, dword [esp + 0x38]
and ebp, eax
mov eax, dword [esp + 0x34]
and eax, dword [esp + 0x3c]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x28]
and edx, ecx
xor ebx, edx
xor ebp, eax
add edi, ebx
adc esi, ebp
add dword [esp + 0x20], edi
adc dword [esp + 0x24], esi
cmp dword [esp + 0x14], 0
je 0x406ac1
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0xac]
shrd eax, ecx, 7
shl edx, 0x18
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, dword [esp + 0xa0]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, dword [esp + 0xa4]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov dword [esp + 0x10], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
or esi, ebp
add eax, eax
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0xa0]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0xa4]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x58]
adc edx, dword [esp + 0x5c]
add ecx, dword [esp + 0x70]
adc edx, dword [esp + 0x74]
mov dword [eax + 0x88], ecx
mov dword [eax + 0x8c], edx
mov eax, edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x128], ecx
jmp 0x406ad0
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x128], edx
mov ecx, dword [esp + 0x44]
mov ebx, ecx
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x40]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x44]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0xe
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
mov ebp, dword [esp + 0x48]
xor esi, ecx
mov ecx, dword [esp + 0x44]
and ebp, eax
mov edi, eax
mov eax, dword [esp + 0x4c]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x1c]
not ebx
and ebx, dword [esp + 0x54]
not edi
and edi, dword [esp + 0x50]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec28]
adc esi, dword [eax*8 + 0x47ec2c]
add edx, dword [esp + 0x128]
mov eax, dword [esp + 0x18]
adc esi, dword [esp + 0x12c]
add eax, edx
adc ecx, esi
add dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
adc dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
mov ebp, eax
shld ebp, ecx, 0x1e
xor edi, edi
or edi, edx
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shr edx, 2
shl ecx, 0x1e
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ebx, dword [esp + 0x20]
mov ebp, eax
shld ebp, ebx, 0x19
shl ebx, 0x19
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edx, edx
or edx, ebp
xor edi, ecx
mov ecx, dword [esp + 0x20]
xor esi, edx
mov edx, dword [esp + 0x30]
mov ebx, ecx
xor ebx, edx
and ebx, dword [esp + 0x28]
mov ebp, eax
xor ebp, dword [esp + 0x34]
and eax, dword [esp + 0x34]
and ebp, dword [esp + 0x2c]
and ecx, edx
xor ebx, ecx
xor ebp, eax
add edi, ebx
adc esi, ebp
add dword [esp + 0x18], edi
adc dword [esp + 0x1c], esi
cmp dword [esp + 0x14], 0
je 0x406d0b
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 0x13
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 0x13
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0xd
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x9c]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 0x1d
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, dword [esp + 0x80]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, dword [esp + 0x84]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov dword [esp + 0x10], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x80]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x84]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xa8]
adc edx, dword [esp + 0xac]
add ecx, dword [esp + 0x60]
adc edx, dword [esp + 0x64]
mov dword [eax + 0x90], ecx
mov dword [eax + 0x94], edx
mov eax, edx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
mov dword [esp + 0xf0], ecx
jmp 0x406d20
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov dword [esp + 0xf0], edx
mov ecx, dword [esp + 0x3c]
mov ebx, ecx
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x38]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x3c]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0xe
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
mov ebp, dword [esp + 0x40]
xor esi, ecx
mov ecx, dword [esp + 0x3c]
and ebp, eax
mov edi, eax
mov eax, dword [esp + 0x44]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x54]
not ebx
and ebx, dword [esp + 0x4c]
not edi
and edi, dword [esp + 0x48]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec30]
adc esi, dword [eax*8 + 0x47ec34]
add edx, dword [esp + 0xf0]
mov eax, dword [esp + 0x50]
adc esi, dword [esp + 0xf4]
add eax, edx
adc ecx, esi
add dword [esp + 0x30], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
adc dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
mov ebp, eax
shld ebp, ecx, 0x1e
xor edi, edi
or edi, edx
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shr edx, 2
shl ecx, 0x1e
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ebx, dword [esp + 0x18]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x24]
shl ebx, 0x19
xor esi, edx
mov edx, dword [esp + 0x20]
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x18]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x28]
and edx, ecx
mov ecx, dword [esp + 0x24]
xor ebp, eax
and ebp, dword [esp + 0x2c]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x50], edi
adc dword [esp + 0x54], esi
cmp dword [esp + 0x14], 0
je 0x406f51
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0x8c]
shrd eax, ecx, 7
shl edx, 0x18
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, dword [esp + 0x58]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, dword [esp + 0x5c]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov dword [esp + 0x10], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
or esi, ebp
add eax, eax
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0x58]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x5c]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x68]
adc edx, dword [esp + 0x6c]
add ecx, dword [esp + 0x80]
adc edx, dword [esp + 0x84]
mov dword [eax + 0x98], ecx
mov dword [eax + 0x9c], edx
mov eax, edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0xf8], ecx
jmp 0x406f66
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
mov dword [esp + 0xf8], edx
mov ecx, dword [esp + 0x34]
mov ebx, ecx
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x30]
mov edx, ecx
xor esi, esi
shr edx, 9
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
or edx, edi
xor ebx, ebx
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x34]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
xor edi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
or edi, ebx
xor edx, edi
shr ebp, 0xe
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
xor esi, ecx
mov ecx, dword [esp + 0x34]
mov ebx, ecx
and ecx, dword [esp + 0x3c]
mov edi, eax
and eax, dword [esp + 0x38]
not ebx
and ebx, dword [esp + 0x44]
not edi
and edi, dword [esp + 0x40]
xor ebx, ecx
mov ecx, dword [esp + 0x4c]
xor edi, eax
mov eax, dword [esp + 0x14]
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec38]
adc esi, dword [eax*8 + 0x47ec3c]
add edx, dword [esp + 0xf8]
mov eax, dword [esp + 0x48]
adc esi, dword [esp + 0xfc]
add eax, edx
adc ecx, esi
add dword [esp + 0x28], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
adc dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 0x1e
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, dword [esp + 0x50]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x1c]
shl ebx, 0x19
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x18]
xor edi, ecx
mov ecx, dword [esp + 0x50]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x20]
and edx, ecx
mov ecx, dword [esp + 0x1c]
xor ebp, eax
and ebp, dword [esp + 0x24]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x48], edi
adc dword [esp + 0x4c], esi
cmp dword [esp + 0x14], 0
je 0x407199
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 0x13
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 0x13
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0xd
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0xac]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 0x1d
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, dword [esp + 0x78]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, dword [esp + 0x7c]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov dword [esp + 0x10], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x78]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x7c]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xb8]
adc edx, dword [esp + 0xbc]
add ecx, dword [esp + 0x88]
adc edx, dword [esp + 0x8c]
mov dword [eax + 0xa0], ecx
mov dword [eax + 0xa4], edx
mov eax, edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x108], ecx
jmp 0x4071ae
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x108], edx
mov ecx, dword [esp + 0x2c]
mov ebx, ecx
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x28]
mov edx, ecx
xor esi, esi
shr edx, 9
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
or edx, edi
xor ebx, ebx
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x2c]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
xor edi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
or edi, ebx
xor edx, edi
shr ebp, 0xe
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
xor esi, ecx
mov ecx, dword [esp + 0x2c]
mov ebx, ecx
and ecx, dword [esp + 0x34]
mov edi, eax
and eax, dword [esp + 0x30]
not ebx
and ebx, dword [esp + 0x3c]
not edi
and edi, dword [esp + 0x38]
xor ebx, ecx
mov ecx, dword [esp + 0x44]
xor edi, eax
mov eax, dword [esp + 0x14]
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec40]
adc esi, dword [eax*8 + 0x47ec44]
add edx, dword [esp + 0x108]
mov eax, dword [esp + 0x40]
adc esi, dword [esp + 0x10c]
add eax, edx
adc ecx, esi
add dword [esp + 0x20], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
adc dword [esp + 0x24], ecx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 0x1e
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, dword [esp + 0x48]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x54]
shl ebx, 0x19
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x50]
xor edi, ecx
mov ecx, dword [esp + 0x48]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x18]
and edx, ecx
mov ecx, dword [esp + 0x54]
xor ebp, eax
and ebp, dword [esp + 0x1c]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x40], edi
adc dword [esp + 0x44], esi
cmp dword [esp + 0x14], 0
je 0x4073e1
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0xc4]
shrd eax, ecx, 7
shl edx, 0x18
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, dword [esp + 0x80]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, dword [esp + 0x84]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov dword [esp + 0x10], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
or esi, ebp
add eax, eax
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0x80]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x84]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xc8]
adc edx, dword [esp + 0xcc]
add ecx, dword [esp + 0x78]
adc edx, dword [esp + 0x7c]
mov dword [eax + 0xa8], ecx
mov dword [eax + 0xac], edx
mov eax, edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x120], ecx
jmp 0x4073f0
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x120], edx
mov ecx, dword [esp + 0x24]
mov ebx, ecx
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x20]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x24]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0xe
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
mov ebp, dword [esp + 0x28]
xor esi, ecx
mov ecx, dword [esp + 0x24]
and ebp, eax
mov edi, eax
mov eax, dword [esp + 0x2c]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x3c]
not ebx
and ebx, dword [esp + 0x34]
not edi
and edi, dword [esp + 0x30]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec48]
adc esi, dword [eax*8 + 0x47ec4c]
add edx, dword [esp + 0x120]
mov eax, dword [esp + 0x38]
adc esi, dword [esp + 0x124]
add eax, edx
adc ecx, esi
add dword [esp + 0x18], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
adc dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
mov ebp, eax
shld ebp, ecx, 0x1e
xor edi, edi
or edi, edx
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shr edx, 2
shl ecx, 0x1e
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ebx, dword [esp + 0x40]
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x4c]
shl ebx, 0x19
xor esi, edx
mov edx, dword [esp + 0x48]
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x40]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x50]
and edx, ecx
mov ecx, dword [esp + 0x4c]
xor ebp, eax
and ebp, dword [esp + 0x54]
and ecx, eax
xor ebx, edx
xor ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x38], edi
adc dword [esp + 0x3c], esi
cmp dword [esp + 0x14], 0
je 0x407633
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0xb4]
shrd eax, ecx, 7
shl edx, 0x18
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, dword [esp + 0x88]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, dword [esp + 0x8c]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov dword [esp + 0x10], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
or esi, ebp
add eax, eax
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0x88]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x8c]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xa0]
adc edx, dword [esp + 0xa4]
add ecx, dword [esp + 0xc0]
adc edx, dword [esp + 0xc4]
mov dword [eax + 0xb0], ecx
mov dword [eax + 0xb4], edx
mov eax, edx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
mov dword [esp + 0x130], ecx
jmp 0x407648
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x130], edx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x18]
mov ebx, ecx
xor esi, esi
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
mov edx, ecx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 0x12
xor ebx, ebx
or ebx, ebp
mov ebp, dword [esp + 0x1c]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor edx, edi
mov ecx, eax
shl ecx, 0x12
shr ebp, 0xe
or ecx, ebp
mov ebp, dword [esp + 0x20]
xor esi, ecx
mov ecx, dword [esp + 0x1c]
and ebp, eax
mov edi, eax
mov eax, dword [esp + 0x24]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x34]
not edi
and edi, dword [esp + 0x28]
not ebx
and ebx, dword [esp + 0x2c]
xor edi, ebp
xor ebx, eax
mov eax, dword [esp + 0x14]
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec50]
mov edi, dword [esp + 0x44]
adc esi, dword [eax*8 + 0x47ec54]
add edx, dword [esp + 0x130]
mov eax, dword [esp + 0x30]
adc esi, dword [esp + 0x134]
add eax, edx
adc ecx, esi
add dword [esp + 0x50], eax
mov esi, dword [esp + 0x40]
mov dword [esp + 0x30], eax
adc dword [esp + 0x54], ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x38]
mov eax, esi
xor eax, ecx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x3c]
mov edx, edi
xor edx, eax
mov dword [esp + 0xdc], edx
mov edx, esi
and edx, ecx
mov dword [esp + 0xe0], edx
mov edx, edi
and edx, eax
mov dword [esp + 0xe4], edx
mov edx, ecx
xor esi, esi
shl edx, 4
mov edi, ecx
mov ebx, eax
shrd edi, ebx, 0x1c
shr ebx, 0x1c
or edx, ebx
or esi, edi
mov ebp, eax
shld ebp, ecx, 0x1e
xor ebx, ebx
shl ecx, 0x1e
or ebx, ebp
mov edi, eax
xor edx, ebx
mov ebx, dword [esp + 0x38]
shr edi, 2
or edi, ecx
mov ecx, eax
shld eax, ebx, 0x19
xor esi, edi
shr ecx, 7
xor edi, edi
or edi, eax
mov eax, dword [esp + 0xd8]
and eax, dword [esp + 0x48]
shl ebx, 0x19
xor eax, dword [esp + 0xe0]
or ecx, ebx
xor esi, ecx
mov ecx, dword [esp + 0xdc]
and ecx, dword [esp + 0x4c]
xor edx, edi
xor ecx, dword [esp + 0xe4]
add esi, eax
adc edx, ecx
add dword [esp + 0x30], esi
adc dword [esp + 0x34], edx
cmp dword [esp + 0x14], 0
je 0x4078af
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
shr ecx, 1
mov edi, eax
mov edx, eax
shr ebx, 8
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0xd4]
shrd eax, ecx, 7
shl edx, 0x18
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
xor esi, eax
mov eax, dword [esp + 0x78]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, dword [esp + 0x7c]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov dword [esp + 0x10], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
or esi, ebp
add eax, eax
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0x78]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x7c]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x98]
adc edx, dword [esp + 0x9c]
add ecx, dword [esp + 0xb0]
adc edx, dword [esp + 0xb4]
mov dword [eax + 0xb8], ecx
mov dword [eax + 0xbc], edx
mov eax, edx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
mov dword [esp + 0x140], ecx
jmp 0x4078c4
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x140], edx
mov ecx, dword [esp + 0x54]
mov ebx, ecx
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x50]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x54]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
shr ebp, 0xe
xor edi, edi
or edi, ebx
xor edx, edi
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
mov ebp, dword [esp + 0x18]
xor esi, ecx
mov ecx, dword [esp + 0x54]
and ebp, eax
mov edi, eax
mov eax, dword [esp + 0x1c]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x28]
not ebx
and ebx, dword [esp + 0x24]
not edi
and edi, dword [esp + 0x20]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec58]
adc esi, dword [eax*8 + 0x47ec5c]
add edx, dword [esp + 0x140]
mov eax, dword [esp + 0x48]
adc esi, dword [esp + 0x144]
add ecx, edx
mov edx, dword [esp + 0x2c]
adc edx, esi
add eax, ecx
adc dword [esp + 0x4c], edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x34]
mov ebx, ecx
mov ebp, edx
shrd ebx, ebp, 0x1c
xor edi, edi
or edi, ebx
mov esi, ecx
mov ebx, edx
shld edx, ecx, 0x1e
shr ebp, 0x1c
shl esi, 4
or esi, ebp
shr ebx, 2
shl ecx, 0x1e
xor ebp, ebp
or ebx, ecx
mov dword [esp + 0x48], eax
or ebp, edx
mov ecx, dword [esp + 0x34]
xor esi, ebp
mov ebp, dword [esp + 0x30]
mov edx, ecx
shld ecx, ebp, 0x19
xor edi, ebx
shr edx, 7
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0xd8]
and ecx, dword [esp + 0x30]
shl ebp, 0x19
xor ecx, dword [esp + 0xe0]
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0xdc]
and edx, dword [esp + 0x34]
xor esi, ebx
xor edx, dword [esp + 0xe4]
add edi, ecx
adc esi, edx
add dword [esp + 0x28], edi
adc dword [esp + 0x2c], esi
cmp dword [esp + 0x14], 0
je 0x407b10
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 0x13
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 0x13
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0xd
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0xc4]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 0x1d
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, dword [esp + 0x90]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, dword [esp + 0x94]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov dword [esp + 0x10], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x90]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x94]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor edi, eax
mov eax, dword [esp + 0x174]
xor esi, ecx
mov ecx, dword [esp + 0x10]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x58]
adc edx, dword [esp + 0x5c]
add ecx, dword [esp + 0xd0]
adc edx, dword [esp + 0xd4]
mov dword [eax + 0xc0], ecx
mov dword [eax + 0xc4], edx
mov eax, edx
mov dword [esp + 0xd4], eax
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x150], ecx
jmp 0x407b2c
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x150], edx
mov dword [esp + 0x154], ecx
mov ecx, dword [esp + 0x4c]
mov ebx, ecx
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x4c]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0xe
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
mov ebp, dword [esp + 0x50]
xor esi, ecx
mov ecx, dword [esp + 0x4c]
and ebp, eax
mov edi, eax
mov eax, dword [esp + 0x54]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x24]
not ebx
and ebx, dword [esp + 0x1c]
not edi
and edi, dword [esp + 0x18]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec60]
adc esi, dword [eax*8 + 0x47ec64]
add edx, dword [esp + 0x150]
mov eax, dword [esp + 0x20]
adc esi, dword [esp + 0x154]
add eax, edx
adc ecx, esi
add dword [esp + 0x40], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
adc dword [esp + 0x44], ecx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
xor edi, edi
or edi, edx
mov ebp, eax
shld ebp, ecx, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shl ecx, 0x1e
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ecx, eax
mov ebx, dword [esp + 0x28]
mov ebp, eax
shld ebp, ebx, 0x19
xor edx, edx
or edx, ebp
mov ebp, dword [esp + 0x34]
xor ebp, dword [esp + 0x3c]
shl ebx, 0x19
shr ecx, 7
or ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x30]
xor edi, ecx
mov ecx, dword [esp + 0x38]
and ebp, eax
mov eax, dword [esp + 0x34]
and eax, dword [esp + 0x3c]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x28]
and edx, ecx
xor ebx, edx
xor ebp, eax
add edi, ebx
adc esi, ebp
add dword [esp + 0x20], edi
adc dword [esp + 0x24], esi
cmp dword [esp + 0x14], 0
je 0x407d5a
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 0x13
xor esi, esi
or esi, edi
mov edi, ecx
shr ebx, 0x13
mov edx, eax
mov ebp, eax
shld ecx, ebp, 3
shl edx, 0xd
or edx, ebx
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0xb4]
shrd eax, ecx, 6
add ebp, ebp
add ebp, ebp
add ebp, ebp
shr edi, 0x1d
or edi, ebp
xor esi, edi
xor esi, eax
mov eax, dword [esp + 0x70]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, dword [esp + 0x74]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov dword [esp + 0x10], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x70]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x74]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, eax
mov eax, dword [esp + 0x174]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xa8]
adc edx, dword [esp + 0xac]
add ecx, dword [esp + 0x90]
adc edx, dword [esp + 0x94]
mov dword [eax + 0xc8], ecx
mov dword [eax + 0xcc], edx
mov eax, edx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
mov dword [esp + 0x160], ecx
jmp 0x407d6f
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x160], edx
mov ecx, dword [esp + 0x44]
mov ebx, ecx
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x40]
xor esi, esi
mov edx, ecx
mov edi, eax
shld ebx, edi, 0x17
or esi, ebx
shl edi, 0x17
xor ebx, ebx
shr edx, 9
or edx, edi
mov ebp, eax
shrd ebp, ecx, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x44]
xor edx, ebx
shr ecx, 0x12
mov edi, eax
shl edi, 0xe
or edi, ecx
xor esi, edi
mov ebx, eax
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor edx, edi
shr ebp, 0xe
mov ecx, eax
shl ecx, 0x12
or ecx, ebp
mov ebp, dword [esp + 0x48]
xor esi, ecx
mov ecx, dword [esp + 0x44]
and ebp, eax
mov edi, eax
mov eax, dword [esp + 0x4c]
and eax, ecx
mov ebx, ecx
mov ecx, dword [esp + 0x1c]
not ebx
and ebx, dword [esp + 0x54]
not edi
and edi, dword [esp + 0x50]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor edi, ebp
add edx, edi
adc esi, ebx
add edx, dword [eax*8 + 0x47ec68]
adc esi, dword [eax*8 + 0x47ec6c]
add edx, dword [esp + 0x160]
mov eax, dword [esp + 0x18]
adc esi, dword [esp + 0x164]
add eax, edx
adc ecx, esi
add dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
adc dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
mov ebp, eax
shld ebp, ecx, 0x1e
xor edi, edi
or edi, edx
shr ebx, 0x1c
shl esi, 4
or esi, ebx
mov edx, eax
shr edx, 2
shl ecx, 0x1e
xor ebx, ebx
or edx, ecx
or ebx, ebp
xor edi, edx
xor esi, ebx
mov ebx, dword [esp + 0x20]
mov ebp, eax
shld ebp, ebx, 0x19
shl ebx, 0x19
xor edx, edx
or edx, ebp
mov ecx, eax
shr ecx, 7
or ecx, ebx
xor edi, ecx
mov ecx, dword [esp + 0x20]
xor esi, edx
mov edx, dword [esp + 0x30]
mov ebx, ecx
and ecx, edx
xor ebx, edx
and ebx, dword [esp + 0x28]
mov ebp, eax
xor ebp, dword [esp + 0x34]
mov edx, ecx
and ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
and eax, ecx
xor ebx, edx
xor ebp, eax
add edi, ebx
adc esi, ebp
add dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
adc dword [esp + 0x1c], esi
add edi, 0x10
mov dword [esp + 0x14], edi
cmp edi, 0x50
jb 0x4059d0
mov eax, dword [esp + 0x16c]
mov edx, dword [esp + 0x18]
add dword [eax], edx
mov edx, dword [esp + 0x1c]
pop edi
adc dword [eax + 4], edx
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x1c]
add dword [eax + 0x18], edx
mov edx, dword [esp + 0x20]
pop esi
adc dword [eax + 0x1c], edx
mov edx, dword [esp + 0x20]
add dword [eax + 0x20], edx
mov edx, dword [esp + 0x24]
pop ebp
adc dword [eax + 0x24], edx
mov edx, dword [esp + 0x24]
add dword [eax + 0x28], edx
mov edx, dword [esp + 0x30]
pop ebx
adc dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x28]
add dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x30]
adc dword [eax + 0x34], edx
add dword [eax + 0x38], ecx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
adc dword [eax + 0x3c], edx
add dword [eax + 0x40], ecx
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
adc dword [eax + 0x44], edx
add dword [eax + 0x48], ecx
mov edx, dword [esp + 0x44]
adc dword [eax + 0x4c], edx
add esp, 0x160
ret