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

Disassembly:
mov edx, dword [esp + 0xc]
sub esp, 0x320
test edx, edx
jle 0x100c7604
mov eax, dword [esp + 0x328]
push ebx
push ebp
push esi
lea esi, [esp + 0xba]
sub esi, eax
push edi
lea ecx, [eax + 2]
mov dword [esp + 0x88], esi
mov dword [esp + 0x78], edx
xor edi, edi
movzx eax, byte [ecx - 2]
cdq
shld edx, eax, 8
shl eax, 8
mov ebx, eax
movzx eax, byte [ecx - 1]
mov ebp, edx
cdq
or ebx, eax
or ebp, edx
shld ebp, ebx, 8
movzx eax, byte [ecx]
shl ebx, 8
cdq
or ebx, eax
or ebp, edx
shld ebp, ebx, 8
movzx eax, byte [ecx + 1]
shl ebx, 8
cdq
or ebx, eax
movzx eax, byte [ecx + 2]
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
movzx eax, byte [ecx + 3]
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
movzx eax, byte [ecx + 4]
or ebp, edx
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 5]
or ebp, edx
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 6]
or ebp, edx
cdq
shld edx, eax, 8
mov dword [esp + edi*8 + 0xb0], ebx
shl eax, 8
mov ebx, eax
movzx eax, byte [ecx + 7]
mov dword [esp + edi*8 + 0xb4], ebp
mov ebp, edx
cdq
or ebx, eax
movzx eax, byte [ecx + 8]
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
movzx eax, byte [ecx + 9]
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
movzx eax, byte [ecx + 0xa]
or ebp, edx
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 0xb]
or ebp, edx
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
or ebp, edx
shld ebp, ebx, 8
movzx eax, byte [ecx + 0xc]
shl ebx, 8
cdq
or ebx, eax
or ebp, edx
shld ebp, ebx, 8
movzx eax, byte [ecx + 0xd]
cdq
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 0xe]
or ebp, edx
cdq
shld edx, eax, 8
mov dword [ecx + esi - 8], ebx
shl eax, 8
mov ebx, eax
movzx eax, byte [ecx + 0xf]
mov dword [ecx + esi - 4], ebp
mov ebp, edx
cdq
or ebx, eax
movzx eax, byte [ecx + 0x10]
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
movzx eax, byte [ecx + 0x11]
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
movzx eax, byte [ecx + 0x12]
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
movzx eax, byte [ecx + 0x13]
or ebp, edx
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 0x14]
or ebp, edx
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 0x15]
or ebp, edx
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 0x16]
or ebp, edx
cdq
shld edx, eax, 8
mov dword [ecx + esi], ebx
shl eax, 8
mov ebx, eax
movzx eax, byte [ecx + 0x17]
mov dword [ecx + esi + 4], ebp
mov ebp, edx
cdq
or ebx, eax
movzx eax, byte [ecx + 0x18]
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
movzx eax, byte [ecx + 0x19]
cdq
or ebx, eax
movzx eax, byte [ecx + 0x1a]
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
movzx eax, byte [ecx + 0x1b]
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
movzx eax, byte [ecx + 0x1c]
or ebp, edx
shld ebp, ebx, 8
shl ebx, 8
cdq
or ebx, eax
movzx eax, byte [ecx + 0x1d]
or ebp, edx
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
or ebp, edx
mov dword [ecx + esi + 8], ebx
mov dword [ecx + esi + 0xc], ebp
add edi, 4
add ecx, 0x20
cmp edi, 0x10
jl 0x100c66e6
lea eax, [esp + 0x120]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x84], 0x10
lea ebx, [ebx]
mov ecx, dword [eax - 0x68]
mov edx, dword [eax - 0x64]
mov dword [esp + 0x68], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edi, ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x6c], 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 + 0xa8]
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 + 0x5c], 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 + 0x5c]
xor edi, ebp
xor edi, eax
mov eax, dword [esp + 0x50]
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 + 0x7c], 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 + 0x80], eax
mov esi, ecx
xor eax, eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], 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 + 0x90]
shrd ecx, edx, 7
xor ebx, ebx
or ebx, ebp
xor eax, ebx
xor eax, ecx
mov ecx, dword [esp + 0x80]
xor esi, edi
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x7c]
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 + 0x80]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x7c]
shrd ecx, eax, 6
xor edi, ebx
xor edi, ecx
mov ecx, dword [esp + 0x5c]
xor edx, ebp
shr eax, 6
xor edx, eax
mov eax, dword [esp + 0x50]
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 + 0x60], edx
adc esi, dword [esp + 0x6c]
mov dword [eax + 0x18], ecx
mov ecx, dword [eax - 0x54]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x64], 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 + 0xa0], 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 + 0xa0]
shrd ecx, eax, 6
or ebx, ebp
xor edx, ebx
xor esi, edi
xor esi, ecx
mov ecx, dword [esp + 0x64]
mov ebp, ecx
shr eax, 6
xor edx, eax
mov eax, dword [esp + 0x60]
xor edi, edi
mov ebx, eax
shrd ebx, ebp, 8
or edi, ebx
mov dword [esp + 0x5c], 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 + 0x64]
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x60]
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 + 0x50]
add ecx, edi
adc edx, esi
add ecx, dword [eax - 0x18]
adc edx, dword [eax - 0x14]
add ecx, dword [esp + 0x8c]
adc edx, dword [esp + 0x90]
mov dword [eax + 0x20], ecx
mov ecx, dword [eax - 0x4c]
mov dword [eax + 0x24], edx
mov edx, dword [eax - 0x50]
mov dword [esp + 0x74], ecx
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov edi, ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x70], 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 + 0x98]
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 + 0x74]
xor edx, eax
mov eax, dword [esp + 0x70]
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 + 0x74]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x70]
shrd ecx, eax, 7
xor edi, ebp
shr eax, 7
xor esi, ebx
xor edi, ecx
mov ecx, dword [esp + 0x5c]
xor esi, eax
mov eax, dword [esp + 0x50]
add ecx, edi
adc edx, esi
add ecx, dword [eax - 0x10]
adc edx, dword [eax - 0xc]
add ecx, dword [esp + 0x60]
adc edx, dword [esp + 0x64]
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], edx
add eax, 0x20
sub dword [esp + 0x84], 1
mov dword [esp + 0x50], eax
jne 0x100c6920
mov eax, dword [esp + 0x334]
mov ecx, dword [eax + 0x10c]
mov edx, dword [eax + 0x108]
mov edi, dword [eax + 0x12c]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x114]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x11c]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x124]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x130]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 0x110]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 0x134]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 0x118]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x138]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 0x120]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x13c]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x128]
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + 0x140]
mov eax, dword [eax + 0x144]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 0
mov ebx, edi
mov eax, edi
xor ecx, ecx
mov esi, edx
shld ebx, esi, 0x17
or ecx, ebx
xor ebx, ebx
shl esi, 0x17
mov ebp, edx
shrd ebp, edi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x34]
shr edi, 0x12
shr eax, 9
or eax, esi
xor eax, ebx
mov esi, edx
shl esi, 0xe
or esi, edi
xor ecx, esi
mov ebx, edx
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor eax, edi
mov esi, edx
shr ebp, 0xe
shl esi, 0x12
or esi, ebp
mov ebp, dword [esp + 0x38]
xor ecx, esi
mov esi, dword [esp + 0x34]
and ebp, edx
mov edi, edx
mov edx, dword [esp + 0x3c]
and edx, esi
not edi
and edi, dword [esp + 0x40]
mov ebx, esi
mov esi, dword [esp + 0x14]
xor edi, ebp
not ebx
and ebx, dword [esp + 0x44]
mov ebp, esi
xor ebx, edx
mov edx, dword [esp + 0x50]
add eax, edi
adc ecx, ebx
add eax, dword [edx + 0x101be5e8]
mov ebx, esi
adc ecx, dword [edx + 0x101be5ec]
add eax, dword [esp + edx + 0xb0]
adc ecx, dword [esp + edx + 0xb4]
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
adc ecx, dword [esp + 0x4c]
mov edi, edx
shrd edi, ebx, 0x1c
mov dword [esp + 0x54], eax
mov eax, edx
shld ebp, edx, 0x1e
mov dword [esp + 0x58], ecx
shr ebx, 0x1c
xor ecx, ecx
or ecx, edi
shl eax, 4
or eax, ebx
xor ebx, ebx
shl edx, 0x1e
mov edi, esi
shr edi, 2
or edi, edx
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x10]
xor ecx, edi
mov edx, esi
mov ebp, esi
shr edx, 7
xor edi, edi
shld ebp, ebx, 0x19
or edi, ebp
shl ebx, 0x19
or edx, ebx
mov ebp, dword [esp + 0x1c]
xor ecx, edx
mov edx, dword [esp + 0x18]
xor eax, edi
mov edi, dword [esp + 0x10]
mov ebx, edx
xor ebx, edi
and ebx, dword [esp + 0x20]
and edx, edi
mov edi, dword [esp + 0x1c]
xor ebx, edx
mov edx, dword [esp + 0x40]
xor ebp, esi
and ebp, dword [esp + 0x24]
and edi, esi
xor ebp, edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x38]
add ecx, ebx
adc eax, ebp
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x28]
add edx, ebx
adc edi, dword [esp + 0x58]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x18]
add ecx, ebx
adc eax, dword [esp + 0x58]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x10]
mov ebx, edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], eax
mov eax, edi
mov esi, edx
shld ebx, esi, 0x17
mov dword [esp + 0x10], ecx
shl esi, 0x17
xor ecx, ecx
or ecx, ebx
mov ebp, edx
shrd ebp, edi, 0x12
xor ebx, ebx
or ebx, ebp
mov ebp, dword [esp + 0x34]
shr eax, 9
or eax, esi
xor eax, ebx
mov esi, edx
shl esi, 0xe
shr edi, 0x12
or esi, edi
mov ebx, edx
shrd ebx, ebp, 0xe
xor ecx, esi
mov esi, edx
xor edi, edi
shl esi, 0x12
shr ebp, 0xe
mov dword [esp + 0x30], edx
or edi, ebx
or esi, ebp
mov ebp, dword [esp + 0x38]
xor ecx, esi
mov esi, dword [esp + 0x34]
xor eax, edi
and ebp, edx
mov ebx, esi
not ebx
and ebx, dword [esp + 0x44]
mov edi, edx
mov edx, dword [esp + 0x3c]
and edx, esi
mov esi, dword [esp + 0x10]
xor ebx, edx
mov edx, dword [esp + 0x50]
not edi
and edi, dword [esp + 0x40]
xor edi, ebp
add eax, edi
adc ecx, ebx
add eax, dword [edx + 0x101be5f0]
mov edi, esi
adc ecx, dword [edx + 0x101be5f4]
add eax, dword [esp + edx + 0xb8]
adc ecx, dword [esp + edx + 0xbc]
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
adc ecx, dword [esp + 0x4c]
mov dword [esp + 0x54], eax
mov eax, esi
mov ebx, edx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
shl eax, 4
or eax, ebx
xor ebx, ebx
mov ebp, edx
shld ebp, esi, 0x1e
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x10]
shl esi, 0x1e
mov dword [esp + 0x58], ecx
xor ecx, ecx
or ecx, edi
mov edi, edx
shr edi, 2
or edi, esi
mov ebp, edx
shld ebp, ebx, 0x19
xor ecx, edi
shl ebx, 0x19
xor edi, edi
or edi, ebp
mov ebp, dword [esp + 0x1c]
mov esi, edx
shr esi, 7
or esi, ebx
xor ecx, esi
mov esi, dword [esp + 0x18]
xor eax, edi
mov edi, dword [esp + 0x10]
mov ebx, esi
xor ebx, edi
and ebx, dword [esp + 0x20]
and esi, edi
mov edi, dword [esp + 0x1c]
xor ebx, esi
mov esi, dword [esp + 0x40]
xor ebp, edx
and ebp, dword [esp + 0x24]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x44]
and edi, edx
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x38]
xor ebp, edi
add ecx, ebx
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x3c]
adc eax, ebp
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x28]
add esi, ebx
adc edi, dword [esp + 0x58]
add ecx, ebx
adc eax, dword [esp + 0x58]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x10]
mov ebx, edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
mov eax, edi
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov edx, esi
shld ebx, edx, 0x17
or ecx, ebx
shl edx, 0x17
xor ebx, ebx
shr eax, 9
or eax, edx
mov ebp, esi
shrd ebp, edi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x34]
xor eax, ebx
shr edi, 0x12
mov edx, esi
shl edx, 0xe
or edx, edi
xor ecx, edx
mov ebx, esi
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
shr ebp, 0xe
mov edx, esi
shl edx, 0x12
or edx, ebp
mov ebp, dword [esp + 0x38]
xor ecx, edx
mov edx, dword [esp + 0x34]
xor eax, edi
and ebp, esi
mov edi, esi
mov ebx, edx
not edi
and edi, dword [esp + 0x40]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x3c]
and esi, edx
mov edx, dword [esp + 0x50]
not ebx
and ebx, dword [esp + 0x44]
xor edi, ebp
xor ebx, esi
add eax, edi
adc ecx, ebx
add eax, dword [edx + 0x101be5f8]
adc ecx, dword [edx + 0x101be5fc]
add eax, dword [esp + edx + 0xc0]
adc ecx, dword [esp + edx + 0xc4]
add eax, dword [esp + 0x48]
adc ecx, dword [esp + 0x4c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov edi, esi
mov eax, esi
shl eax, 4
mov ebx, edx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
or eax, ebx
xor ebx, ebx
mov ebp, edx
shld ebp, esi, 0x1e
or ebx, ebp
shl esi, 0x1e
xor eax, ebx
mov ebx, dword [esp + 0x10]
xor ecx, ecx
or ecx, edi
mov edi, edx
shr edi, 2
or edi, esi
xor ecx, edi
xor edi, edi
mov ebp, edx
shld ebp, ebx, 0x19
or edi, ebp
mov ebp, dword [esp + 0x1c]
shl ebx, 0x19
xor eax, edi
mov edi, dword [esp + 0x10]
mov esi, edx
shr esi, 7
or esi, ebx
xor ecx, esi
mov esi, dword [esp + 0x18]
mov ebx, esi
and esi, edi
xor ebx, edi
and ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
xor ebx, esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x44]
xor ebp, edx
and ebp, dword [esp + 0x24]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x3c]
and edi, edx
xor ebp, edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x30]
add ecx, ebx
mov ebx, dword [esp + 0x54]
adc eax, ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x24]
add esi, ebx
adc edi, dword [esp + 0x58]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x1c]
add ecx, ebx
adc eax, dword [esp + 0x58]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov ebx, edi
mov eax, edi
xor ecx, ecx
mov edx, esi
shld ebx, edx, 0x17
or ecx, ebx
xor ebx, ebx
shl edx, 0x17
mov ebp, esi
shrd ebp, edi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x34]
shr edi, 0x12
shr eax, 9
or eax, edx
xor eax, ebx
mov edx, esi
shl edx, 0xe
or edx, edi
xor ecx, edx
xor edi, edi
mov ebx, esi
shrd ebx, ebp, 0xe
or edi, ebx
xor eax, edi
shr ebp, 0xe
mov edx, esi
shl edx, 0x12
or edx, ebp
mov ebp, dword [esp + 0x38]
xor ecx, edx
mov edx, dword [esp + 0x34]
and ebp, esi
mov edi, esi
mov esi, dword [esp + 0x3c]
and esi, edx
not edi
and edi, dword [esp + 0x40]
mov ebx, edx
mov edx, dword [esp + 0x50]
xor edi, ebp
not ebx
and ebx, dword [esp + 0x44]
xor ebx, esi
mov esi, dword [esp + 0x10]
add eax, edi
adc ecx, ebx
add eax, dword [edx + 0x101be600]
mov edi, esi
adc ecx, dword [edx + 0x101be604]
add eax, dword [esp + edx + 0xc8]
adc ecx, dword [esp + edx + 0xcc]
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
adc ecx, dword [esp + 0x4c]
mov ebx, edx
shrd edi, ebx, 0x1c
mov dword [esp + 0x54], eax
mov eax, esi
mov dword [esp + 0x58], ecx
shr ebx, 0x1c
xor ecx, ecx
or ecx, edi
mov ebp, edx
shld ebp, esi, 0x1e
shl eax, 4
or eax, ebx
xor ebx, ebx
shl esi, 0x1e
mov edi, edx
shr edi, 2
or edi, esi
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x10]
xor ecx, edi
mov esi, edx
mov ebp, edx
shr esi, 7
xor edi, edi
shld ebp, ebx, 0x19
or edi, ebp
shl ebx, 0x19
or esi, ebx
mov ebp, dword [esp + 0x1c]
xor ecx, esi
mov esi, dword [esp + 0x18]
xor eax, edi
mov edi, dword [esp + 0x10]
mov ebx, esi
xor ebx, edi
and ebx, dword [esp + 0x20]
and esi, edi
mov edi, dword [esp + 0x1c]
xor ebx, esi
mov esi, dword [esp + 0x40]
xor ebp, edx
and ebp, dword [esp + 0x24]
and edi, edx
xor ebp, edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x38]
add ecx, ebx
adc eax, ebp
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x28]
add esi, ebx
adc edi, dword [esp + 0x58]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x18]
add ecx, ebx
adc eax, dword [esp + 0x58]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x10]
mov ebx, edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], eax
mov eax, edi
mov edx, esi
shld ebx, edx, 0x17
mov dword [esp + 0x10], ecx
shl edx, 0x17
xor ecx, ecx
or ecx, ebx
mov ebp, esi
shrd ebp, edi, 0x12
xor ebx, ebx
or ebx, ebp
mov ebp, dword [esp + 0x34]
shr eax, 9
or eax, edx
xor eax, ebx
mov edx, esi
shl edx, 0xe
shr edi, 0x12
or edx, edi
mov ebx, esi
shrd ebx, ebp, 0xe
xor ecx, edx
mov edx, esi
xor edi, edi
shl edx, 0x12
shr ebp, 0xe
mov dword [esp + 0x30], esi
or edi, ebx
or edx, ebp
mov ebp, dword [esp + 0x38]
xor ecx, edx
mov edx, dword [esp + 0x34]
xor eax, edi
and ebp, esi
mov ebx, edx
not ebx
and ebx, dword [esp + 0x44]
mov edi, esi
mov esi, dword [esp + 0x3c]
and esi, edx
mov edx, dword [esp + 0x50]
xor ebx, esi
mov esi, dword [esp + 0x14]
not edi
and edi, dword [esp + 0x40]
xor edi, ebp
add eax, edi
adc ecx, ebx
add eax, dword [edx + 0x101be608]
mov ebx, esi
adc ecx, dword [edx + 0x101be60c]
add eax, dword [esp + edx + 0xd0]
mov ebp, esi
adc ecx, dword [esp + edx + 0xd4]
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
adc ecx, dword [esp + 0x4c]
mov edi, edx
shrd edi, ebx, 0x1c
shr ebx, 0x1c
mov dword [esp + 0x54], eax
mov eax, edx
shld ebp, edx, 0x1e
shl eax, 4
or eax, ebx
xor ebx, ebx
or ebx, ebp
xor eax, ebx
mov ebx, dword [esp + 0x10]
shl edx, 0x1e
mov dword [esp + 0x58], ecx
xor ecx, ecx
or ecx, edi
mov edi, esi
shr edi, 2
or edi, edx
mov ebp, esi
shld ebp, ebx, 0x19
xor ecx, edi
shl ebx, 0x19
xor edi, edi
or edi, ebp
mov ebp, dword [esp + 0x1c]
mov edx, esi
shr edx, 7
or edx, ebx
xor ecx, edx
mov edx, dword [esp + 0x18]
xor eax, edi
mov edi, dword [esp + 0x10]
mov ebx, edx
xor ebx, edi
and ebx, dword [esp + 0x20]
and edx, edi
mov edi, dword [esp + 0x1c]
xor ebx, edx
mov edx, dword [esp + 0x40]
xor ebp, esi
and ebp, dword [esp + 0x24]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x44]
and edi, esi
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x38]
xor ebp, edi
add ecx, ebx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x3c]
adc eax, ebp
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x24]
add edx, ebx
adc edi, dword [esp + 0x58]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x18]
add ecx, ebx
adc eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x1c]
add ebx, 0x28
cmp ebx, 0x280
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x50], ebx
jl 0x100c6d17
mov ebx, dword [esp + 0x334]
add dword [ebx + 0x108], ecx
mov ecx, dword [esp + 0x24]
adc dword [ebx + 0x10c], eax
add dword [ebx + 0x110], ebp
mov eax, dword [esp + 0x20]
adc dword [ebx + 0x114], esi
add dword [ebx + 0x118], eax
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x88]
adc dword [ebx + 0x11c], ecx
add dword [ebx + 0x120], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
adc dword [ebx + 0x124], ecx
add dword [ebx + 0x128], edx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
adc dword [ebx + 0x12c], edi
add dword [ebx + 0x130], edx
mov edx, dword [esp + 0x44]
adc dword [ebx + 0x134], eax
add dword [ebx + 0x138], ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
adc dword [ebx + 0x13c], edx
add dword [ebx + 0x140], eax
adc dword [ebx + 0x144], ecx
mov ecx, dword [esp + 0x94]
add esi, 0xffffff80
sub dword [esp + 0x78], 1
mov dword [esp + 0x88], esi
jne 0x100c66e4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x320
ret