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

Disassembly:
sub esp, 0x318
push ebx
push ebp
push esi
mov esi, dword [esp + 0x328]
push edi
xor ebx, ebx
push 0x278
mov edi, eax
lea eax, [esp + 0xb4]
push ebx
push eax
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ebx
call fcn.1008e320
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x30], edx
mov edx, dword [esi + 0x20]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x3c], edx
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x48], edx
mov edx, dword [esi + 0x38]
lea eax, [esp + 0xc2]
sub eax, edi
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x54], edx
mov edx, dword [esi + 0x44]
lea ebx, [esp + 0xba]
lea eax, [esp + 0xca]
add esp, 0xc
xor esi, esi
sub ebx, edi
sub eax, edi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x54], edx
lea ecx, [edi + 2]
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx - 2]
cdq
shld edx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ecx - 1]
mov ebp, edx
cdq
or edi, eax
or ebp, edx
shld ebp, edi, 8
movzx eax, byte [ecx]
shl edi, 8
cdq
or edi, eax
or ebp, edx
shld ebp, edi, 8
movzx eax, byte [ecx + 1]
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 2]
or ebp, edx
shld ebp, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 3]
or ebp, edx
shld ebp, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 4]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 5]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 6]
or ebp, edx
cdq
shld edx, eax, 8
mov dword [esp + esi*8 + 0xa8], edi
shl eax, 8
mov edi, eax
movzx eax, byte [ecx + 7]
mov dword [esp + esi*8 + 0xac], ebp
mov ebp, edx
cdq
or edi, eax
movzx eax, byte [ecx + 8]
or ebp, edx
shld ebp, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 9]
or ebp, edx
shld ebp, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 0xa]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 0xb]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
or ebp, edx
shld ebp, edi, 8
movzx eax, byte [ecx + 0xc]
cdq
or ebp, edx
shl edi, 8
or edi, eax
shld ebp, edi, 8
movzx eax, byte [ecx + 0xd]
cdq
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 0xe]
or ebp, edx
cdq
shld edx, eax, 8
mov dword [ecx + ebx], edi
shl eax, 8
mov edi, eax
movzx eax, byte [ecx + 0xf]
mov dword [ecx + ebx + 4], ebp
mov ebp, edx
cdq
or edi, eax
movzx eax, byte [ecx + 0x10]
or ebp, edx
shld ebp, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 0x11]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 0x12]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 0x13]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 0x14]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 0x15]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
mov eax, dword [esp + 0x64]
mov dword [ecx + eax], edi
or ebp, edx
mov dword [ecx + eax + 4], ebp
movzx eax, byte [ecx + 0x16]
cdq
shld edx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ecx + 0x17]
mov ebp, edx
cdq
or edi, eax
movzx eax, byte [ecx + 0x18]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
or ebp, edx
shld ebp, edi, 8
movzx eax, byte [ecx + 0x19]
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 0x1a]
or ebp, edx
shld ebp, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 0x1b]
or ebp, edx
shld ebp, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 0x1c]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 0x1d]
or ebp, edx
shld ebp, edi, 8
cdq
shl edi, 8
or edi, eax
mov eax, dword [esp + 0x1c]
or ebp, edx
mov dword [ecx + eax], edi
mov dword [ecx + eax + 4], ebp
add esi, 4
add ecx, 0x20
cmp esi, 0x10
jl 0x10031de1
lea eax, [esp + 0x118]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x64], 0x10
mov ecx, dword [eax - 0x64]
mov edx, dword [eax - 0x68]
mov dword [esp + 0x6c], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edi, ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x68], edx
mov edx, ecx
mov ebp, eax
shld ebp, ecx, 3
add ecx, ecx
xor esi, esi
mov ebx, eax
shrd edi, ebx, 0x13
or esi, edi
add ecx, ecx
add ecx, ecx
shr ebx, 0x13
mov edi, eax
shl edx, 0xd
or edx, ebx
shr edi, 0x1d
or edi, ecx
mov ecx, dword [esp + 0x98]
shrd ecx, eax, 6
xor esi, edi
xor esi, ecx
mov ecx, dword [esp + 0x6c]
xor ebx, ebx
or ebx, ebp
xor edx, ebx
shr eax, 6
xor edx, eax
mov eax, dword [esp + 0x68]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
mov dword [esp + 0x10], esi
xor edi, edi
or edi, ebx
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x68]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x6c]
shrd eax, ecx, 7
xor esi, ebx
shr ecx, 7
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, ebp
xor edi, eax
mov eax, dword [esp + 0x1c]
add ecx, edi
adc edx, esi
add ecx, dword [eax - 0x70]
mov esi, dword [eax + 8]
adc edx, dword [eax - 0x6c]
add ecx, dword [eax - 0x28]
mov dword [esp + 0x80], esi
adc edx, dword [eax - 0x24]
mov dword [eax + 0x10], ecx
mov ecx, dword [eax - 0x60]
mov dword [eax + 0x14], edx
mov edx, dword [eax - 0x5c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x84], eax
mov esi, ecx
xor eax, eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
shl esi, 0x18
mov ebx, edx
mov edi, ecx
shrd edi, ebx, 8
or eax, edi
mov ebp, ecx
shrd ebp, edx, 1
shr edx, 1
shr ebx, 8
or esi, ebx
mov edi, ecx
shl edi, 0x1f
or edi, edx
mov edx, dword [esp + 0x8c]
shrd ecx, edx, 7
xor ebx, ebx
or ebx, ebp
xor eax, ebx
xor eax, ecx
mov ecx, dword [esp + 0x84]
xor esi, edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x80]
mov ebp, ecx
shr edx, 7
xor esi, edx
mov ebx, eax
shrd ebx, ebp, 0x13
xor edi, edi
or edi, ebx
mov ebx, ecx
mov edx, eax
shld ecx, eax, 3
shl edx, 0xd
add eax, eax
shr ebp, 0x13
or edx, ebp
add eax, eax
shr ebx, 0x1d
add eax, eax
or ebx, eax
mov eax, dword [esp + 0x84]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x80]
shrd ecx, eax, 6
xor edi, ebx
xor edi, ecx
mov ecx, dword [esp + 0x10]
xor edx, ebp
shr eax, 6
xor edx, eax
mov eax, dword [esp + 0x1c]
add ecx, edi
adc esi, edx
add ecx, dword [eax - 0x20]
mov edx, dword [eax - 0x58]
adc esi, dword [eax - 0x1c]
add ecx, dword [esp + 0x68]
mov dword [esp + 0x70], edx
adc esi, dword [esp + 0x6c]
mov dword [eax + 0x18], ecx
mov ecx, dword [eax - 0x54]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x74], ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov edi, ecx
mov ebx, eax
shrd edi, ebx, 0x13
mov edx, ecx
xor esi, esi
shr ebx, 0x13
or esi, edi
shl edx, 0xd
or edx, ebx
mov edi, eax
mov ebp, eax
mov dword [esp + 0x90], ecx
shr edi, 0x1d
xor ebx, ebx
shld ebp, ecx, 3
add ecx, ecx
add ecx, ecx
add ecx, ecx
or edi, ecx
mov ecx, dword [esp + 0x90]
shrd ecx, eax, 6
or ebx, ebp
xor edx, ebx
xor esi, edi
xor esi, ecx
mov ecx, dword [esp + 0x74]
mov ebp, ecx
shr eax, 6
xor edx, eax
mov eax, dword [esp + 0x70]
xor edi, edi
mov ebx, eax
shrd ebx, ebp, 8
or edi, ebx
mov dword [esp + 0x10], esi
mov esi, eax
shl esi, 0x18
mov ebx, eax
shrd eax, ecx, 1
shr ecx, 1
shr ebp, 8
or esi, ebp
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x74]
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x70]
shrd eax, ecx, 7
shr ecx, 7
xor esi, ebx
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor edi, ebp
xor edi, eax
mov eax, dword [esp + 0x1c]
add ecx, edi
adc edx, esi
add ecx, dword [eax - 0x18]
adc edx, dword [eax - 0x14]
add ecx, dword [esp + 0x88]
adc edx, dword [esp + 0x8c]
mov dword [eax + 0x20], ecx
mov ecx, dword [eax - 0x4c]
mov dword [eax + 0x24], edx
mov edx, dword [eax - 0x50]
mov dword [esp + 0x7c], ecx
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov edi, ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x78], edx
mov edx, ecx
mov ebp, eax
shld ebp, ecx, 3
mov ebx, eax
shrd edi, ebx, 0x13
add ecx, ecx
xor esi, esi
or esi, edi
add ecx, ecx
mov edi, eax
add ecx, ecx
shr ebx, 0x13
shr edi, 0x1d
or edi, ecx
mov ecx, dword [esp + 0xa0]
shl edx, 0xd
or edx, ebx
xor ebx, ebx
shrd ecx, eax, 6
or ebx, ebp
xor esi, edi
xor edx, ebx
shr eax, 6
xor esi, ecx
mov ecx, dword [esp + 0x7c]
xor edx, eax
mov eax, dword [esp + 0x78]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 8
xor edi, edi
or edi, ebx
mov dword [esp + 0x10], esi
mov esi, eax
mov ebx, eax
shrd eax, ecx, 1
shl esi, 0x18
shr ebp, 8
or esi, ebp
shr ecx, 1
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x7c]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x78]
shrd ecx, eax, 7
xor edi, ebp
shr eax, 7
xor esi, ebx
xor edi, ecx
mov ecx, dword [esp + 0x10]
xor esi, eax
mov eax, dword [esp + 0x1c]
add ecx, edi
adc edx, esi
add ecx, dword [eax - 0x10]
adc edx, dword [eax - 0xc]
add ecx, dword [esp + 0x70]
adc edx, dword [esp + 0x74]
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], edx
add eax, 0x20
sub dword [esp + 0x64], 1
mov dword [esp + 0x1c], eax
jne 0x10032011
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], 0
jmp 0x10032370
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov ebx, esi
mov ebp, edi
shld ebp, ebx, 0x17
shl ebx, 0x17
xor ecx, ecx
or ecx, ebp
mov eax, edi
shr eax, 9
or eax, ebx
xor ebp, ebp
mov ebx, esi
shrd esi, edi, 0x12
or ebp, esi
mov esi, dword [esp + 0x40]
xor eax, ebp
mov ebp, dword [esp + 0x44]
shl ebx, 0xe
shr edi, 0x12
or ebx, edi
xor ecx, ebx
xor ebx, ebx
mov edi, esi
shrd esi, ebp, 0xe
or ebx, esi
mov esi, dword [esp + 0x50]
xor eax, ebx
mov ebx, dword [esp + 0x48]
shr ebp, 0xe
xor ebx, esi
and ebx, dword [esp + 0x40]
shl edi, 0x12
or edi, ebp
mov ebp, dword [esp + 0x4c]
xor ecx, edi
mov edi, dword [esp + 0x54]
xor ebp, edi
and ebp, dword [esp + 0x44]
xor ebx, esi
mov esi, dword [esp + 0x1c]
xor ebp, edi
add eax, ebx
adc ecx, ebp
add eax, dword [esi + 0x100ce090]
mov ebx, edx
adc ecx, dword [esi + 0x100ce094]
add eax, dword [esp + esi + 0xa8]
mov ebp, edx
adc ecx, dword [esp + esi + 0xac]
add eax, dword [esp + 0x58]
adc ecx, dword [esp + 0x5c]
add dword [esp + 0x38], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x3c], ecx
mov dword [esp + 0x14], ecx
mov ecx, eax
shrd ecx, ebx, 0x1c
mov esi, eax
shld ebp, eax, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
xor ebx, ebx
or ebx, ebp
xor edi, edi
or edi, ecx
xor esi, ebx
mov ebx, dword [esp + 0x20]
shl eax, 0x1e
mov ecx, edx
shr ecx, 2
or ecx, eax
mov ebp, edx
shld ebp, ebx, 0x19
xor edi, ecx
mov eax, edx
shr eax, 7
xor ecx, ecx
shl ebx, 0x19
or ecx, ebp
or eax, ebx
mov ebp, dword [esp + 0x2c]
xor esi, ecx
mov ecx, dword [esp + 0x28]
xor edi, eax
mov eax, dword [esp + 0x20]
or ebp, edx
and ebp, dword [esp + 0x34]
mov ebx, ecx
or ebx, eax
and ebx, dword [esp + 0x30]
and ecx, eax
mov eax, dword [esp + 0x2c]
or ebx, ecx
and eax, edx
or ebp, eax
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x38]
mov ebx, esi
mov ebp, edi
shld ebp, ebx, 0x17
shl ebx, 0x17
mov eax, edi
shr eax, 9
or eax, ebx
xor ecx, ecx
or ecx, ebp
xor ebp, ebp
mov ebx, esi
shrd esi, edi, 0x12
or ebp, esi
mov esi, dword [esp + 0x38]
xor eax, ebp
mov ebp, dword [esp + 0x3c]
shl ebx, 0xe
shr edi, 0x12
or ebx, edi
xor ecx, ebx
mov edi, esi
shrd esi, ebp, 0xe
shr ebp, 0xe
xor ebx, ebx
or ebx, esi
mov esi, dword [esp + 0x48]
shl edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [esp + 0x4c]
xor eax, ebx
mov ebx, esi
xor ebx, dword [esp + 0x40]
mov ebp, edi
xor ebp, dword [esp + 0x44]
and ebx, dword [esp + 0x38]
and ebp, dword [esp + 0x3c]
xor ebx, esi
mov esi, dword [esp + 0x1c]
xor ebp, edi
add eax, ebx
adc ecx, ebp
add eax, dword [esi + 0x100ce098]
adc ecx, dword [esi + 0x100ce09c]
add eax, dword [esp + esi + 0xb0]
adc ecx, dword [esp + esi + 0xb4]
add eax, dword [esp + 0x50]
adc ecx, dword [esp + 0x54]
add dword [esp + 0x30], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
adc dword [esp + 0x34], ecx
mov esi, eax
xor edi, edi
mov dword [esp + 0x14], ecx
shl esi, 4
mov ecx, dword [esp + 0x5c]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x1c
or edi, ebx
shr ebp, 0x1c
or esi, ebp
xor ebp, ebp
mov ebx, ecx
shld ecx, eax, 0x1e
or ebp, ecx
xor esi, ebp
mov ebp, dword [esp + 0x58]
shr ebx, 2
shl eax, 0x1e
or ebx, eax
mov eax, dword [esp + 0x5c]
xor edi, ebx
xor ebx, ebx
mov ecx, eax
shld eax, ebp, 0x19
or ebx, eax
mov eax, dword [esp + 0x58]
xor esi, ebx
shl ebp, 0x19
shr ecx, 7
or ecx, ebp
mov ebp, dword [esp + 0x5c]
xor edi, ecx
mov ecx, dword [esp + 0x20]
or ebp, edx
and ebp, dword [esp + 0x2c]
mov ebx, eax
or ebx, ecx
and ebx, dword [esp + 0x28]
and eax, ecx
mov ecx, dword [esp + 0x5c]
or ebx, eax
and ecx, edx
or ebp, ecx
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x30]
mov ebp, edi
mov ebx, esi
shld ebp, ebx, 0x17
mov eax, edi
shl ebx, 0x17
shr eax, 9
or eax, ebx
mov ebx, esi
shrd esi, edi, 0x12
xor ecx, ecx
or ecx, ebp
xor ebp, ebp
or ebp, esi
mov esi, dword [esp + 0x30]
shl ebx, 0xe
shr edi, 0x12
or ebx, edi
xor eax, ebp
mov ebp, dword [esp + 0x34]
mov edi, esi
shrd esi, ebp, 0xe
xor ecx, ebx
xor ebx, ebx
or ebx, esi
mov esi, dword [esp + 0x40]
shr ebp, 0xe
shl edi, 0x12
or edi, ebp
mov ebp, dword [esp + 0x3c]
xor eax, ebx
mov ebx, dword [esp + 0x38]
xor ecx, edi
xor ebx, esi
and ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
xor ebp, edi
and ebp, dword [esp + 0x34]
xor ebx, esi
mov esi, dword [esp + 0x1c]
xor ebp, edi
add eax, ebx
adc ecx, ebp
add eax, dword [esi + 0x100ce0a0]
adc ecx, dword [esi + 0x100ce0a4]
add eax, dword [esp + esi + 0xb8]
adc ecx, dword [esp + esi + 0xbc]
add eax, dword [esp + 0x48]
adc ecx, dword [esp + 0x4c]
add dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
adc dword [esp + 0x2c], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x1c
shr ebp, 0x1c
xor edi, edi
or edi, ebx
mov esi, eax
mov ebx, ecx
shld ecx, eax, 0x1e
shl esi, 4
or esi, ebp
xor ebp, ebp
or ebp, ecx
shr ebx, 2
xor esi, ebp
mov ebp, dword [esp + 0x50]
shl eax, 0x1e
or ebx, eax
mov eax, dword [esp + 0x54]
xor edi, ebx
mov ecx, eax
shld eax, ebp, 0x19
shl ebp, 0x19
xor ebx, ebx
or ebx, eax
mov eax, dword [esp + 0x5c]
shr ecx, 7
or ecx, ebp
mov ebp, dword [esp + 0x54]
xor esi, ebx
xor edi, ecx
mov ecx, dword [esp + 0x50]
or ebp, eax
and ebp, edx
mov edx, dword [esp + 0x54]
mov ebx, ecx
or ebx, dword [esp + 0x58]
and ecx, dword [esp + 0x58]
and ebx, dword [esp + 0x20]
and edx, eax
or ebx, ecx
or ebp, edx
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x2c]
mov edx, esi
mov esi, dword [esp + 0x28]
mov ebx, esi
mov ebp, edi
shld ebp, ebx, 0x17
mov eax, edi
shr eax, 9
shl ebx, 0x17
xor ecx, ecx
or eax, ebx
mov dword [esp + 0x4c], edx
or ecx, ebp
xor ebp, ebp
mov ebx, esi
shrd esi, edi, 0x12
or ebp, esi
mov esi, dword [esp + 0x28]
xor eax, ebp
mov ebp, dword [esp + 0x2c]
shl ebx, 0xe
shr edi, 0x12
or ebx, edi
xor ecx, ebx
xor ebx, ebx
mov edi, esi
shrd esi, ebp, 0xe
or ebx, esi
mov esi, dword [esp + 0x38]
xor eax, ebx
shr ebp, 0xe
shl edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [esp + 0x3c]
mov ebx, esi
xor ebx, dword [esp + 0x30]
mov ebp, edi
and ebx, dword [esp + 0x28]
xor ebp, dword [esp + 0x34]
xor ebx, esi
and ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
xor ebp, edi
add eax, ebx
adc ecx, ebp
add eax, dword [esi + 0x100ce0a8]
mov ebx, edx
adc ecx, dword [esi + 0x100ce0ac]
add eax, dword [esp + esi + 0xc0]
mov ebp, edx
adc ecx, dword [esp + esi + 0xc4]
add eax, dword [esp + 0x40]
adc ecx, dword [esp + 0x44]
add dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
adc dword [esp + 0x24], ecx
mov dword [esp + 0x14], ecx
mov ecx, eax
shrd ecx, ebx, 0x1c
mov esi, eax
shld ebp, eax, 0x1e
shr ebx, 0x1c
shl esi, 4
or esi, ebx
xor ebx, ebx
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x48]
xor edi, edi
or edi, ecx
shl eax, 0x1e
mov ecx, edx
shr ecx, 2
or ecx, eax
mov ebp, edx
shld ebp, ebx, 0x19
xor edi, ecx
shl ebx, 0x19
mov eax, edx
shr eax, 7
or eax, ebx
xor ecx, ecx
or ecx, ebp
xor edi, eax
mov eax, dword [esp + 0x48]
xor esi, ecx
mov ecx, dword [esp + 0x50]
mov ebx, eax
mov ebp, edx
or ebp, dword [esp + 0x54]
or ebx, ecx
and ebx, dword [esp + 0x58]
and ebp, dword [esp + 0x5c]
and edx, dword [esp + 0x54]
and eax, ecx
or ebx, eax
or ebp, edx
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x24]
mov edx, esi
mov esi, dword [esp + 0x20]
mov ebx, esi
mov ebp, edi
shld ebp, ebx, 0x17
shl ebx, 0x17
xor ecx, ecx
or ecx, ebp
mov eax, edi
shr eax, 9
or eax, ebx
xor ebp, ebp
mov ebx, esi
shrd esi, edi, 0x12
or ebp, esi
mov esi, dword [esp + 0x20]
shl ebx, 0xe
xor eax, ebp
mov ebp, dword [esp + 0x24]
shr edi, 0x12
or ebx, edi
xor ecx, ebx
xor ebx, ebx
mov edi, esi
shrd esi, ebp, 0xe
or ebx, esi
mov esi, dword [esp + 0x30]
shr ebp, 0xe
shl edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [esp + 0x34]
xor eax, ebx
mov ebx, esi
xor ebx, dword [esp + 0x28]
mov ebp, edi
xor ebp, dword [esp + 0x2c]
and ebx, dword [esp + 0x20]
and ebp, dword [esp + 0x24]
xor ebx, esi
mov esi, dword [esp + 0x1c]
xor ebp, edi
add eax, ebx
adc ecx, ebp
add eax, dword [esi + 0x100ce0b0]
mov ebx, edx
adc ecx, dword [esi + 0x100ce0b4]
add eax, dword [esp + esi + 0xc8]
mov ebp, edx
adc ecx, dword [esp + esi + 0xcc]
add eax, dword [esp + 0x38]
mov dword [esp + 0x44], edx
adc ecx, dword [esp + 0x3c]
add dword [esp + 0x58], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x5c], ecx
mov dword [esp + 0x14], ecx
mov ecx, eax
shrd ecx, ebx, 0x1c
mov esi, eax
xor edi, edi
shr ebx, 0x1c
or edi, ecx
shl esi, 4
or esi, ebx
mov ecx, edx
shr ecx, 2
xor ebx, ebx
shld ebp, eax, 0x1e
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x40]
shl eax, 0x1e
or ecx, eax
xor edi, ecx
xor ecx, ecx
mov ebp, edx
shld ebp, ebx, 0x19
or ecx, ebp
mov ebp, dword [esp + 0x4c]
shl ebx, 0x19
xor esi, ecx
mov ecx, dword [esp + 0x48]
or ebp, edx
and ebp, dword [esp + 0x54]
mov eax, edx
shr eax, 7
or eax, ebx
xor edi, eax
mov eax, dword [esp + 0x40]
mov ebx, ecx
or ebx, eax
and ebx, dword [esp + 0x50]
and ecx, eax
mov eax, dword [esp + 0x4c]
or ebx, ecx
and eax, edx
or ebp, eax
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x58]
mov ebp, edi
mov ebx, esi
shld ebp, ebx, 0x17
shl ebx, 0x17
mov eax, edi
shr eax, 9
or eax, ebx
xor ecx, ecx
or ecx, ebp
xor ebp, ebp
mov ebx, esi
shrd esi, edi, 0x12
or ebp, esi
mov esi, dword [esp + 0x58]
shl ebx, 0xe
xor eax, ebp
mov ebp, dword [esp + 0x5c]
shr edi, 0x12
or ebx, edi
xor ecx, ebx
mov edi, esi
shrd esi, ebp, 0xe
shr ebp, 0xe
xor ebx, ebx
or ebx, esi
mov esi, dword [esp + 0x28]
shl edi, 0x12
or edi, ebp
xor eax, ebx
xor ecx, edi
mov edi, dword [esp + 0x2c]
mov ebx, esi
xor ebx, dword [esp + 0x20]
mov ebp, edi
xor ebp, dword [esp + 0x24]
and ebx, dword [esp + 0x58]
and ebp, dword [esp + 0x5c]
xor ebx, esi
mov esi, dword [esp + 0x1c]
xor ebp, edi
add eax, ebx
adc ecx, ebp
add eax, dword [esi + 0x100ce0b8]
adc ecx, dword [esi + 0x100ce0bc]
add eax, dword [esp + esi + 0xd0]
adc ecx, dword [esp + esi + 0xd4]
add eax, dword [esp + 0x30]
adc ecx, dword [esp + 0x34]
add dword [esp + 0x50], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
adc dword [esp + 0x54], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x1c
shr ebp, 0x1c
xor edi, edi
or edi, ebx
mov esi, eax
mov ebx, ecx
shld ecx, eax, 0x1e
shr ebx, 2
shl esi, 4
or esi, ebp
xor ebp, ebp
or ebp, ecx
xor esi, ebp
mov ebp, dword [esp + 0x38]
shl eax, 0x1e
or ebx, eax
mov eax, dword [esp + 0x3c]
xor edi, ebx
mov ecx, eax
shld eax, ebp, 0x19
xor ebx, ebx
or ebx, eax
mov eax, dword [esp + 0x38]
xor esi, ebx
shl ebp, 0x19
shr ecx, 7
or ecx, ebp
mov ebp, dword [esp + 0x3c]
xor edi, ecx
mov ecx, dword [esp + 0x40]
mov ebx, eax
or ebx, ecx
and ebx, dword [esp + 0x48]
and eax, ecx
mov ecx, dword [esp + 0x3c]
or ebp, edx
and ebp, dword [esp + 0x4c]
or ebx, eax
and ecx, edx
or ebp, ecx
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x50]
mov ebp, edi
mov ebx, esi
shld ebp, ebx, 0x17
mov eax, edi
shl ebx, 0x17
shr eax, 9
or eax, ebx
mov ebx, esi
shrd esi, edi, 0x12
xor ecx, ecx
or ecx, ebp
shr edi, 0x12
xor ebp, ebp
shl ebx, 0xe
or ebp, esi
mov esi, dword [esp + 0x50]
or ebx, edi
xor eax, ebp
xor ecx, ebx
mov edi, esi
xor ebx, ebx
mov ebp, dword [esp + 0x54]
shrd esi, ebp, 0xe
or ebx, esi
mov esi, dword [esp + 0x20]
xor eax, ebx
mov ebx, dword [esp + 0x58]
shr ebp, 0xe
xor ebx, esi
and ebx, dword [esp + 0x50]
shl edi, 0x12
or edi, ebp
mov ebp, dword [esp + 0x5c]
xor ecx, edi
mov edi, dword [esp + 0x24]
xor ebp, edi
and ebp, dword [esp + 0x54]
xor ebx, esi
mov esi, dword [esp + 0x1c]
xor ebp, edi
add eax, ebx
adc ecx, ebp
add eax, dword [esi + 0x100ce0c0]
adc ecx, dword [esi + 0x100ce0c4]
add eax, dword [esp + esi + 0xd8]
adc ecx, dword [esp + esi + 0xdc]
add eax, dword [esp + 0x28]
adc ecx, dword [esp + 0x2c]
add dword [esp + 0x48], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
adc dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov ebp, ecx
mov ebx, eax
shrd ebx, ebp, 0x1c
shr ebp, 0x1c
xor edi, edi
or edi, ebx
mov ebx, ecx
mov esi, eax
shld ecx, eax, 0x1e
shl esi, 4
or esi, ebp
xor ebp, ebp
or ebp, ecx
shr ebx, 2
xor esi, ebp
mov ebp, dword [esp + 0x30]
shl eax, 0x1e
or ebx, eax
mov eax, dword [esp + 0x34]
xor edi, ebx
mov ecx, eax
shld eax, ebp, 0x19
shl ebp, 0x19
shr ecx, 7
or ecx, ebp
mov ebp, dword [esp + 0x3c]
or ebp, dword [esp + 0x34]
xor ebx, ebx
or ebx, eax
mov eax, dword [esp + 0x30]
xor esi, ebx
xor edi, ecx
mov ecx, dword [esp + 0x38]
and ebp, edx
mov edx, dword [esp + 0x3c]
and edx, dword [esp + 0x34]
mov ebx, ecx
or ebx, eax
and ebx, dword [esp + 0x40]
and ecx, eax
or ebx, ecx
or ebp, edx
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov ebx, edx
mov ebp, edi
shld ebp, ebx, 0x17
shl ebx, 0x17
xor ecx, ecx
or ecx, ebp
mov eax, edi
shr eax, 9
or eax, ebx
xor ebp, ebp
mov ebx, edx
shrd edx, edi, 0x12
or ebp, edx
mov edx, dword [esp + 0x48]
xor eax, ebp
mov ebp, dword [esp + 0x4c]
shl ebx, 0xe
shr edi, 0x12
or ebx, edi
xor ecx, ebx
xor ebx, ebx
mov edi, edx
shrd edx, ebp, 0xe
or ebx, edx
mov edx, dword [esp + 0x58]
xor eax, ebx
mov ebx, dword [esp + 0x50]
shr ebp, 0xe
xor ebx, edx
and ebx, dword [esp + 0x48]
shl edi, 0x12
or edi, ebp
mov ebp, dword [esp + 0x54]
xor ecx, edi
mov edi, dword [esp + 0x5c]
xor ebp, edi
and ebp, dword [esp + 0x4c]
xor ebx, edx
mov edx, dword [esp + 0x1c]
xor ebp, edi
add eax, ebx
adc ecx, ebp
add eax, dword [edx + 0x100ce0c8]
mov ebx, esi
adc ecx, dword [edx + 0x100ce0cc]
add eax, dword [esp + edx + 0xe0]
mov ebp, esi
adc ecx, dword [esp + edx + 0xe4]
add eax, dword [esp + 0x20]
adc ecx, dword [esp + 0x24]
add dword [esp + 0x40], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
adc dword [esp + 0x44], ecx
mov dword [esp + 0x14], ecx
mov ecx, eax
shrd ecx, ebx, 0x1c
mov edx, eax
shld ebp, eax, 0x1e
shr ebx, 0x1c
shl edx, 4
or edx, ebx
xor ebx, ebx
or ebx, ebp
xor edi, edi
or edi, ecx
xor edx, ebx
mov ebx, dword [esp + 0x28]
shl eax, 0x1e
mov ecx, esi
shr ecx, 2
or ecx, eax
mov ebp, esi
shld ebp, ebx, 0x19
xor edi, ecx
mov eax, esi
shr eax, 7
xor ecx, ecx
shl ebx, 0x19
or eax, ebx
or ecx, ebp
mov ebp, dword [esp + 0x34]
xor edx, ecx
mov ecx, dword [esp + 0x30]
xor edi, eax
mov eax, dword [esp + 0x28]
mov ebx, ecx
or ebx, eax
and ebx, dword [esp + 0x38]
and ecx, eax
mov eax, dword [esp + 0x34]
or ebp, esi
and ebp, dword [esp + 0x3c]
and eax, esi
or ebp, eax
mov eax, dword [esp + 0x1c]
or ebx, ecx
add edi, ebx
adc edx, ebp
add edi, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
add eax, 0x40
cmp eax, 0x280
mov ecx, edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], eax
jl 0x10032370
mov eax, dword [esp + 0x32c]
add dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x28]
pop edi
adc dword [eax + 0x14], edx
add dword [eax + 0x18], ecx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
adc dword [eax + 0x1c], esi
add dword [eax + 0x20], edx
mov edx, dword [esp + 0x34]
pop esi
adc dword [eax + 0x24], ecx
add dword [eax + 0x28], edx
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
adc dword [eax + 0x2c], ecx
add dword [eax + 0x30], edx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
adc dword [eax + 0x34], ecx
add dword [eax + 0x38], edx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
adc dword [eax + 0x3c], ecx
add dword [eax + 0x40], edx
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
adc dword [eax + 0x44], ecx
add dword [eax + 0x48], edx
mov ecx, dword [esp + 0x54]
pop ebp
adc dword [eax + 0x4c], ecx
xor eax, eax
pop ebx
add esp, 0x318
ret