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

Disassembly:
sub esp, 0xe0
mov eax, dword [esp + 0xe4]
mov edx, dword [eax + 0x54]
mov dword [esp + 0x64], edx
mov edx, dword [eax + 0x60]
mov dword [esp + 0xc8], edx
mov edx, dword [eax + 0x64]
mov dword [esp + 0xcc], edx
mov edx, dword [eax + 0x68]
mov dword [esp + 0x88], edx
mov edx, dword [eax + 0x6c]
mov dword [esp + 0x8c], edx
mov edx, dword [eax + 0x70]
mov dword [esp + 0x50], edx
mov edx, dword [eax + 0x74]
mov dword [esp + 0x54], edx
mov edx, dword [eax + 0x78]
mov dword [esp + 0x68], edx
mov edx, dword [eax + 0x7c]
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 0x80]
mov dword [esp + 0xb8], edx
mov edx, dword [eax + 0x84]
mov dword [esp + 0xbc], edx
mov edx, dword [eax + 0x88]
mov dword [esp + 0x78], edx
mov edx, dword [eax + 0x8c]
mov dword [esp + 0x7c], edx
mov edx, dword [eax + 0x90]
mov dword [esp + 0x80], edx
mov edx, dword [eax + 0x94]
mov dword [esp + 0x84], edx
mov edx, dword [eax + 0x98]
mov dword [esp + 0x70], edx
mov edx, dword [eax + 0x9c]
mov dword [esp + 0x74], edx
mov edx, dword [eax + 0xa0]
mov dword [esp + 0xc0], edx
mov edx, dword [eax + 0xa4]
mov dword [esp + 0xc4], edx
mov edx, dword [eax + 0xa8]
mov dword [esp + 0xb0], edx
mov edx, dword [eax + 0xac]
mov dword [esp + 0xb4], edx
mov edx, dword [eax + 0xb0]
mov dword [esp + 0xa0], edx
mov edx, dword [eax + 0xb4]
mov dword [esp + 0xa4], edx
mov edx, dword [eax + 0xb8]
push ebx
mov ebx, dword [eax + 0x5c]
mov dword [esp + 0x9c], edx
mov edx, dword [eax + 0xbc]
push ebp
push esi
lea esi, [eax + 0x10]
push edi
mov dword [esp + 0xac], edx
mov edx, dword [eax + 0xc0]
mov ecx, 0x10
lea edi, [esp + 0x18]
mov dword [esp + 0xec], esi
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x68], edx
mov edx, dword [eax + 0xc4]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 0xc8]
mov eax, dword [eax + 0xcc]
xor edi, edi
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], edi
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xa0], edx
jmp 0x40d1be
mov ebx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
test edi, edi
je 0x40d2ac
xor eax, eax
mov esi, ecx
mov edi, ebx
shrd esi, edi, 8
or eax, esi
mov ebp, ecx
shrd ebp, ebx, 1
mov edx, ecx
mov esi, ecx
shl esi, 0x1f
shr edi, 8
shl edx, 0x18
or edx, edi
shr ebx, 1
or esi, ebx
xor edx, esi
mov esi, dword [esp + 0xbc]
shrd ecx, esi, 7
xor edi, edi
or edi, ebp
xor eax, edi
xor eax, ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x68]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
shr esi, 7
xor edx, esi
mov esi, eax
xor edi, edi
or edi, ebx
mov ebx, ecx
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
add eax, eax
shr ebp, 0x13
or esi, ebp
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0x6c]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x68]
shrd ecx, eax, 6
shr eax, 6
xor edi, ebx
xor esi, ebp
xor esi, eax
mov eax, dword [esp + 0xf4]
xor edi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x3c]
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 + 0x38]
mov dword [esp + 0x74], eax
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], ecx
mov dword [esp + 0xe0], ecx
jmp 0x40d2c2
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xe4], ecx
mov ecx, edx
mov ebp, esi
shld ebp, ecx, 0x17
shl ecx, 0x17
mov edi, esi
shr edi, 9
or edi, ecx
xor ebx, ebx
or ebx, ebp
mov ecx, edx
shrd edx, esi, 0x12
xor ebp, ebp
or ebp, edx
shl ecx, 0xe
shr esi, 0x12
or ecx, esi
xor ebx, ecx
mov ecx, dword [esp + 0x38]
xor edi, ebp
mov ebp, dword [esp + 0x3c]
mov edx, ecx
shrd ecx, ebp, 0xe
xor esi, esi
or esi, ecx
mov ecx, dword [esp + 0x48]
shl edx, 0x12
shr ebp, 0xe
or edx, ebp
mov ebp, dword [esp + 0x44]
xor ebx, edx
mov edx, dword [esp + 0x4c]
xor edi, esi
mov esi, dword [esp + 0x40]
xor esi, ecx
and esi, dword [esp + 0x38]
xor ebp, edx
and ebp, dword [esp + 0x3c]
xor esi, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x54]
add edi, esi
adc ebx, ebp
add edi, dword [ecx*8 + 0x49ce38]
mov ebp, eax
adc ebx, dword [ecx*8 + 0x49ce3c]
add edi, dword [esp + 0xe0]
mov ecx, dword [esp + 0x50]
adc ebx, dword [esp + 0xe4]
add ecx, edi
adc edx, ebx
add dword [esp + 0x30], ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x18]
adc dword [esp + 0x34], edx
mov dword [esp + 0x54], edx
mov edx, ecx
mov ebx, eax
shrd edx, ebx, 0x1c
mov esi, ecx
shld ebp, ecx, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
xor ebx, ebx
or ebx, ebp
xor edi, edi
or edi, edx
xor esi, ebx
mov ebx, dword [esp + 0x18]
shl ecx, 0x1e
mov edx, eax
shr edx, 2
or edx, ecx
mov ebp, eax
shld ebp, ebx, 0x19
xor edi, edx
mov ecx, eax
shr ecx, 7
xor edx, edx
shl ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x24]
or ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x20]
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
or ebx, edx
or ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x50], edi
adc dword [esp + 0x54], esi
cmp dword [esp + 0x14], 0
je 0x40d4e6
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
mov edi, eax
shr ecx, 1
mov edx, eax
shr ebx, 8
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0xdc]
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 + 0x5c], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
add eax, eax
or esi, ebp
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 edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xb8]
adc edx, dword [esp + 0xbc]
add ecx, dword [esp + 0xd0]
adc edx, dword [esp + 0xd4]
mov dword [eax + 0x58], ecx
mov dword [eax + 0x5c], edx
mov eax, dword [eax + 0x5c]
mov edx, ecx
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
xor ebp, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
or ebp, ecx
mov ecx, dword [esp + 0x30]
xor esi, ebp
mov ebp, dword [esp + 0x34]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
shr ebp, 0xe
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x40]
shl edx, 0x12
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0x44]
xor esi, ebx
mov ebx, ecx
xor ebx, dword [esp + 0x38]
mov ebp, edx
xor ebp, dword [esp + 0x3c]
and ebx, dword [esp + 0x30]
and ebp, dword [esp + 0x34]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x4c]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce40]
adc edi, dword [ecx*8 + 0x49ce44]
add esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x48]
adc edi, dword [esp + 0xbc]
add ecx, esi
adc edx, edi
add dword [esp + 0x28], ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x50]
adc dword [esp + 0x2c], edx
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x54]
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
shl ecx, 0x1e
shr ebx, 2
xor ebp, ebp
or ebx, ecx
mov ecx, dword [esp + 0x54]
or ebp, edx
mov edx, ecx
xor esi, ebp
mov ebp, dword [esp + 0x50]
xor edi, ebx
shr edx, 7
xor ebx, ebx
shld ecx, ebp, 0x19
shl ebp, 0x19
or edx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x50]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x18]
mov ebp, eax
xor ebp, dword [esp + 0x54]
and eax, dword [esp + 0x54]
and ebp, dword [esp + 0x24]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x20]
and edx, ecx
or ebp, eax
mov eax, dword [esp + 0x4c]
or ebx, edx
add edi, ebx
adc esi, ebp
add dword [esp + 0x48], edi
adc eax, esi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x4c], eax
je 0x40d70e
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
mov edi, eax
shr ecx, 1
mov edx, eax
shr ebx, 8
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0x9c]
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 + 0x5c], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
add eax, eax
or esi, ebp
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 edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xc0]
adc edx, dword [esp + 0xc4]
add ecx, dword [esp + 0xd8]
adc edx, dword [esp + 0xdc]
mov dword [eax + 0x60], ecx
mov dword [eax + 0x64], edx
mov eax, dword [eax + 0x64]
mov edx, ecx
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x28]
xor esi, ebp
mov ebp, dword [esp + 0x2c]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
xor ebx, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
or ebx, ecx
mov ecx, dword [esp + 0x38]
xor esi, ebx
mov ebx, dword [esp + 0x30]
shl edx, 0x12
xor ebx, ecx
and ebx, dword [esp + 0x28]
shr ebp, 0xe
or edx, ebp
mov ebp, dword [esp + 0x34]
xor edi, edx
mov edx, dword [esp + 0x3c]
xor ebp, edx
and ebp, dword [esp + 0x2c]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x44]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce48]
mov ebx, eax
adc edi, dword [ecx*8 + 0x49ce4c]
add esi, dword [esp + 0xd8]
mov ecx, dword [esp + 0x40]
adc edi, dword [esp + 0xdc]
add ecx, esi
adc edx, edi
add dword [esp + 0x20], ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x48]
adc dword [esp + 0x24], edx
mov dword [esp + 0x44], edx
mov edx, ecx
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
shl ecx, 0x1e
mov edx, eax
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
mov ecx, eax
xor esi, ebx
mov ebx, dword [esp + 0x48]
xor edi, edx
shr ecx, 7
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x54]
shl ebx, 0x19
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
or ebx, edx
or ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x40], edi
adc dword [esp + 0x44], esi
cmp dword [esp + 0x14], 0
je 0x40d92e
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 + 0x60]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, dword [esp + 0x64]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov dword [esp + 0x5c], 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 + 0x60]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x64]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xb0]
adc edx, dword [esp + 0xb4]
add ecx, dword [esp + 0x98]
adc edx, dword [esp + 0x9c]
mov dword [eax + 0x68], ecx
mov dword [eax + 0x6c], edx
mov eax, dword [eax + 0x6c]
mov edx, ecx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
xor ebp, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
or ebp, ecx
mov ecx, dword [esp + 0x20]
xor esi, ebp
mov ebp, dword [esp + 0x24]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
xor ebx, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
or ebx, ecx
mov ecx, dword [esp + 0x30]
shr ebp, 0xe
xor esi, ebx
mov ebx, dword [esp + 0x28]
shl edx, 0x12
or edx, ebp
mov ebp, dword [esp + 0x2c]
xor edi, edx
mov edx, dword [esp + 0x34]
xor ebx, ecx
and ebx, dword [esp + 0x20]
xor ebp, edx
and ebp, dword [esp + 0x24]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x3c]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce50]
adc edi, dword [ecx*8 + 0x49ce54]
add esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x38]
adc edi, dword [esp + 0x9c]
add ecx, esi
adc edx, edi
add dword [esp + 0x18], ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x40]
adc dword [esp + 0x1c], edx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x44]
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
shl ecx, 0x1e
shr ebx, 2
xor ebp, ebp
or ebx, ecx
mov ecx, dword [esp + 0x44]
or ebp, edx
mov edx, ecx
xor esi, ebp
mov ebp, dword [esp + 0x40]
xor edi, ebx
shr edx, 7
xor ebx, ebx
shld ecx, ebp, 0x19
shl ebp, 0x19
or edx, ebp
mov ebp, dword [esp + 0x44]
or ebx, ecx
mov ecx, dword [esp + 0x40]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x48]
xor ebp, eax
and ebp, dword [esp + 0x54]
mov ebx, ecx
xor ebx, edx
and ebx, dword [esp + 0x50]
and ecx, edx
mov edx, dword [esp + 0x44]
and edx, eax
mov eax, dword [esp + 0x3c]
or ebx, ecx
or ebp, edx
add edi, ebx
adc esi, ebp
add dword [esp + 0x38], edi
adc eax, esi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x3c], eax
je 0x40db4c
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
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 + 0xdc]
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 + 0x5c], 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 edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
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 + 0x70], ecx
mov dword [eax + 0x74], edx
mov eax, dword [eax + 0x74]
mov edx, ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x18]
xor esi, ebp
mov ebp, dword [esp + 0x1c]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x28]
shl edx, 0x12
xor esi, ebx
shr ebp, 0xe
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0x2c]
mov ebx, ecx
xor ebx, dword [esp + 0x20]
mov ebp, edx
xor ebp, dword [esp + 0x24]
and ebx, dword [esp + 0x18]
and ebp, dword [esp + 0x1c]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x34]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce58]
mov ebx, eax
adc edi, dword [ecx*8 + 0x49ce5c]
add esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x30]
adc edi, dword [esp + 0x64]
add ecx, esi
adc edx, edi
add dword [esp + 0x50], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x38]
adc dword [esp + 0x54], edx
mov dword [esp + 0x34], edx
mov edx, ecx
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
shl ecx, 0x1e
mov edx, eax
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
mov ecx, eax
xor esi, ebx
mov ebx, dword [esp + 0x38]
xor edi, edx
shr ecx, 7
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x44]
shl ebx, 0x19
or ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x40]
xor edi, ecx
mov ecx, dword [esp + 0x38]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x48]
and edx, ecx
mov ecx, dword [esp + 0x44]
xor ebp, eax
and ebp, dword [esp + 0x4c]
and ecx, eax
or ebx, edx
or ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x30], edi
adc dword [esp + 0x34], esi
cmp dword [esp + 0x14], 0
je 0x40dd60
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
mov edi, eax
shr ecx, 1
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 + 0x98]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, dword [esp + 0x9c]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov dword [esp + 0x5c], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
add eax, eax
or esi, ebp
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0x98]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x9c]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x68]
adc edx, dword [esp + 0x6c]
add ecx, dword [esp + 0x78]
adc edx, dword [esp + 0x7c]
mov dword [eax + 0x78], ecx
mov dword [eax + 0x7c], edx
mov eax, dword [eax + 0x7c]
mov edx, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
xor ebp, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
or ebp, ecx
mov ecx, dword [esp + 0x50]
xor esi, ebp
mov ebp, dword [esp + 0x54]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
shr ebp, 0xe
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x20]
shl edx, 0x12
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0x24]
xor esi, ebx
mov ebx, ecx
xor ebx, dword [esp + 0x18]
mov ebp, edx
xor ebp, dword [esp + 0x1c]
and ebx, dword [esp + 0x50]
and ebp, dword [esp + 0x54]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x2c]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce60]
adc edi, dword [ecx*8 + 0x49ce64]
add esi, dword [esp + 0x78]
mov ecx, dword [esp + 0x28]
adc edi, dword [esp + 0x7c]
add ecx, esi
adc edx, edi
add dword [esp + 0x48], ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x30]
adc dword [esp + 0x4c], edx
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
shl ecx, 0x1e
shr ebx, 2
xor ebp, ebp
or ebx, ecx
mov ecx, dword [esp + 0x34]
or ebp, edx
mov edx, ecx
xor esi, ebp
mov ebp, dword [esp + 0x30]
xor edi, ebx
shr edx, 7
xor ebx, ebx
shld ecx, ebp, 0x19
shl ebp, 0x19
or edx, ebp
mov ebp, dword [esp + 0x34]
or ebx, ecx
mov ecx, dword [esp + 0x30]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x38]
mov ebx, ecx
xor ebx, edx
and ebx, dword [esp + 0x40]
and ecx, edx
mov edx, dword [esp + 0x34]
xor ebp, eax
and ebp, dword [esp + 0x44]
and edx, eax
or ebx, ecx
or ebp, edx
add edi, ebx
adc esi, ebp
add dword [esp + 0x28], edi
adc dword [esp + 0x2c], esi
cmp dword [esp + 0x14], 0
je 0x40df87
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
mov edi, eax
shr ecx, 1
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 + 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 + 0x5c], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
add eax, eax
or esi, ebp
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 edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xc8]
adc edx, dword [esp + 0xcc]
add ecx, dword [esp + 0xa0]
adc edx, dword [esp + 0xa4]
mov dword [eax + 0x80], ecx
mov dword [eax + 0x84], edx
mov eax, dword [eax + 0x84]
mov edx, ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
xor ebp, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
or ebp, ecx
mov ecx, dword [esp + 0x48]
xor esi, ebp
mov ebp, dword [esp + 0x4c]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
shr ebp, 0xe
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x18]
shl edx, 0x12
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0x1c]
xor esi, ebx
mov ebx, ecx
xor ebx, dword [esp + 0x50]
mov ebp, edx
xor ebp, dword [esp + 0x54]
and ebx, dword [esp + 0x48]
and ebp, dword [esp + 0x4c]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x24]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce68]
adc edi, dword [ecx*8 + 0x49ce6c]
add esi, dword [esp + 0xc8]
mov ecx, dword [esp + 0x20]
adc edi, dword [esp + 0xcc]
add ecx, esi
adc edx, edi
add dword [esp + 0x40], ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
adc dword [esp + 0x44], edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2c]
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
shl ecx, 0x1e
shr ebx, 2
xor ebp, ebp
or ebx, ecx
mov ecx, dword [esp + 0x2c]
or ebp, edx
mov edx, ecx
xor esi, ebp
mov ebp, dword [esp + 0x28]
xor edi, ebx
shr edx, 7
xor ebx, ebx
shld ecx, ebp, 0x19
shl ebp, 0x19
or edx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x28]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x2c]
mov ebx, ecx
xor ebx, dword [esp + 0x30]
and ecx, dword [esp + 0x30]
and ebx, dword [esp + 0x38]
mov ebp, edx
xor ebp, dword [esp + 0x34]
and edx, dword [esp + 0x34]
and ebp, eax
mov eax, dword [esp + 0x24]
or ebx, ecx
or ebp, edx
add edi, ebx
adc esi, ebp
add dword [esp + 0x20], edi
adc eax, esi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x24], eax
je 0x40e1b4
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov ebp, eax
shrd ebp, ecx, 1
xor esi, esi
or esi, edi
mov edi, eax
shr ecx, 1
mov edx, eax
shr ebx, 8
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0x94]
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 + 0x5c], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
add eax, eax
or esi, ebp
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 edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x88]
adc edx, dword [esp + 0x8c]
add ecx, dword [esp + 0x70]
adc edx, dword [esp + 0x74]
mov dword [eax + 0x88], ecx
mov dword [eax + 0x8c], edx
mov eax, dword [eax + 0x8c]
mov edx, ecx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x40]
xor esi, ebp
mov ebp, dword [esp + 0x44]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x50]
shl edx, 0x12
xor esi, ebx
shr ebp, 0xe
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0x54]
mov ebx, ecx
xor ebx, dword [esp + 0x48]
mov ebp, edx
xor ebp, dword [esp + 0x4c]
and ebx, dword [esp + 0x40]
and ebp, dword [esp + 0x44]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x1c]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce70]
mov ebx, eax
adc edi, dword [ecx*8 + 0x49ce74]
add esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x18]
adc edi, dword [esp + 0x8c]
add ecx, esi
adc edx, edi
add dword [esp + 0x38], ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x20]
adc dword [esp + 0x3c], edx
mov dword [esp + 0x1c], edx
mov edx, ecx
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
shl ecx, 0x1e
mov edx, eax
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
mov ecx, eax
xor esi, ebx
mov ebx, dword [esp + 0x20]
xor edi, edx
shr ecx, 7
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x2c]
shl ebx, 0x19
or ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x28]
xor edi, ecx
mov ecx, dword [esp + 0x20]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x30]
and edx, ecx
mov ecx, dword [esp + 0x2c]
xor ebp, eax
and ebp, dword [esp + 0x34]
and ecx, eax
or ebx, edx
or ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x18], edi
adc dword [esp + 0x1c], esi
cmp dword [esp + 0x14], 0
je 0x40e3e9
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 + 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 + 0x5c], 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 edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xb8]
adc edx, dword [esp + 0xbc]
add ecx, dword [esp + 0x90]
adc edx, dword [esp + 0x94]
mov dword [eax + 0x90], ecx
mov dword [eax + 0x94], edx
mov eax, dword [eax + 0x94]
mov edx, ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
xor ebp, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
or ebp, ecx
mov ecx, dword [esp + 0x38]
xor esi, ebp
mov ebp, dword [esp + 0x3c]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
xor ebx, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
or ebx, ecx
mov ecx, dword [esp + 0x48]
shr ebp, 0xe
xor esi, ebx
mov ebx, dword [esp + 0x40]
shl edx, 0x12
or edx, ebp
mov ebp, dword [esp + 0x44]
xor edi, edx
mov edx, dword [esp + 0x4c]
xor ebx, ecx
and ebx, dword [esp + 0x38]
xor ebp, edx
and ebp, dword [esp + 0x3c]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x54]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce78]
adc edi, dword [ecx*8 + 0x49ce7c]
add esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x50]
adc edi, dword [esp + 0x94]
add ecx, esi
adc edx, edi
add dword [esp + 0x30], ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x18]
adc dword [esp + 0x34], edx
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x1c]
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
shl ecx, 0x1e
shr ebx, 2
xor ebp, ebp
or ebx, ecx
mov ecx, dword [esp + 0x1c]
or ebp, edx
mov edx, ecx
xor esi, ebp
mov ebp, dword [esp + 0x18]
xor edi, ebx
shr edx, 7
xor ebx, ebx
shld ecx, ebp, 0x19
shl ebp, 0x19
or edx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x18]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x20]
mov ebp, eax
xor ebp, dword [esp + 0x1c]
and eax, dword [esp + 0x1c]
and ebp, dword [esp + 0x2c]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x28]
and edx, ecx
or ebp, eax
mov eax, dword [esp + 0x54]
or ebx, edx
add edi, ebx
adc esi, ebp
add dword [esp + 0x50], edi
adc eax, esi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x54], eax
je 0x40e626
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
mov edi, eax
shr ecx, 1
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 + 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 + 0x5c], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
add eax, eax
or esi, ebp
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 edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xd8]
adc edx, dword [esp + 0xdc]
add ecx, dword [esp + 0x80]
adc edx, dword [esp + 0x84]
mov dword [eax + 0x98], ecx
mov dword [eax + 0x9c], edx
mov eax, dword [eax + 0x9c]
mov edx, ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x30]
xor esi, ebp
mov ebp, dword [esp + 0x34]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x40]
shl edx, 0x12
xor esi, ebx
shr ebp, 0xe
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0x44]
mov ebx, ecx
xor ebx, dword [esp + 0x38]
mov ebp, edx
xor ebp, dword [esp + 0x3c]
and ebx, dword [esp + 0x30]
and ebp, dword [esp + 0x34]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x4c]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce80]
mov ebx, eax
adc edi, dword [ecx*8 + 0x49ce84]
add esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x48]
adc edi, dword [esp + 0x84]
add ecx, esi
adc edx, edi
add dword [esp + 0x28], ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x50]
adc dword [esp + 0x2c], edx
mov dword [esp + 0x4c], edx
mov edx, ecx
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
shl ecx, 0x1e
mov edx, eax
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
mov ecx, eax
xor esi, ebx
mov ebx, dword [esp + 0x50]
xor edi, edx
shr ecx, 7
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
shl ebx, 0x19
or ecx, ebx
or edx, ebp
mov ebp, dword [esp + 0x1c]
xor edi, ecx
mov ecx, dword [esp + 0x18]
xor esi, edx
mov edx, dword [esp + 0x50]
xor ebp, eax
and ebp, dword [esp + 0x24]
mov ebx, ecx
xor ebx, edx
and ebx, dword [esp + 0x20]
and ecx, edx
mov edx, dword [esp + 0x1c]
and edx, eax
mov eax, dword [esp + 0x4c]
or ebx, ecx
or ebp, edx
add edi, ebx
adc esi, ebp
add dword [esp + 0x48], edi
adc eax, esi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x4c], eax
je 0x40e861
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
mov edi, eax
shr ecx, 1
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 + 0x90]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, dword [esp + 0x94]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov dword [esp + 0x5c], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
add eax, eax
or esi, ebp
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0x90]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x94]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x98]
adc edx, dword [esp + 0x9c]
add ecx, dword [esp + 0xd0]
adc edx, dword [esp + 0xd4]
mov dword [eax + 0xa0], ecx
mov dword [eax + 0xa4], edx
mov eax, dword [eax + 0xa4]
mov edx, ecx
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x28]
xor esi, ebp
mov ebp, dword [esp + 0x2c]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
xor ebx, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
or ebx, ecx
mov ecx, dword [esp + 0x38]
xor esi, ebx
mov ebx, dword [esp + 0x30]
shl edx, 0x12
xor ebx, ecx
and ebx, dword [esp + 0x28]
shr ebp, 0xe
or edx, ebp
mov ebp, dword [esp + 0x34]
xor edi, edx
mov edx, dword [esp + 0x3c]
xor ebp, edx
and ebp, dword [esp + 0x2c]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x44]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce88]
mov ebx, eax
adc edi, dword [ecx*8 + 0x49ce8c]
add esi, dword [esp + 0xd0]
mov ecx, dword [esp + 0x40]
adc edi, dword [esp + 0xd4]
add ecx, esi
adc edx, edi
add dword [esp + 0x20], ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x48]
adc dword [esp + 0x24], edx
mov dword [esp + 0x44], edx
mov edx, ecx
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
shl ecx, 0x1e
mov edx, eax
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
mov ecx, eax
xor esi, ebx
mov ebx, dword [esp + 0x48]
xor edi, edx
shr ecx, 7
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x54]
shl ebx, 0x19
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
or ebx, edx
or ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x40], edi
adc dword [esp + 0x44], esi
cmp dword [esp + 0x14], 0
je 0x40ea90
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
mov edi, eax
shr ecx, 1
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 + 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 + 0x5c], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
add eax, eax
or esi, ebp
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 edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x60]
adc edx, dword [esp + 0x64]
add ecx, dword [esp + 0xc0]
adc edx, dword [esp + 0xc4]
mov dword [eax + 0xa8], ecx
mov dword [eax + 0xac], edx
mov eax, dword [eax + 0xac]
mov edx, ecx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc0], edx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
xor ebp, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
or ebp, ecx
mov ecx, dword [esp + 0x20]
xor esi, ebp
mov ebp, dword [esp + 0x24]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
xor ebx, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
or ebx, ecx
mov ecx, dword [esp + 0x30]
shr ebp, 0xe
xor esi, ebx
mov ebx, dword [esp + 0x28]
shl edx, 0x12
or edx, ebp
mov ebp, dword [esp + 0x2c]
xor edi, edx
mov edx, dword [esp + 0x34]
xor ebx, ecx
and ebx, dword [esp + 0x20]
xor ebp, edx
and ebp, dword [esp + 0x24]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x3c]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce90]
adc edi, dword [ecx*8 + 0x49ce94]
add esi, dword [esp + 0xc0]
mov ecx, dword [esp + 0x38]
adc edi, dword [esp + 0xc4]
add ecx, esi
adc edx, edi
add dword [esp + 0x18], ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x40]
adc dword [esp + 0x1c], edx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x44]
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
shl ecx, 0x1e
shr ebx, 2
xor ebp, ebp
or ebx, ecx
mov ecx, dword [esp + 0x44]
or ebp, edx
mov edx, ecx
xor esi, ebp
mov ebp, dword [esp + 0x40]
xor edi, ebx
shr edx, 7
xor ebx, ebx
shld ecx, ebp, 0x19
shl ebp, 0x19
or edx, ebp
mov ebp, dword [esp + 0x44]
or ebx, ecx
mov ecx, dword [esp + 0x40]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x48]
xor ebp, eax
and ebp, dword [esp + 0x54]
mov ebx, ecx
xor ebx, edx
and ebx, dword [esp + 0x50]
and ecx, edx
mov edx, dword [esp + 0x44]
and edx, eax
mov eax, dword [esp + 0x3c]
or ebx, ecx
or ebp, edx
add edi, ebx
adc esi, ebp
add dword [esp + 0x38], edi
adc eax, esi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x3c], eax
je 0x40ecc9
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
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 + 0xd4]
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 + 0xa8]
xor edx, ebx
shr ecx, 6
xor edx, ecx
mov ecx, dword [esp + 0xac]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov dword [esp + 0x5c], 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 + 0xa8]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0xac]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor edi, ebp
xor edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x78]
adc edx, dword [esp + 0x7c]
add ecx, dword [esp + 0xb0]
adc edx, dword [esp + 0xb4]
mov dword [eax + 0xb0], ecx
mov dword [eax + 0xb4], edx
mov eax, dword [eax + 0xb4]
mov edx, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x18]
xor esi, ebp
mov ebp, dword [esp + 0x1c]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x28]
shl edx, 0x12
xor esi, ebx
shr ebp, 0xe
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0x2c]
mov ebx, ecx
xor ebx, dword [esp + 0x20]
mov ebp, edx
xor ebp, dword [esp + 0x24]
and ebx, dword [esp + 0x18]
and ebp, dword [esp + 0x1c]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x34]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49ce98]
mov ebx, eax
adc edi, dword [ecx*8 + 0x49ce9c]
add esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0x30]
adc edi, dword [esp + 0xb4]
add ecx, esi
adc edx, edi
add dword [esp + 0x50], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x38]
adc dword [esp + 0x54], edx
mov dword [esp + 0x34], edx
mov edx, ecx
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
shl ecx, 0x1e
mov edx, eax
shr edx, 2
xor ebx, ebx
or edx, ecx
or ebx, ebp
mov ecx, eax
xor esi, ebx
mov ebx, dword [esp + 0x38]
xor edi, edx
shr ecx, 7
xor edx, edx
mov ebp, eax
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x44]
shl ebx, 0x19
or ecx, ebx
xor esi, edx
mov edx, dword [esp + 0x40]
xor edi, ecx
mov ecx, dword [esp + 0x38]
mov ebx, edx
xor ebx, ecx
and ebx, dword [esp + 0x48]
and edx, ecx
mov ecx, dword [esp + 0x44]
xor ebp, eax
and ebp, dword [esp + 0x4c]
and ecx, eax
or ebx, edx
or ebp, ecx
add edi, ebx
adc esi, ebp
add dword [esp + 0x30], edi
adc dword [esp + 0x34], esi
cmp dword [esp + 0x14], 0
je 0x40eef2
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 + 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 + 0x5c], 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 edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0xc8]
adc edx, dword [esp + 0xcc]
add ecx, dword [esp + 0xa8]
adc edx, dword [esp + 0xac]
mov dword [eax + 0xb8], ecx
mov dword [eax + 0xbc], edx
mov eax, dword [eax + 0xbc]
mov edx, ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
xor ebp, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
or ebp, ecx
mov ecx, dword [esp + 0x50]
xor esi, ebp
mov ebp, dword [esp + 0x54]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
shr ebp, 0xe
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x20]
shl edx, 0x12
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0x24]
xor esi, ebx
mov ebx, ecx
xor ebx, dword [esp + 0x18]
mov ebp, edx
xor ebp, dword [esp + 0x1c]
and ebx, dword [esp + 0x50]
and ebp, dword [esp + 0x54]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x2c]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49cea0]
adc edi, dword [ecx*8 + 0x49cea4]
add esi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x28]
adc edi, dword [esp + 0xac]
add ecx, esi
adc edx, edi
add dword [esp + 0x48], ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x30]
adc dword [esp + 0x4c], edx
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
shl ecx, 0x1e
shr ebx, 2
xor ebp, ebp
or ebx, ecx
mov ecx, dword [esp + 0x34]
or ebp, edx
mov edx, ecx
xor esi, ebp
mov ebp, dword [esp + 0x30]
xor edi, ebx
shr edx, 7
xor ebx, ebx
shld ecx, ebp, 0x19
shl ebp, 0x19
or edx, ebp
mov ebp, dword [esp + 0x34]
or ebx, ecx
mov ecx, dword [esp + 0x30]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x38]
mov ebx, ecx
xor ebx, edx
and ebx, dword [esp + 0x40]
and ecx, edx
mov edx, dword [esp + 0x34]
xor ebp, eax
and ebp, dword [esp + 0x44]
and edx, eax
or ebx, ecx
or ebp, edx
add edi, ebx
adc esi, ebp
add dword [esp + 0x28], edi
adc dword [esp + 0x2c], esi
cmp dword [esp + 0x14], 0
je 0x40f11f
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
mov edi, eax
shr ecx, 1
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 + 0xb0]
xor edx, edi
shr ecx, 7
xor edx, ecx
mov ecx, dword [esp + 0xb4]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov dword [esp + 0x5c], esi
mov esi, eax
shld ecx, eax, 3
add eax, eax
add eax, eax
shl esi, 0xd
shr ebp, 0x13
add eax, eax
or esi, ebp
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0xb0]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0xb4]
shrd eax, ecx, 6
shr ecx, 6
xor esi, ebp
xor edi, ebx
xor edi, eax
mov eax, dword [esp + 0xf4]
xor esi, ecx
mov ecx, dword [esp + 0x5c]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x68]
adc edx, dword [esp + 0x6c]
add ecx, dword [esp + 0x88]
adc edx, dword [esp + 0x8c]
mov dword [eax + 0xc0], ecx
mov dword [eax + 0xc4], edx
mov eax, dword [eax + 0xc4]
mov edx, ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov ebp, edx
mov ebx, ecx
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
xor ebp, ebp
mov ebx, ecx
shrd ecx, edx, 0x12
or ebp, ecx
mov ecx, dword [esp + 0x48]
xor esi, ebp
mov ebp, dword [esp + 0x4c]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
mov edx, ecx
shrd ecx, ebp, 0xe
shr ebp, 0xe
xor ebx, ebx
or ebx, ecx
mov ecx, dword [esp + 0x18]
shl edx, 0x12
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0x1c]
xor esi, ebx
mov ebx, ecx
xor ebx, dword [esp + 0x50]
mov ebp, edx
xor ebp, dword [esp + 0x54]
and ebx, dword [esp + 0x48]
and ebp, dword [esp + 0x4c]
xor ebx, ecx
mov ecx, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x24]
add esi, ebx
adc edi, ebp
add esi, dword [ecx*8 + 0x49cea8]
adc edi, dword [ecx*8 + 0x49ceac]
add esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x20]
adc edi, dword [esp + 0x6c]
add ecx, esi
adc edx, edi
add dword [esp + 0x40], ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
adc dword [esp + 0x44], edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2c]
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
shl ecx, 0x1e
shr ebx, 2
xor ebp, ebp
or ebx, ecx
mov ecx, dword [esp + 0x2c]
or ebp, edx
mov edx, ecx
xor esi, ebp
mov ebp, dword [esp + 0x28]
xor edi, ebx
shr edx, 7
xor ebx, ebx
shld ecx, ebp, 0x19
or ebx, ecx
mov ecx, dword [esp + 0x28]
shl ebp, 0x19
or edx, ebp
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x2c]
mov ebx, ecx
xor ebx, dword [esp + 0x30]
and ecx, dword [esp + 0x30]
and ebx, dword [esp + 0x38]
mov ebp, edx
xor ebp, dword [esp + 0x34]
and edx, dword [esp + 0x34]
and ebp, eax
or ebx, ecx
mov ecx, dword [esp + 0x24]
or ebp, edx
add edi, ebx
adc esi, ebp
add dword [esp + 0x20], edi
adc ecx, esi
cmp dword [esp + 0x14], 0
mov dword [esp + 0x24], ecx
je 0x40f34c
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
shl edx, 0xd
or edx, ebx
mov ebp, eax
shld ecx, ebp, 3
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 + 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 + 0x5c], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
shr ecx, 1
or esi, ebp
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 esi, ecx
mov ecx, dword [esp + 0x5c]
xor edi, ebp
xor edi, eax
mov eax, dword [esp + 0xf4]
add ecx, edi
adc edx, esi
add ecx, dword [esp + 0x90]
adc edx, dword [esp + 0x94]
add ecx, dword [esp + 0xa0]
adc edx, dword [esp + 0xa4]
mov dword [eax + 0xc8], ecx
mov dword [eax + 0xcc], edx
mov eax, dword [eax + 0xcc]
mov edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ebp, edx
mov ebx, eax
shld ebp, ebx, 0x17
shl ebx, 0x17
mov esi, edx
shr esi, 9
or esi, ebx
xor edi, edi
or edi, ebp
mov ebx, eax
shrd eax, edx, 0x12
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x40]
xor esi, ebp
mov ebp, dword [esp + 0x44]
shl ebx, 0xe
shr edx, 0x12
or ebx, edx
xor edi, ebx
mov edx, eax
shrd eax, ebp, 0xe
xor ebx, ebx
or ebx, eax
mov eax, dword [esp + 0x50]
shl edx, 0x12
xor esi, ebx
shr ebp, 0xe
or edx, ebp
xor edi, edx
mov edx, dword [esp + 0x54]
mov ebx, eax
xor ebx, dword [esp + 0x48]
mov ebp, edx
xor ebp, dword [esp + 0x4c]
and ebx, dword [esp + 0x40]
and ebp, dword [esp + 0x44]
xor ebx, eax
mov eax, dword [esp + 0x14]
xor ebp, edx
mov edx, dword [esp + 0x1c]
add esi, ebx
adc edi, ebp
add esi, dword [eax*8 + 0x49ceb0]
mov ebx, ecx
adc edi, dword [eax*8 + 0x49ceb4]
add esi, dword [esp + 0xa0]
mov eax, dword [esp + 0x18]
adc edi, dword [esp + 0xa4]
add eax, esi
adc edx, edi
add dword [esp + 0x38], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x3c], edx
mov dword [esp + 0x1c], edx
mov edx, eax
shrd edx, ebx, 0x1c
mov esi, eax
xor edi, edi
or edi, edx
mov ebp, ecx
shld ebp, eax, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
shl eax, 0x1e
mov edx, ecx
shr edx, 2
xor ebx, ebx
or edx, eax
or ebx, ebp
mov eax, ecx
xor esi, ebx
mov ebx, dword [esp + 0x20]
xor edi, edx
shr eax, 7
xor edx, edx
mov ebp, ecx
shld ebp, ebx, 0x19
or edx, ebp
mov ebp, dword [esp + 0x2c]
shl ebx, 0x19
or eax, ebx
xor edi, eax
mov eax, dword [esp + 0x20]
xor esi, edx
mov edx, dword [esp + 0x28]
mov ebx, edx
xor ebx, eax
and ebx, dword [esp + 0x30]
and edx, eax
mov eax, dword [esp + 0x2c]
xor ebp, ecx
and ebp, dword [esp + 0x34]
and eax, ecx
or ebp, eax
mov eax, dword [esp + 0x1c]
or ebx, edx
add edi, ebx
adc esi, ebp
add dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
adc eax, esi
add edi, 0x10
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edi
cmp edi, 0x50
jb 0x40d1b0
mov edx, dword [esp + 0xec]
mov esi, dword [esp + 0x18]
add dword [edx], esi
pop edi
pop esi
adc dword [edx + 4], eax
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0x18]
add dword [eax + 0x18], edx
mov edx, dword [esp + 0x24]
pop ebp
adc dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
add dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x24]
pop ebx
adc dword [eax + 0x24], edx
add dword [eax + 0x28], ecx
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
adc dword [eax + 0x2c], edx
add dword [eax + 0x30], ecx
mov edx, dword [esp + 0x2c]
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, 0xe0
ret