Function at 0x4cd471
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x334
mov eax, dword [0x5c9040]
xor eax, esp
mov dword [esp + 0x32c], eax
push ebx
push ebp
push esi
push edi
mov eax, ecx
lea edi, [esp + 0x2f8]
push 0x10
pop ebp
mov ecx, ebp
mov dword [esp + 0x60], eax
lea esi, [eax + 0x10]
mov dword [esp + 0x64], esi
lea ebx, [esp + 0x76]
rep movsd dword es:[edi], dword [esi]
lea edi, [edx + 2]
sub ebx, edx
movzx eax, byte [edi - 2]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [edi - 1]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 1]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 2]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 3]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 4]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 5]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
mov dword [ebx + edi + 4], esi
mov dword [ebx + edi], ecx
lea edi, [edi + 8]
sub ebp, 1
jne 0x4cd4ad
mov eax, dword [esp + 0x78]
lea edx, [esp + 0x78]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x3c], 0x40
mov dword [esp + 0x28], eax
mov eax, edx
xor ebp, ebp
mov dword [esp + 0x38], eax
mov ebx, dword [eax + 0x74]
lea ecx, [eax + 8]
mov edi, dword [eax + 0x70]
mov esi, ebx
mov dword [esp + 0x5c], ecx
mov eax, edi
mov ecx, ebx
shr esi, 0x1d
shrd eax, ecx, 0x13
mov edx, edi
or ebp, eax
shr ecx, 0x13
shl edx, 0xd
mov eax, edi
or edx, ecx
mov ecx, ebx
shld ecx, eax, 3
shrd edi, ebx, 6
shl eax, 3
or esi, eax
mov dword [esp + 0x58], edx
mov eax, edx
xor edx, edx
or edx, ecx
shr ebx, 6
xor eax, edx
xor ebp, esi
mov edx, dword [esp + 0x5c]
xor eax, ebx
mov dword [esp + 0x58], eax
xor ebp, edi
xor edi, edi
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov ebx, dword [edx]
shrd eax, ecx, 8
mov esi, dword [edx]
xor edx, edx
shr ecx, 8
or edi, eax
shl ebx, 0x18
or ebx, ecx
shl esi, 0x1f
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
shrd eax, ecx, 1
or edx, eax
shr ecx, 1
xor edi, edx
or esi, ecx
mov edx, dword [esp + 0x5c]
xor ebx, esi
mov eax, dword [edx]
mov ecx, dword [edx + 4]
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
mov eax, dword [esp + 0x58]
xor ebx, ecx
mov ecx, dword [esp + 0x38]
add ebp, edi
adc eax, ebx
add ebp, dword [ecx + 0x48]
adc eax, dword [ecx + 0x4c]
add ebp, dword [esp + 0x54]
mov dword [ecx + 0x80], ebp
adc eax, dword [esp + 0x28]
sub dword [esp + 0x3c], 1
mov dword [ecx + 0x84], eax
mov eax, dword [edx]
mov dword [esp + 0x54], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x28], eax
jne 0x4cd554
mov eax, dword [esp + 0x334]
xor ebp, ebp
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x330]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x32c]
mov ecx, dword [esp + 0x31c]
mov edx, dword [esp + 0x318]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x328]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x324]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x320]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x314]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x310]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x30c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x308]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x304]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x300]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x2fc]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2f8]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov edi, ecx
mov eax, edx
shld ecx, eax, 0x17
xor ebx, ebx
shr edi, 9
or ebx, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x30]
or edi, eax
mov eax, dword [esp + 0x14]
mov esi, edx
shrd eax, ecx, 0x12
shl esi, 0xe
xor edx, edx
or edx, eax
shr ecx, 0x12
mov eax, dword [esp + 0x14]
or esi, ecx
mov ecx, dword [esp + 0x30]
xor ebx, esi
mov esi, eax
xor edi, edx
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
or edx, eax
shr ecx, 0xe
mov eax, dword [esp + 0x3c]
or esi, ecx
xor eax, dword [esp + 0x2c]
xor ebx, esi
and eax, dword [esp + 0x30]
xor edi, edx
xor eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
xor ecx, dword [esp + 0x34]
and ecx, dword [esp + 0x14]
xor ecx, dword [esp + 0x34]
add edi, ecx
mov ecx, dword [esp + 0x18]
adc ebx, eax
add edi, dword [esp + ebp*8 + 0x78]
mov eax, dword [esp + 0x10]
adc ebx, dword [esp + ebp*8 + 0x7c]
add edi, dword [ebp*8 + 0x56b310]
adc ebx, dword [ebp*8 + 0x56b314]
mov ebp, eax
add edi, dword [esp + 0x1c]
mov dword [esp + 0x68], edi
adc ebx, dword [esp + 0x48]
xor edx, edx
shrd eax, ecx, 0x1c
shl ebp, 4
or edx, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x10]
or ebp, ecx
mov ecx, dword [esp + 0x18]
mov esi, ecx
shld ecx, eax, 0x1e
mov dword [esp + 0x1c], edx
xor edx, edx
shr esi, 2
or edx, ecx
mov ecx, dword [esp + 0x18]
xor ebp, edx
shl eax, 0x1e
xor edx, edx
or esi, eax
mov dword [esp + 0x6c], ebx
xor dword [esp + 0x1c], esi
mov esi, ecx
mov eax, dword [esp + 0x10]
shld ecx, eax, 0x19
shr esi, 7
shl eax, 0x19
or edx, ecx
mov ecx, dword [esp + 0x50]
or esi, eax
xor dword [esp + 0x1c], esi
xor ebp, edx
mov eax, dword [esp + 0x38]
mov edx, ecx
and ecx, dword [esp + 0x10]
mov esi, eax
and eax, dword [esp + 0x18]
or esi, dword [esp + 0x18]
and esi, dword [esp + 0x28]
or edx, dword [esp + 0x10]
or esi, eax
and edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
or edx, ecx
add eax, edx
mov ecx, ebx
mov dword [esp + 0x70], eax
adc ebp, esi
mov dword [esp + 0x48], ebp
mov dword [esp + 0x74], ebp
mov ebp, edi
add ebp, dword [esp + 0x4c]
mov dword [esp + 0x310], ebp
adc ecx, dword [esp + 0x24]
add eax, edi
mov dword [esp + 0x1c], eax
mov edi, ecx
mov eax, dword [esp + 0x48]
adc eax, ebx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x334], eax
xor ebx, ebx
mov dword [esp + 0x24], ecx
xor edx, edx
mov dword [esp + 0x314], ecx
mov dword [esp + 0x48], eax
mov eax, ebp
shld ecx, eax, 0x17
shr edi, 9
or ebx, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x24]
or edi, eax
mov dword [esp + 0x330], esi
mov eax, ebp
shrd eax, ecx, 0x12
mov esi, ebp
or edx, eax
shr ecx, 0x12
shl esi, 0xe
xor edi, edx
or esi, ecx
mov eax, ebp
mov ecx, dword [esp + 0x24]
xor ebx, esi
shrd eax, ecx, 0xe
xor edx, edx
mov esi, ebp
shr ecx, 0xe
or edx, eax
mov eax, dword [esp + 0x3c]
xor edi, edx
xor eax, dword [esp + 0x30]
and eax, dword [esp + 0x24]
xor eax, dword [esp + 0x3c]
shl esi, 0x12
or esi, ecx
mov ecx, dword [esp + 0x58]
xor ecx, dword [esp + 0x14]
xor ebx, esi
and ecx, ebp
xor ecx, dword [esp + 0x58]
add ecx, edi
adc ebx, eax
mov eax, dword [esp + 0x54]
add ecx, dword [esp + eax*8 + 0x80]
adc ebx, dword [esp + eax*8 + 0x84]
add ecx, dword [eax*8 + 0x56b318]
adc ebx, dword [eax*8 + 0x56b31c]
add ecx, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
adc ebx, dword [esp + 0x2c]
mov eax, ebx
mov dword [esp + 0x2c], eax
xor edi, edi
mov dword [esp + 0x6c], eax
xor edx, edx
mov eax, dword [esp + 0x1c]
mov ebx, eax
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x48]
shrd eax, ecx, 0x1c
shl ebx, 4
or edi, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x1c]
or ebx, ecx
mov ecx, dword [esp + 0x48]
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
or edx, ecx
shl eax, 0x1e
mov ecx, dword [esp + 0x48]
or esi, eax
mov eax, dword [esp + 0x1c]
xor edi, esi
xor ebx, edx
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
xor edx, edx
or edx, ecx
shl eax, 0x19
mov ecx, dword [esp + 0x1c]
or esi, eax
mov eax, dword [esp + 0x48]
xor ebx, edx
xor edi, esi
mov edx, ecx
or edx, dword [esp + 0x10]
mov esi, eax
or esi, dword [esp + 0x18]
and eax, dword [esp + 0x18]
and esi, dword [esp + 0x38]
and ecx, dword [esp + 0x10]
or esi, eax
and edx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
or edx, ecx
add edi, edx
mov ecx, eax
mov dword [esp + 0x70], edi
adc ebx, esi
mov esi, dword [esp + 0x34]
mov edx, esi
mov dword [esp + 0x74], ebx
add edx, dword [esp + 0x20]
mov dword [esp + 0x20], edx
adc ecx, dword [esp + 0x28]
add esi, edi
mov dword [esp + 0x34], esi
adc eax, ebx
mov dword [esp + 0x328], esi
mov dword [esp + 0x2c], eax
mov ebx, ecx
mov dword [esp + 0x32c], eax
xor esi, esi
mov eax, edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x30c], ecx
shld ecx, eax, 0x17
shr ebx, 9
shl eax, 0x17
or esi, ecx
or ebx, eax
mov dword [esp + 0x40], esi
mov esi, edx
mov dword [esp + 0x308], edx
mov dword [esp + 0x44], ebx
xor edx, edx
mov ebx, dword [esp + 0x20]
mov eax, ebx
shl esi, 0xe
mov edi, dword [esp + 0x5c]
mov ecx, edi
shrd eax, ecx, 0x12
or edx, eax
shr ecx, 0x12
xor dword [esp + 0x44], edx
or esi, ecx
xor dword [esp + 0x40], esi
xor edx, edx
mov eax, ebx
mov ecx, edi
shrd eax, ecx, 0xe
mov esi, ebx
or edx, eax
shr ecx, 0xe
xor dword [esp + 0x44], edx
mov eax, dword [esp + 0x24]
xor eax, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
and eax, edi
xor eax, dword [esp + 0x30]
shl esi, 0x12
or esi, ecx
mov ecx, ebp
xor ecx, dword [esp + 0x14]
xor dword [esp + 0x40], esi
and ecx, ebx
xor ecx, dword [esp + 0x14]
add edx, ecx
mov ecx, dword [esp + 0x40]
adc ecx, eax
mov eax, dword [esp + 0x54]
add edx, dword [esp + eax*8 + 0x88]
adc ecx, dword [esp + eax*8 + 0x8c]
add edx, dword [eax*8 + 0x56b320]
adc ecx, dword [eax*8 + 0x56b324]
add edx, dword [esp + 0x58]
mov eax, dword [esp + 0x34]
mov ebx, eax
adc ecx, dword [esp + 0x3c]
xor edi, edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x2c]
shrd eax, ecx, 0x1c
shl ebx, 4
or edi, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x34]
or ebx, ecx
mov ecx, dword [esp + 0x2c]
mov esi, ecx
shld ecx, eax, 0x1e
mov dword [esp + 0x44], edx
mov dword [esp + 0x68], edx
xor edx, edx
shr esi, 2
or edx, ecx
mov ecx, dword [esp + 0x2c]
xor ebx, edx
shl eax, 0x1e
xor edx, edx
or esi, eax
mov eax, dword [esp + 0x34]
xor edi, esi
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
or edx, ecx
shl eax, 0x19
mov ecx, dword [esp + 0x1c]
or esi, eax
mov eax, dword [esp + 0x48]
xor ebx, edx
xor edi, esi
mov edx, ecx
or edx, dword [esp + 0x34]
mov esi, eax
or esi, dword [esp + 0x2c]
and edx, dword [esp + 0x10]
and esi, dword [esp + 0x18]
and ecx, dword [esp + 0x34]
and eax, dword [esp + 0x2c]
or edx, ecx
or esi, eax
mov eax, dword [esp + 0x44]
add edi, edx
mov edx, eax
mov dword [esp + 0x70], edi
adc ebx, esi
add edx, dword [esp + 0x50]
mov esi, dword [esp + 0x40]
mov ecx, esi
adc ecx, dword [esp + 0x38]
add eax, edi
mov dword [esp + 0x320], eax
mov edi, ecx
adc esi, ebx
mov dword [esp + 0x304], ecx
mov dword [esp + 0x44], eax
mov eax, edx
mov dword [esp + 0x3c], ecx
shld ecx, eax, 0x17
mov dword [esp + 0x74], ebx
xor ebx, ebx
or ebx, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x3c]
shr edi, 9
or edi, eax
mov dword [esp + 0x28], edx
mov eax, edx
shrd eax, ecx, 0x12
mov dword [esp + 0x324], esi
shr ecx, 0x12
mov dword [esp + 0x40], esi
mov esi, edx
shl esi, 0xe
or esi, ecx
mov dword [esp + 0x300], edx
mov ecx, dword [esp + 0x3c]
xor ebx, esi
xor edx, edx
or edx, eax
mov eax, dword [esp + 0x28]
mov esi, eax
xor edi, edx
shrd eax, ecx, 0xe
xor edx, edx
shl esi, 0x12
shr ecx, 0xe
or edx, eax
mov eax, dword [esp + 0x24]
or esi, ecx
xor eax, dword [esp + 0x5c]
xor ebx, esi
and eax, dword [esp + 0x3c]
xor edi, edx
xor eax, dword [esp + 0x24]
mov ecx, ebp
xor ecx, dword [esp + 0x20]
and ecx, dword [esp + 0x28]
xor ecx, ebp
add edi, ecx
mov ecx, dword [esp + 0x40]
adc ebx, eax
mov eax, dword [esp + 0x54]
add edi, dword [eax*8 + 0x56b328]
adc ebx, dword [eax*8 + 0x56b32c]
add edi, dword [esp + eax*8 + 0x90]
adc ebx, dword [esp + eax*8 + 0x94]
add edi, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
mov edx, eax
adc ebx, dword [esp + 0x30]
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
shr ecx, 0x1c
or esi, eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], ebx
mov eax, dword [esp + 0x44]
or edx, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x14], esi
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
shl eax, 0x1e
or esi, eax
mov dword [esp + 0x30], edx
xor dword [esp + 0x14], esi
xor edx, edx
mov eax, dword [esp + 0x44]
or edx, ecx
xor dword [esp + 0x30], edx
xor edx, edx
mov ecx, dword [esp + 0x40]
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
or edx, ecx
shl eax, 0x19
xor dword [esp + 0x30], edx
or esi, eax
xor dword [esp + 0x14], esi
mov ecx, dword [esp + 0x34]
mov edx, ecx
or edx, dword [esp + 0x44]
and ecx, dword [esp + 0x44]
and edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
or edx, ecx
or esi, dword [esp + 0x40]
mov ecx, ebx
and esi, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
and eax, dword [esp + 0x40]
or esi, eax
add dword [esp + 0x14], edx
mov eax, dword [esp + 0x30]
mov edx, edi
adc eax, esi
add edx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
adc ecx, dword [esp + 0x18]
mov dword [esp + 0x70], esi
add esi, edi
mov dword [esp + 0x74], eax
mov edi, ecx
adc eax, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], eax
xor ebx, ebx
mov dword [esp + 0x31c], eax
mov eax, edx
mov dword [esp + 0x2fc], ecx
shld ecx, eax, 0x17
mov dword [esp + 0x10], edx
shl eax, 0x17
or ebx, ecx
mov ecx, dword [esp + 0x18]
shr edi, 9
or edi, eax
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x10]
mov dword [esp + 0x318], esi
mov esi, edx
shrd eax, ecx, 0x12
mov dword [esp + 0x2f8], edx
xor edx, edx
shl esi, 0xe
or edx, eax
mov eax, dword [esp + 0x10]
xor edi, edx
shr ecx, 0x12
xor edx, edx
or esi, ecx
mov ecx, dword [esp + 0x18]
xor ebx, esi
mov esi, eax
shl esi, 0x12
shrd eax, ecx, 0xe
or edx, eax
shr ecx, 0xe
or esi, ecx
mov eax, dword [esp + 0x5c]
xor eax, dword [esp + 0x3c]
xor ebx, esi
and eax, dword [esp + 0x18]
xor edi, edx
xor eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x20]
xor ecx, dword [esp + 0x28]
and ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x20]
add edi, ecx
adc ebx, eax
mov eax, dword [esp + 0x54]
add edi, dword [eax*8 + 0x56b330]
adc ebx, dword [eax*8 + 0x56b334]
add edi, dword [esp + eax*8 + 0x98]
adc ebx, dword [esp + eax*8 + 0x9c]
add edi, ebp
mov ebp, dword [esp + 0x30]
mov ecx, ebp
adc ebx, dword [esp + 0x24]
xor esi, esi
mov eax, dword [esp + 0x14]
mov edx, eax
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x14]
or edx, ecx
mov dword [esp + 0x4c], esi
mov ecx, ebp
shld ecx, eax, 0x1e
mov dword [esp + 0x24], edx
mov esi, ebp
shr esi, 2
xor edx, edx
or edx, ecx
shl eax, 0x1e
xor dword [esp + 0x24], edx
or esi, eax
xor dword [esp + 0x4c], esi
xor edx, edx
mov eax, dword [esp + 0x14]
mov ecx, ebp
shld ecx, eax, 0x19
mov esi, ebp
mov dword [esp + 0x68], edi
or edx, ecx
shr esi, 7
xor dword [esp + 0x24], edx
mov ecx, dword [esp + 0x14]
mov edx, ecx
or edx, dword [esp + 0x44]
and edx, dword [esp + 0x34]
and ecx, dword [esp + 0x44]
shl eax, 0x19
or edx, ecx
or esi, eax
mov dword [esp + 0x6c], ebx
xor dword [esp + 0x4c], esi
mov eax, ebp
and eax, dword [esp + 0x40]
mov esi, ebp
or esi, dword [esp + 0x40]
and esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x4c]
or esi, eax
mov eax, dword [esp + 0x24]
add ecx, edx
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x48]
adc eax, esi
add edx, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x1c], edx
adc ebp, ebx
mov dword [esp + 0x330], edx
add ecx, edi
mov dword [esp + 0x334], ebp
mov dword [esp + 0x4c], ecx
mov edi, ebp
adc eax, ebx
mov dword [esp + 0x310], ecx
mov dword [esp + 0x24], eax
xor ebx, ebx
mov dword [esp + 0x314], eax
mov ecx, ebp
mov eax, edx
shr edi, 9
shld ecx, eax, 0x17
mov esi, edx
mov dword [esp + 0x48], ebp
or ebx, ecx
shl eax, 0x17
or edi, eax
shl esi, 0xe
mov eax, dword [esp + 0x1c]
xor edx, edx
mov ecx, ebp
shrd eax, ecx, 0x12
or edx, eax
shr ecx, 0x12
mov eax, dword [esp + 0x1c]
or esi, ecx
xor ebx, esi
xor edi, edx
mov esi, eax
xor edx, edx
shl esi, 0x12
mov ecx, ebp
mov ebp, dword [esp + 0x28]
shrd eax, ecx, 0xe
or edx, eax
shr ecx, 0xe
mov eax, dword [esp + 0x3c]
or esi, ecx
xor eax, dword [esp + 0x18]
xor ebx, esi
and eax, dword [esp + 0x48]
xor edi, edx
xor eax, dword [esp + 0x3c]
mov ecx, ebp
xor ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x1c]
xor ecx, ebp
add edi, ecx
mov ecx, dword [esp + 0x24]
adc ebx, eax
mov eax, dword [esp + 0x54]
add edi, dword [esp + eax*8 + 0xa0]
adc ebx, dword [esp + eax*8 + 0xa4]
add edi, dword [eax*8 + 0x56b338]
adc ebx, dword [eax*8 + 0x56b33c]
add edi, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
mov edx, eax
adc ebx, dword [esp + 0x5c]
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x4c]
or edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], esi
mov esi, ecx
shld ecx, eax, 0x1e
mov dword [esp + 0x28], edx
xor edx, edx
shr esi, 2
shl eax, 0x1e
or esi, eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], ebx
or edx, ecx
xor dword [esp + 0x20], esi
xor dword [esp + 0x28], edx
xor edx, edx
mov ecx, dword [esp + 0x24]
mov esi, ecx
mov eax, dword [esp + 0x4c]
shld ecx, eax, 0x19
shr esi, 7
or edx, ecx
shl eax, 0x19
xor dword [esp + 0x28], edx
or esi, eax
xor dword [esp + 0x20], esi
mov ecx, dword [esp + 0x14]
mov edx, ecx
and ecx, dword [esp + 0x4c]
or edx, dword [esp + 0x4c]
and edx, dword [esp + 0x44]
mov eax, dword [esp + 0x30]
or edx, ecx
mov ecx, dword [esp + 0x2c]
mov esi, eax
and eax, dword [esp + 0x24]
or esi, dword [esp + 0x24]
and esi, dword [esp + 0x40]
or esi, eax
add dword [esp + 0x20], edx
mov eax, dword [esp + 0x28]
adc eax, esi
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x20]
add edx, edi
mov dword [esp + 0x74], eax
adc ecx, ebx
mov dword [esp + 0x70], esi
add esi, edi
mov dword [esp + 0x2c], ecx
mov edi, ecx
mov dword [esp + 0x32c], ecx
adc eax, ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], eax
xor ebx, ebx
mov dword [esp + 0x30c], eax
mov eax, edx
shld ecx, eax, 0x17
shr edi, 9
or ebx, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x2c]
or edi, eax
mov eax, dword [esp + 0x34]
shrd eax, ecx, 0x12
mov dword [esp + 0x20], esi
mov dword [esp + 0x308], esi
mov esi, edx
shr ecx, 0x12
shl esi, 0xe
or esi, ecx
mov dword [esp + 0x328], edx
mov ecx, dword [esp + 0x2c]
xor edx, edx
or edx, eax
xor ebx, esi
mov eax, dword [esp + 0x34]
xor edi, edx
mov esi, eax
xor edx, edx
shrd eax, ecx, 0xe
shl esi, 0x12
shr ecx, 0xe
or edx, eax
mov eax, dword [esp + 0x18]
or esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, edx
xor ecx, dword [esp + 0x1c]
xor ebx, esi
xor eax, dword [esp + 0x48]
and ecx, dword [esp + 0x34]
and eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x18]
xor ecx, dword [esp + 0x10]
add edi, ecx
adc ebx, eax
mov eax, dword [esp + 0x54]
add edi, dword [esp + eax*8 + 0xa8]
adc ebx, dword [esp + eax*8 + 0xac]
add edi, dword [eax*8 + 0x56b340]
adc ebx, dword [eax*8 + 0x56b344]
add edi, ebp
mov ebp, dword [esp + 0x28]
mov ecx, ebp
adc ebx, dword [esp + 0x3c]
xor esi, esi
mov eax, dword [esp + 0x20]
mov edx, eax
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x20]
or edx, ecx
mov dword [esp + 0x50], esi
mov ecx, ebp
shld ecx, eax, 0x1e
mov dword [esp + 0x38], edx
mov esi, ebp
xor edx, edx
shl eax, 0x1e
or edx, ecx
shr esi, 2
xor dword [esp + 0x38], edx
or esi, eax
xor dword [esp + 0x50], esi
xor edx, edx
mov eax, dword [esp + 0x20]
mov ecx, ebp
shld ecx, eax, 0x19
mov esi, ebp
mov dword [esp + 0x68], edi
or edx, ecx
shl eax, 0x19
xor dword [esp + 0x38], edx
mov ecx, dword [esp + 0x4c]
mov edx, ecx
or edx, dword [esp + 0x20]
and edx, dword [esp + 0x14]
and ecx, dword [esp + 0x20]
shr esi, 7
or edx, ecx
or esi, eax
mov dword [esp + 0x6c], ebx
xor dword [esp + 0x50], esi
mov eax, dword [esp + 0x24]
mov esi, eax
mov ecx, dword [esp + 0x50]
or esi, ebp
and esi, dword [esp + 0x30]
and eax, ebp
or esi, eax
mov ebp, edi
mov eax, dword [esp + 0x38]
add ecx, edx
mov edx, ebx
mov dword [esp + 0x70], ecx
adc eax, esi
add ebp, dword [esp + 0x44]
mov dword [esp + 0x74], eax
adc edx, dword [esp + 0x40]
add ecx, edi
mov edi, edx
mov dword [esp + 0x58], ebp
adc eax, ebx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x320], ebp
mov dword [esp + 0x324], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x300], ecx
mov dword [esp + 0x304], eax
shr edi, 9
mov ecx, edx
xor ebx, ebx
mov eax, ebp
xor edx, edx
shld ecx, eax, 0x17
mov esi, ebp
or ebx, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x3c]
or edi, eax
shl esi, 0xe
mov eax, ebp
shrd eax, ecx, 0x12
or edx, eax
shr ecx, 0x12
or esi, ecx
xor edi, edx
mov ecx, dword [esp + 0x3c]
xor ebx, esi
xor edx, edx
mov eax, ebp
shrd eax, ecx, 0xe
mov esi, ebp
or edx, eax
shr ecx, 0xe
mov eax, dword [esp + 0x2c]
xor edi, edx
xor eax, dword [esp + 0x48]
and eax, dword [esp + 0x3c]
xor eax, dword [esp + 0x48]
shl esi, 0x12
or esi, ecx
mov ecx, dword [esp + 0x34]
xor ecx, dword [esp + 0x1c]
xor ebx, esi
and ecx, ebp
mov ebp, dword [esp + 0x54]
xor ecx, dword [esp + 0x1c]
add edi, ecx
mov ecx, dword [esp + 0x38]
adc ebx, eax
add edi, dword [ebp*8 + 0x56b348]
mov eax, dword [esp + 0x50]
mov edx, eax
adc ebx, dword [ebp*8 + 0x56b34c]
add edi, dword [esp + ebp*8 + 0xb0]
adc ebx, dword [esp + ebp*8 + 0xb4]
add edi, dword [esp + 0x10]
mov dword [esp + 0x68], edi
adc ebx, dword [esp + 0x18]
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x50]
or edx, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x10], esi
mov esi, ecx
shld ecx, eax, 0x1e
mov dword [esp + 0x18], edx
xor edx, edx
shr esi, 2
or edx, ecx
mov ecx, dword [esp + 0x38]
xor dword [esp + 0x18], edx
xor edx, edx
shl eax, 0x1e
or esi, eax
mov dword [esp + 0x6c], ebx
xor dword [esp + 0x10], esi
mov esi, ecx
mov eax, dword [esp + 0x50]
shld ecx, eax, 0x19
shr esi, 7
shl eax, 0x19
or edx, ecx
or esi, eax
xor dword [esp + 0x10], esi
xor dword [esp + 0x18], edx
mov ecx, dword [esp + 0x20]
mov edx, ecx
or edx, dword [esp + 0x50]
and ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x28]
mov esi, eax
or esi, dword [esp + 0x38]
and eax, dword [esp + 0x38]
and edx, dword [esp + 0x4c]
and esi, dword [esp + 0x24]
or edx, ecx
mov ecx, dword [esp + 0x30]
or esi, eax
add dword [esp + 0x10], edx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
adc eax, esi
mov esi, dword [esp + 0x10]
add edx, edi
mov dword [esp + 0x70], esi
adc ecx, ebx
mov dword [esp + 0x74], eax
add esi, edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x30], ecx
adc eax, ebx
mov dword [esp + 0x318], edx
add ebp, 8
mov dword [esp + 0x31c], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x2f8], esi
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x54], ebp
cmp ebp, 0x50
jl 0x4cd6ed
mov ecx, dword [esp + 0x64]
lea edx, [esp + 0x2e8]
sub edx, dword [esp + 0x60]
push 8
pop esi
mov eax, dword [ecx + edx]
add dword [ecx], eax
mov eax, dword [ecx + edx + 4]
adc dword [ecx + 4], eax
lea ecx, [ecx + 8]
sub esi, 1
jne 0x4ce2fd
push 0x2d0
lea eax, [esp + 0x6c]
push esi
push eax
mov eax, dword [fcn.0051c010]
call eax
mov ecx, dword [esp + 0x348]
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0051b034
add esp, 0x334
ret