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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x314
lea edx, [esp + 0x9a]
sub edx, eax
mov dword [esp + 4], edx
lea edx, [esp + 0xa2]
sub edx, eax
push ebx
mov dword [esp + 0x10], edx
lea edx, [esp + 0xae]
push esi
sub edx, eax
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0xc], 0
lea ecx, [eax + 2]
mov dword [esp + 0x14], edx
movzx eax, byte [ecx - 2]
cdq
shld edx, eax, 8
shl eax, 8
mov esi, eax
movzx eax, byte [ecx - 1]
mov ebx, edx
cdq
or esi, eax
or ebx, edx
shld ebx, esi, 8
movzx eax, byte [ecx]
shl esi, 8
cdq
or esi, eax
or ebx, edx
shld ebx, esi, 8
movzx eax, byte [ecx + 1]
shl esi, 8
cdq
or esi, eax
movzx eax, byte [ecx + 2]
or ebx, edx
shld ebx, esi, 8
cdq
or ebx, edx
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 3]
shld ebx, esi, 8
cdq
or ebx, edx
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 4]
shld ebx, esi, 8
cdq
or ebx, edx
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 5]
shld ebx, esi, 8
cdq
or ebx, edx
shl esi, 8
or esi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + eax*8 + 0xa0], esi
mov dword [esp + eax*8 + 0xa4], ebx
movzx eax, byte [ecx + 6]
cdq
shld edx, eax, 8
shl eax, 8
mov esi, eax
movzx eax, byte [ecx + 7]
mov ebx, edx
cdq
or esi, eax
movzx eax, byte [ecx + 8]
or ebx, edx
shld ebx, esi, 8
shl esi, 8
cdq
or esi, eax
movzx eax, byte [ecx + 9]
or ebx, edx
shld ebx, esi, 8
cdq
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0xa]
or ebx, edx
shld ebx, esi, 8
cdq
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0xb]
or ebx, edx
shld ebx, esi, 8
shl esi, 8
cdq
or esi, eax
or ebx, edx
shld ebx, esi, 8
movzx eax, byte [ecx + 0xc]
cdq
or ebx, edx
shl esi, 8
or esi, eax
shld ebx, esi, 8
movzx eax, byte [ecx + 0xd]
cdq
or ebx, edx
shl esi, 8
or esi, eax
mov eax, dword [esp + 0x10]
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], ebx
movzx eax, byte [ecx + 0xe]
cdq
shld edx, eax, 8
shl eax, 8
mov esi, eax
movzx eax, byte [ecx + 0xf]
mov ebx, edx
cdq
or esi, eax
movzx eax, byte [ecx + 0x10]
or ebx, edx
shld ebx, esi, 8
cdq
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0x11]
or ebx, edx
shld ebx, esi, 8
cdq
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0x12]
or ebx, edx
shld ebx, esi, 8
cdq
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0x13]
or ebx, edx
shld ebx, esi, 8
cdq
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0x14]
or ebx, edx
shld ebx, esi, 8
cdq
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0x15]
or ebx, edx
shld ebx, esi, 8
cdq
shl esi, 8
or esi, eax
mov eax, dword [esp + 0x18]
mov dword [ecx + eax], esi
or ebx, edx
mov dword [ecx + eax + 4], ebx
movzx eax, byte [ecx + 0x16]
cdq
shld edx, eax, 8
shl eax, 8
mov esi, eax
movzx eax, byte [ecx + 0x17]
mov ebx, edx
cdq
or esi, eax
movzx eax, byte [ecx + 0x18]
or ebx, edx
shld ebx, esi, 8
cdq
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0x19]
or ebx, edx
shld ebx, esi, 8
shl esi, 8
cdq
or esi, eax
movzx eax, byte [ecx + 0x1a]
or ebx, edx
shld ebx, esi, 8
shl esi, 8
cdq
or esi, eax
movzx eax, byte [ecx + 0x1b]
or ebx, edx
shld ebx, esi, 8
shl esi, 8
cdq
or esi, eax
movzx eax, byte [ecx + 0x1c]
or ebx, edx
shld ebx, esi, 8
cdq
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0x1d]
or ebx, edx
shld ebx, esi, 8
cdq
shl esi, 8
or ebx, edx
mov edx, dword [esp + 0xc]
or esi, eax
mov eax, dword [esp + 0x14]
add edx, 4
mov dword [ecx + eax], esi
mov dword [ecx + eax + 4], ebx
add ecx, 0x20
cmp edx, 0x10
mov dword [esp + 0xc], edx
jl 0x421244
cmp edx, 0x50
jge 0x421572
mov ecx, 0x50
lea eax, [esp + edx*8 + 0x90]
sub ecx, edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov ecx, dword [eax - 0x68]
mov edx, dword [eax - 0x64]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edi, ecx
xor esi, esi
mov ebx, eax
shrd edi, ebx, 0x13
or esi, edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edx
mov edx, ecx
mov edi, eax
mov dword [esp + 0x2c], eax
shld eax, ecx, 3
add ecx, ecx
shl edx, 0xd
shr ebx, 0x13
or edx, ebx
add ecx, ecx
add ecx, ecx
shr edi, 0x1d
or edi, ecx
mov ecx, dword [esp + 0x28]
xor ebx, ebx
or ebx, eax
mov eax, dword [esp + 0x2c]
shrd ecx, eax, 6
xor esi, edi
xor esi, ecx
mov ecx, dword [esp + 0x24]
xor edx, ebx
shr eax, 6
xor edx, eax
mov eax, dword [esp + 0x20]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 8
mov dword [esp + 0x14], esi
xor esi, esi
or esi, edi
mov dword [esp + 0x18], edx
mov edx, eax
mov edi, eax
shrd eax, ecx, 1
shl edx, 0x18
shr ebx, 8
or edx, ebx
shr ecx, 1
xor ebx, ebx
or ebx, eax
mov eax, dword [esp + 0x24]
shl edi, 0x1f
or edi, ecx
mov ecx, dword [esp + 0x20]
shrd ecx, eax, 7
xor esi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x14]
shr eax, 7
xor edx, edi
xor edx, eax
mov eax, dword [esp + 0xc]
add ecx, esi
mov esi, dword [esp + 0x18]
adc esi, edx
add ecx, dword [eax - 0x70]
adc esi, dword [eax - 0x6c]
add ecx, dword [eax - 0x28]
adc esi, dword [eax - 0x24]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], esi
add eax, 8
sub dword [esp + 0x10], 1
mov dword [esp + 0xc], eax
jne 0x421490
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x30]
mov esi, dword [edi + 0x34]
mov dword [esp + 0x88], eax
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x60], eax
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x98], eax
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x38]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x40]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 0x3c]
mov dword [esp + 0x80], eax
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x48]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x44], ecx
mov ecx, dword [edi + 0x44]
mov edi, dword [edi + 0x4c]
mov dword [esp + 0x90], eax
mov dword [esp + 0x20], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x84], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x94], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x454bd8
jmp 0x421658
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
shl edi, 0x17
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
mov eax, esi
shr eax, 9
or eax, edi
mov edi, edx
shrd edx, esi, 0x12
or ebx, edx
mov edx, dword [esp + 0x18]
xor eax, ebx
mov ebx, dword [esp + 0x1c]
shl edi, 0xe
shr esi, 0x12
or edi, esi
xor ecx, edi
xor edi, edi
mov esi, edx
shrd edx, ebx, 0xe
or edi, edx
mov edx, dword [esp + 0x30]
shr ebx, 0xe
xor eax, edi
shl esi, 0x12
or esi, ebx
xor ecx, esi
mov esi, dword [esp + 0x34]
mov edi, edx
xor edi, dword [esp + 0x40]
mov ebx, esi
xor ebx, dword [esp + 0x44]
and edi, dword [esp + 0x18]
and ebx, dword [esp + 0x1c]
xor edi, edx
mov edx, dword [esp + 0x10]
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x20]
mov edx, dword [esp + 0xc]
adc ecx, dword [esp + 0x24]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add dword [esp + 0x28], eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x50]
adc dword [esp + 0x2c], ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x54]
mov edi, eax
mov ebx, ecx
shrd edi, ebx, 0x1c
xor esi, esi
or esi, edi
mov edx, eax
shr ebx, 0x1c
mov edi, ecx
shld ecx, eax, 0x1e
shl edx, 4
or edx, ebx
xor ebx, ebx
or ebx, ecx
shl eax, 0x1e
shr edi, 2
or edi, eax
mov eax, dword [esp + 0x54]
xor edx, ebx
mov ebx, dword [esp + 0x50]
mov ecx, eax
shld eax, ebx, 0x19
xor esi, edi
shr ecx, 7
shl ebx, 0x19
xor edi, edi
or ecx, ebx
or edi, eax
mov eax, dword [esp + 0x48]
xor esi, ecx
mov ecx, dword [esp + 0x4c]
xor edx, edi
mov dword [esp + 0x14], esi
mov esi, eax
or esi, dword [esp + 0x50]
and eax, dword [esp + 0x50]
and esi, dword [esp + 0x38]
mov edi, ecx
or edi, dword [esp + 0x54]
and ecx, dword [esp + 0x54]
and edi, dword [esp + 0x3c]
or esi, eax
mov eax, dword [esp + 0x14]
or edi, ecx
add eax, esi
adc edx, edi
add eax, dword [esp + 0x58]
mov esi, dword [esp + 0x2c]
adc edx, dword [esp + 0x5c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x28]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
shl edi, 0x17
xor ecx, ecx
or ecx, ebx
mov eax, 8
add dword [esp + 0x10], eax
add dword [esp + 0xc], eax
mov eax, esi
shr eax, 9
or eax, edi
xor ebx, ebx
mov edi, edx
shrd edx, esi, 0x12
or ebx, edx
mov edx, dword [esp + 0x28]
shl edi, 0xe
xor eax, ebx
mov ebx, dword [esp + 0x2c]
shr esi, 0x12
or edi, esi
xor ecx, edi
mov esi, edx
shrd edx, ebx, 0xe
shr ebx, 0xe
xor edi, edi
or edi, edx
mov edx, dword [esp + 0x40]
shl esi, 0x12
or esi, ebx
xor ecx, esi
mov esi, dword [esp + 0x44]
xor eax, edi
mov edi, edx
xor edi, dword [esp + 0x18]
mov ebx, esi
xor ebx, dword [esp + 0x1c]
and edi, dword [esp + 0x28]
and ebx, dword [esp + 0x2c]
xor edi, edx
mov edx, dword [esp + 0x10]
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
adc ecx, dword [esp + 0x34]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add dword [esp + 0x38], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
adc dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edi, eax
xor esi, esi
mov ebx, ecx
shrd edi, ebx, 0x1c
or esi, edi
mov edx, eax
shr ebx, 0x1c
shl edx, 4
or edx, ebx
mov edi, ecx
shld ecx, eax, 0x1e
shr edi, 2
xor ebx, ebx
or ebx, ecx
xor edx, ebx
mov ebx, dword [esp + 0x20]
shl eax, 0x1e
or edi, eax
mov eax, dword [esp + 0x24]
xor esi, edi
mov ecx, eax
shld eax, ebx, 0x19
xor edi, edi
or edi, eax
mov eax, dword [esp + 0x20]
xor edx, edi
shl ebx, 0x19
shr ecx, 7
or ecx, ebx
xor esi, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x14], esi
mov esi, eax
or esi, dword [esp + 0x50]
and eax, dword [esp + 0x50]
and esi, dword [esp + 0x48]
mov edi, ecx
or edi, dword [esp + 0x54]
and ecx, dword [esp + 0x54]
and edi, dword [esp + 0x4c]
or esi, eax
mov eax, dword [esp + 0x14]
or edi, ecx
add eax, esi
mov esi, dword [esp + 0x3c]
adc edx, edi
add eax, dword [esp + 0x58]
mov ebx, esi
adc edx, dword [esp + 0x5c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x38]
mov edi, edx
shld ebx, edi, 0x17
mov eax, 8
add dword [esp + 0x10], eax
add dword [esp + 0xc], eax
mov eax, esi
shl edi, 0x17
shr eax, 9
or eax, edi
mov edi, edx
shrd edx, esi, 0x12
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
or ebx, edx
mov edx, dword [esp + 0x38]
shr esi, 0x12
shl edi, 0xe
or edi, esi
xor eax, ebx
mov ebx, dword [esp + 0x3c]
mov esi, edx
shrd edx, ebx, 0xe
xor ecx, edi
xor edi, edi
shl esi, 0x12
shr ebx, 0xe
or edi, edx
mov edx, dword [esp + 0x18]
or esi, ebx
xor eax, edi
xor ecx, esi
mov esi, dword [esp + 0x1c]
mov edi, edx
xor edi, dword [esp + 0x28]
mov ebx, esi
xor ebx, dword [esp + 0x2c]
and edi, dword [esp + 0x38]
and ebx, dword [esp + 0x3c]
xor edi, edx
mov edx, dword [esp + 0x10]
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
adc ecx, dword [esp + 0x44]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add dword [esp + 0x48], eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
adc dword [esp + 0x4c], ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x34]
mov edi, eax
mov ebx, ecx
shrd edi, ebx, 0x1c
xor esi, esi
or esi, edi
mov edx, eax
shr ebx, 0x1c
mov edi, ecx
shld ecx, eax, 0x1e
shl edx, 4
or edx, ebx
shr edi, 2
shl eax, 0x1e
or edi, eax
mov eax, dword [esp + 0x34]
xor ebx, ebx
or ebx, ecx
xor edx, ebx
mov ebx, dword [esp + 0x30]
mov ecx, eax
shld eax, ebx, 0x19
xor esi, edi
shr ecx, 7
xor edi, edi
or edi, eax
mov eax, dword [esp + 0x20]
shl ebx, 0x19
or ecx, ebx
xor esi, ecx
mov ecx, dword [esp + 0x24]
xor edx, edi
mov dword [esp + 0x14], esi
mov esi, eax
or esi, dword [esp + 0x30]
and eax, dword [esp + 0x30]
and esi, dword [esp + 0x50]
mov edi, ecx
or edi, dword [esp + 0x34]
and ecx, dword [esp + 0x34]
and edi, dword [esp + 0x54]
or esi, eax
mov eax, dword [esp + 0x14]
or edi, ecx
add eax, esi
adc edx, edi
add eax, dword [esp + 0x58]
adc edx, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, 8
add dword [esp + 0x10], eax
mov dword [esp + 0x44], edx
add dword [esp + 0xc], eax
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
shl edi, 0x17
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
mov eax, esi
shr eax, 9
or eax, edi
mov edi, edx
shrd edx, esi, 0x12
or ebx, edx
mov edx, dword [esp + 0x48]
xor eax, ebx
mov ebx, dword [esp + 0x4c]
shl edi, 0xe
shr esi, 0x12
or edi, esi
xor ecx, edi
mov esi, edx
shrd edx, ebx, 0xe
shr ebx, 0xe
xor edi, edi
or edi, edx
mov edx, dword [esp + 0x28]
xor eax, edi
shl esi, 0x12
or esi, ebx
xor ecx, esi
mov esi, dword [esp + 0x2c]
mov edi, edx
xor edi, dword [esp + 0x38]
mov ebx, esi
xor ebx, dword [esp + 0x3c]
and edi, dword [esp + 0x48]
and ebx, dword [esp + 0x4c]
xor edi, edx
mov edx, dword [esp + 0x10]
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
adc ecx, dword [esp + 0x1c]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add dword [esp + 0x50], eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x54], ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x44]
mov edi, eax
mov ebx, ecx
shrd edi, ebx, 0x1c
xor esi, esi
or esi, edi
mov edx, eax
mov edi, ecx
shld ecx, eax, 0x1e
shr ebx, 0x1c
shl edx, 4
or edx, ebx
shl eax, 0x1e
shr edi, 2
xor ebx, ebx
or edi, eax
mov eax, dword [esp + 0x44]
or ebx, ecx
mov ecx, eax
xor edx, ebx
mov ebx, dword [esp + 0x40]
xor esi, edi
shr ecx, 7
xor edi, edi
shld eax, ebx, 0x19
or edi, eax
mov eax, dword [esp + 0x30]
xor edx, edi
shl ebx, 0x19
or ecx, ebx
xor esi, ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x14], esi
mov esi, eax
or esi, dword [esp + 0x40]
and eax, dword [esp + 0x40]
and esi, dword [esp + 0x20]
mov edi, ecx
or edi, dword [esp + 0x44]
and ecx, dword [esp + 0x44]
and edi, dword [esp + 0x24]
or esi, eax
mov eax, dword [esp + 0x14]
or edi, ecx
add eax, esi
adc edx, edi
add eax, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
adc edx, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x50]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
shl edi, 0x17
mov eax, 8
add dword [esp + 0x10], eax
add dword [esp + 0xc], eax
mov eax, esi
shr eax, 9
or eax, edi
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
mov edi, edx
shrd edx, esi, 0x12
or ebx, edx
mov edx, dword [esp + 0x50]
shl edi, 0xe
xor eax, ebx
mov ebx, dword [esp + 0x54]
shr esi, 0x12
or edi, esi
xor ecx, edi
mov esi, edx
shrd edx, ebx, 0xe
shr ebx, 0xe
xor edi, edi
or edi, edx
mov edx, dword [esp + 0x38]
shl esi, 0x12
or esi, ebx
xor ecx, esi
mov esi, dword [esp + 0x3c]
xor eax, edi
mov edi, edx
xor edi, dword [esp + 0x48]
mov ebx, esi
xor ebx, dword [esp + 0x4c]
and edi, dword [esp + 0x50]
and ebx, dword [esp + 0x54]
xor edi, edx
mov edx, dword [esp + 0x10]
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x28]
mov edx, dword [esp + 0xc]
adc ecx, dword [esp + 0x2c]
add eax, dword [edx]
adc ecx, dword [edx + 4]
mov dword [esp + 0x58], eax
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov edi, eax
adc dword [esp + 0x24], ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x1c]
mov ebx, ecx
shrd edi, ebx, 0x1c
xor esi, esi
or esi, edi
mov edx, eax
shr ebx, 0x1c
mov edi, ecx
shld ecx, eax, 0x1e
shr edi, 2
shl edx, 4
or edx, ebx
shl eax, 0x1e
or edi, eax
mov eax, dword [esp + 0x1c]
xor esi, edi
xor ebx, ebx
or ebx, ecx
xor edx, ebx
mov ebx, dword [esp + 0x18]
mov ecx, eax
shld eax, ebx, 0x19
xor edi, edi
or edi, eax
mov eax, dword [esp + 0x40]
xor edx, edi
shr ecx, 7
shl ebx, 0x19
or ecx, ebx
xor esi, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x14], esi
mov esi, eax
or esi, dword [esp + 0x18]
and eax, dword [esp + 0x18]
and esi, dword [esp + 0x30]
mov edi, ecx
or edi, dword [esp + 0x1c]
and ecx, dword [esp + 0x1c]
and edi, dword [esp + 0x34]
or esi, eax
mov eax, dword [esp + 0x14]
or edi, ecx
add eax, esi
mov esi, dword [esp + 0x24]
adc edx, edi
add eax, dword [esp + 0x58]
mov ebx, esi
adc edx, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x20]
mov edi, edx
shld ebx, edi, 0x17
mov eax, 8
add dword [esp + 0x10], eax
add dword [esp + 0xc], eax
mov eax, esi
shl edi, 0x17
shr eax, 9
or eax, edi
mov edi, edx
shrd edx, esi, 0x12
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
shl edi, 0xe
shr esi, 0x12
or ebx, edx
mov edx, dword [esp + 0x20]
or edi, esi
xor ecx, edi
mov esi, edx
xor eax, ebx
xor edi, edi
shl esi, 0x12
mov ebx, dword [esp + 0x24]
shrd edx, ebx, 0xe
or edi, edx
mov edx, dword [esp + 0x48]
xor eax, edi
shr ebx, 0xe
or esi, ebx
xor ecx, esi
mov esi, dword [esp + 0x4c]
mov edi, edx
xor edi, dword [esp + 0x50]
mov ebx, esi
xor ebx, dword [esp + 0x54]
and edi, dword [esp + 0x20]
and ebx, dword [esp + 0x24]
xor edi, edx
mov edx, dword [esp + 0x10]
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x38]
mov edx, dword [esp + 0xc]
adc ecx, dword [esp + 0x3c]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add dword [esp + 0x30], eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x28]
adc dword [esp + 0x34], ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x2c]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 0x1c
xor edx, edx
or edx, edi
shr ebx, 0x1c
mov edi, ecx
mov esi, eax
shld ecx, eax, 0x1e
shl esi, 4
or esi, ebx
xor ebx, ebx
or ebx, ecx
shr edi, 2
shl eax, 0x1e
or edi, eax
mov eax, dword [esp + 0x2c]
xor esi, ebx
mov ebx, dword [esp + 0x28]
mov ecx, eax
shld eax, ebx, 0x19
xor edx, edi
shl ebx, 0x19
shr ecx, 7
or ecx, ebx
mov ebx, dword [esp + 0x1c]
xor edi, edi
or edi, eax
mov eax, dword [esp + 0x28]
xor edx, ecx
mov ecx, dword [esp + 0x2c]
xor esi, edi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
mov edi, edx
or edi, eax
and edi, dword [esp + 0x40]
or ebx, ecx
and ebx, dword [esp + 0x44]
and edx, eax
mov eax, dword [esp + 0x1c]
and eax, ecx
mov ecx, dword [esp + 0x14]
or edi, edx
or ebx, eax
add ecx, edi
adc esi, ebx
add ecx, dword [esp + 0x58]
adc esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x34]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
shl edi, 0x17
mov dword [esp + 0x38], ecx
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
mov eax, 8
add dword [esp + 0x10], eax
add dword [esp + 0xc], eax
mov eax, esi
shr eax, 9
or eax, edi
mov edi, edx
shrd edx, esi, 0x12
or ebx, edx
mov edx, dword [esp + 0x30]
xor eax, ebx
mov ebx, dword [esp + 0x34]
shl edi, 0xe
shr esi, 0x12
or edi, esi
xor ecx, edi
xor edi, edi
mov esi, edx
shrd edx, ebx, 0xe
or edi, edx
mov edx, dword [esp + 0x50]
shr ebx, 0xe
xor eax, edi
mov edi, dword [esp + 0x20]
xor edi, edx
and edi, dword [esp + 0x30]
shl esi, 0x12
or esi, ebx
mov ebx, dword [esp + 0x24]
xor ecx, esi
mov esi, dword [esp + 0x54]
xor ebx, esi
and ebx, dword [esp + 0x34]
xor edi, edx
mov edx, dword [esp + 0x10]
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0xc]
adc ecx, dword [esp + 0x4c]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add dword [esp + 0x40], eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
adc dword [esp + 0x44], ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x3c]
mov edi, eax
mov ebx, ecx
shrd edi, ebx, 0x1c
xor esi, esi
or esi, edi
mov edx, eax
mov edi, ecx
shld ecx, eax, 0x1e
shr ebx, 0x1c
shl edx, 4
or edx, ebx
shr edi, 2
shl eax, 0x1e
xor ebx, ebx
or edi, eax
or ebx, ecx
xor esi, edi
xor edx, ebx
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
mov ecx, eax
shld eax, ebx, 0x19
xor edi, edi
or edi, eax
mov eax, dword [esp + 0x28]
xor edx, edi
shl ebx, 0x19
shr ecx, 7
or ecx, ebx
xor esi, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x14], esi
mov esi, eax
or esi, dword [esp + 0x38]
and eax, dword [esp + 0x38]
and esi, dword [esp + 0x18]
mov edi, ecx
or edi, dword [esp + 0x3c]
and ecx, dword [esp + 0x3c]
and edi, dword [esp + 0x1c]
or esi, eax
mov eax, dword [esp + 0x14]
or edi, ecx
add eax, esi
adc edx, edi
add eax, dword [esp + 0x58]
mov esi, dword [esp + 0x44]
adc edx, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x40]
mov ebx, esi
mov edi, edx
shld ebx, edi, 0x17
shl edi, 0x17
mov eax, 8
add dword [esp + 0x10], eax
add dword [esp + 0xc], eax
mov eax, esi
shr eax, 9
or eax, edi
xor ecx, ecx
or ecx, ebx
xor ebx, ebx
mov edi, edx
shrd edx, esi, 0x12
or ebx, edx
mov edx, dword [esp + 0x40]
shl edi, 0xe
xor eax, ebx
mov ebx, dword [esp + 0x44]
shr esi, 0x12
or edi, esi
xor ecx, edi
mov esi, edx
shrd edx, ebx, 0xe
shr ebx, 0xe
xor edi, edi
or edi, edx
mov edx, dword [esp + 0x20]
shl esi, 0x12
or esi, ebx
xor eax, edi
xor ecx, esi
mov esi, dword [esp + 0x24]
mov edi, edx
xor edi, dword [esp + 0x30]
mov ebx, esi
xor ebx, dword [esp + 0x34]
and edi, dword [esp + 0x40]
and ebx, dword [esp + 0x44]
xor edi, edx
mov edx, dword [esp + 0x10]
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [edx]
adc ecx, dword [edx + 4]
add eax, dword [esp + 0x50]
adc ecx, dword [esp + 0x54]
mov edx, dword [esp + 0xc]
add eax, dword [edx]
adc ecx, dword [edx + 4]
add dword [esp + 0x18], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], eax
adc dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov ebx, ecx
mov edi, eax
shrd edi, ebx, 0x1c
xor esi, esi
or esi, edi
mov edi, ecx
mov edx, eax
shld ecx, eax, 0x1e
shr ebx, 0x1c
shl edx, 4
or edx, ebx
shr edi, 2
shl eax, 0x1e
or edi, eax
mov eax, dword [esp + 0x4c]
xor ebx, ebx
or ebx, ecx
xor edx, ebx
mov ebx, dword [esp + 0x48]
xor esi, edi
mov ecx, eax
shld eax, ebx, 0x19
shr ecx, 7
xor edi, edi
or edi, eax
mov eax, dword [esp + 0x38]
shl ebx, 0x19
or ecx, ebx
xor esi, ecx
mov ecx, dword [esp + 0x3c]
xor edx, edi
mov dword [esp + 0x14], esi
mov edi, ecx
or edi, dword [esp + 0x4c]
and ecx, dword [esp + 0x4c]
and edi, dword [esp + 0x2c]
mov esi, eax
or esi, dword [esp + 0x48]
and eax, dword [esp + 0x48]
and esi, dword [esp + 0x28]
or edi, ecx
mov ecx, dword [esp + 0x14]
or esi, eax
mov eax, dword [esp + 0x10]
add ecx, esi
adc edx, edi
add ecx, dword [esp + 0x58]
adc edx, dword [esp + 0x5c]
add dword [esp + 0xc], 8
add eax, 8
cmp eax, 0x454e58
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x10], eax
jl 0x421650
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x88]
add esi, ecx
mov ecx, dword [esp + 0x8c]
adc ecx, edx
mov edx, dword [esp + 0x64]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x60]
add ecx, dword [esp + 0x48]
pop edi
adc edx, dword [esp + 0x48]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x74]
add ecx, dword [esp + 0x34]
mov dword [eax + 0x1c], edx
mov edx, dword [esp + 0x78]
adc edx, dword [esp + 0x38]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x24]
mov dword [eax + 0x24], edx
mov edx, dword [esp + 0x98]
adc edx, dword [esp + 0x28]
mov dword [eax + 0x28], ecx
mov ecx, dword [esp + 0x64]
add ecx, dword [esp + 0x14]
mov dword [eax + 0x2c], edx
mov edx, dword [esp + 0x68]
adc edx, dword [esp + 0x18]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x6c]
add ecx, dword [esp + 0x3c]
mov dword [eax + 0x34], edx
mov edx, dword [esp + 0x70]
adc edx, dword [esp + 0x40]
mov dword [eax + 0x38], ecx
mov ecx, dword [esp + 0x7c]
add ecx, dword [esp + 0x2c]
mov dword [eax + 0x3c], edx
mov edx, dword [esp + 0x80]
adc edx, dword [esp + 0x30]
mov dword [eax + 0x40], ecx
mov ecx, dword [esp + 0x8c]
add ecx, dword [esp + 0x1c]
mov dword [eax + 0x44], edx
mov edx, dword [esp + 0x90]
adc edx, dword [esp + 0x20]
mov dword [eax + 0x10], esi
pop esi
mov dword [eax + 0x48], ecx
mov dword [eax + 0x4c], edx
pop ebx
mov esp, ebp
pop ebp
ret