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

Disassembly:
sub esp, 0x318
mov eax, dword [esp + 0x31c]
mov ecx, dword [eax + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x3c]
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + 0x40]
mov eax, dword [eax + 0x44]
push ebx
mov dword [esp + 0x50], eax
push ebp
push esi
lea eax, [esp + 0xb2]
sub eax, edx
push edi
mov dword [esp + 0x64], eax
lea edi, [esp + 0xae]
lea eax, [esp + 0xbe]
xor esi, esi
sub edi, edx
sub eax, edx
mov dword [esp + 0x58], ecx
lea ecx, [edx + 2]
mov dword [esp + 0x1c], eax
lea esp, [esp]
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 + esi*8 + 0xa8], ebx
shl eax, 8
mov ebx, eax
movzx eax, byte [ecx + 7]
mov dword [esp + esi*8 + 0xac], 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]
cdq
or ebp, edx
shl ebx, 8
or ebx, eax
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 [edi + ecx], ebx
shl eax, 8
mov ebx, eax
movzx eax, byte [ecx + 0xf]
mov dword [edi + ecx + 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
cdq
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 0x12]
or ebp, edx
shld ebp, ebx, 8
cdq
shl ebx, 8
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
mov eax, dword [esp + 0x64]
mov dword [eax + ecx], ebx
or ebp, edx
mov dword [eax + ecx + 4], ebp
movzx eax, byte [ecx + 0x16]
cdq
shld edx, eax, 8
shl eax, 8
mov ebx, eax
movzx eax, byte [ecx + 0x17]
mov ebp, edx
cdq
or ebx, eax
movzx eax, byte [ecx + 0x18]
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 + 0x19]
shl ebx, 8
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
cdq
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 0x1d]
or ebp, edx
shld ebp, ebx, 8
cdq
shl ebx, 8
or ebx, eax
mov eax, dword [esp + 0x1c]
or ebp, edx
mov dword [ecx + eax], ebx
mov dword [ecx + eax + 4], ebp
add esi, 4
add ecx, 0x20
cmp esi, 0x10
jl 0x479730
lea ecx, [esp + 0x118]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x64], 0x10
mov eax, dword [ecx - 0x68]
mov edx, dword [ecx - 0x64]
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
mov edi, eax
mov ebx, edx
shrd edi, ebx, 8
mov dword [esp + 0x7c], ecx
mov ebp, eax
xor ecx, ecx
or ecx, edi
mov dword [esp + 0x8c], edx
shrd ebp, edx, 1
mov dword [esp + 0x78], esi
mov edi, eax
shr edx, 1
mov esi, eax
shl esi, 0x18
shr ebx, 8
or esi, ebx
shl edi, 0x1f
or edi, edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x88], eax
shrd eax, edx, 7
xor ebx, ebx
or ebx, ebp
xor ecx, ebx
xor ecx, eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x7c]
xor esi, edi
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x13
shr edx, 7
xor esi, edx
mov edx, eax
xor edi, edi
or edi, ebx
mov ebx, ecx
shld ecx, eax, 3
add eax, eax
shl edx, 0xd
add eax, eax
shr ebp, 0x13
or edx, ebp
add eax, eax
shr ebx, 0x1d
or ebx, eax
mov eax, dword [esp + 0x7c]
xor ebp, ebp
or ebp, ecx
mov ecx, dword [esp + 0x78]
shrd ecx, eax, 6
xor edi, ebx
shr eax, 6
xor edx, ebp
xor edi, ecx
mov ecx, dword [esp + 0x10]
xor edx, eax
mov eax, dword [esp + 0x1c]
add ecx, edi
adc esi, edx
add ecx, dword [eax - 0x70]
mov edx, dword [eax - 0x5c]
adc esi, dword [eax - 0x6c]
add ecx, dword [eax - 0x28]
mov dword [esp + 0x94], edx
adc esi, dword [eax - 0x24]
mov dword [eax + 0x10], ecx
mov ecx, dword [eax - 0x60]
mov dword [eax + 0x14], esi
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], eax
mov dword [esp + 0x90], ecx
mov esi, ecx
xor eax, eax
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
mov edi, ecx
shl edi, 0x1f
or edi, edx
mov edx, dword [esp + 0x94]
shrd ecx, edx, 7
shl esi, 0x18
or esi, ebx
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
add eax, eax
shr ebx, 0x1d
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 + 0x88]
mov dword [esp + 0x68], edx
adc esi, dword [esp + 0x8c]
mov dword [eax + 0x18], ecx
mov ecx, dword [eax - 0x54]
mov dword [eax + 0x1c], esi
mov dword [esp + 0x6c], ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov edi, ecx
mov ebx, eax
shrd edi, ebx, 0x13
xor esi, esi
or esi, edi
mov edx, ecx
shl edx, 0xd
shr ebx, 0x13
mov edi, eax
or edx, ebx
shr edi, 0x1d
mov dword [esp + 0x98], ecx
xor ebx, ebx
mov ebp, eax
shld ebp, ecx, 3
add ecx, ecx
add ecx, ecx
add ecx, ecx
or edi, ecx
mov ecx, dword [esp + 0x98]
shrd ecx, eax, 6
or ebx, ebp
xor edx, ebx
xor esi, edi
xor esi, ecx
mov ecx, dword [esp + 0x6c]
mov ebp, ecx
shr eax, 6
xor edx, eax
mov eax, dword [esp + 0x68]
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 + 0x6c]
xor ebp, ebp
or ebp, eax
mov eax, dword [esp + 0x68]
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 + 0x90]
adc edx, dword [esp + 0x94]
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 + 0xa0], 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
shr ebx, 0x13
add ecx, ecx
shl edx, 0xd
or edx, ebx
mov edi, eax
add ecx, ecx
shr edi, 0x1d
or edi, ecx
mov ecx, dword [esp + 0xa0]
xor ebx, ebx
or ebx, ebp
xor esi, edi
xor edx, ebx
shrd ecx, eax, 6
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 + 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 + 0x74]
shl ebx, 0x1f
or ebx, ecx
mov ecx, dword [esp + 0x70]
shrd ecx, eax, 7
xor edi, ebp
shr eax, 7
xor edi, ecx
mov ecx, dword [esp + 0x10]
xor esi, ebx
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 + 0x68]
adc edx, dword [esp + 0x6c]
sub dword [esp + 0x64], 1
mov dword [eax + 0x28], ecx
lea ecx, [eax + 0x20]
mov dword [eax + 0x2c], edx
mov dword [esp + 0x1c], ecx
jne 0x479960
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], 0
jmp 0x479cd0
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
xor ebp, ebp
mov eax, edi
shr eax, 9
or eax, ebx
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]
shr ebp, 0xe
xor eax, ebx
mov ebx, dword [esp + 0x48]
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 + 0x4c31c8]
adc ecx, dword [esi + 0x4c31cc]
add eax, dword [esp + esi + 0xa8]
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, dword [esp + 0x24]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x1c
xor edi, edi
or edi, ebx
mov esi, eax
shr ebp, 0x1c
mov ebx, ecx
shld ecx, eax, 0x1e
shl esi, 4
or esi, ebp
xor ebp, ebp
or ebp, ecx
shl eax, 0x1e
shr ebx, 2
or ebx, eax
mov eax, dword [esp + 0x24]
xor esi, ebp
mov ebp, dword [esp + 0x20]
mov ecx, eax
shld eax, ebp, 0x19
xor edi, ebx
shr ecx, 7
xor ebx, ebx
shl ebp, 0x19
or ecx, ebp
or ebx, eax
mov eax, dword [esp + 0x20]
xor esi, ebx
xor edi, ecx
mov ecx, dword [esp + 0x28]
mov ebx, ecx
or ebx, eax
and ebx, dword [esp + 0x30]
and ecx, eax
or ebx, ecx
mov ebp, edx
or ebp, dword [esp + 0x24]
and edx, dword [esp + 0x24]
and ebp, dword [esp + 0x34]
or ebp, edx
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 edx, 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 + 0x4c31d0]
mov dword [esp + 0x5c], edx
adc ecx, dword [esi + 0x4c31d4]
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, eax
mov ebx, edx
shrd ecx, ebx, 0x1c
shr ebx, 0x1c
or esi, ebx
or edi, ecx
xor ebx, ebx
mov ebp, edx
shld ebp, eax, 0x1e
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x58]
shl eax, 0x1e
mov ecx, edx
shr ecx, 2
or ecx, eax
xor edi, ecx
xor ecx, ecx
mov ebp, edx
shld ebp, ebx, 0x19
or ecx, ebp
mov ebp, dword [esp + 0x24]
shl ebx, 0x19
xor esi, ecx
mov ecx, dword [esp + 0x20]
or ebp, edx
and ebp, dword [esp + 0x2c]
mov eax, edx
shr eax, 7
or eax, ebx
xor edi, eax
mov eax, dword [esp + 0x58]
mov ebx, ecx
or ebx, eax
and ebx, dword [esp + 0x28]
and ecx, eax
mov eax, dword [esp + 0x24]
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 + 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 + 0x4c31d8]
adc ecx, dword [esi + 0x4c31dc]
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
mov esi, eax
xor edi, edi
or edi, ebx
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 + 0x50]
shl eax, 0x1e
or ebx, eax
mov eax, dword [esp + 0x54]
xor edi, ebx
mov ecx, eax
shld eax, ebp, 0x19
xor ebx, ebx
or ebx, eax
mov eax, dword [esp + 0x50]
shl ebp, 0x19
xor esi, ebx
shr ecx, 7
or ecx, ebp
mov ebp, dword [esp + 0x54]
xor edi, ecx
mov ecx, dword [esp + 0x58]
mov ebx, eax
or ebx, ecx
and ebx, dword [esp + 0x20]
and eax, ecx
mov ecx, dword [esp + 0x54]
or ebp, edx
and ebp, dword [esp + 0x24]
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 + 0x48], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x28]
mov ebx, esi
mov ebp, edi
shld ebp, ebx, 0x17
mov eax, edi
shl ebx, 0x17
shr eax, 9
xor ecx, ecx
or eax, ebx
or ecx, ebp
mov ebx, esi
shrd esi, edi, 0x12
xor ebp, ebp
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]
shr ebp, 0xe
xor eax, ebx
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
xor ebp, dword [esp + 0x34]
and ebx, dword [esp + 0x28]
and ebp, dword [esp + 0x2c]
xor ebx, esi
mov esi, dword [esp + 0x1c]
xor ebp, edi
add eax, ebx
adc ecx, ebp
add eax, dword [esi + 0x4c31e0]
adc ecx, dword [esi + 0x4c31e4]
add eax, dword [esp + esi + 0xc0]
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, dword [esp + 0x4c]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x1c
xor edi, edi
or edi, ebx
shr ebp, 0x1c
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
shl eax, 0x1e
or ebx, eax
mov eax, dword [esp + 0x4c]
xor esi, ebp
mov ebp, dword [esp + 0x48]
mov ecx, eax
shld eax, ebp, 0x19
xor edi, ebx
shl ebp, 0x19
shr ecx, 7
xor ebx, ebx
or ecx, ebp
mov ebp, dword [esp + 0x4c]
or ebx, eax
mov eax, dword [esp + 0x54]
xor edi, ecx
mov ecx, dword [esp + 0x48]
xor esi, ebx
mov ebx, ecx
or ebx, dword [esp + 0x50]
or ebp, eax
and ebx, dword [esp + 0x58]
and ebp, edx
and ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
or ebx, ecx
and edx, 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 + 0x4c31e8]
mov ebx, edx
adc ecx, dword [esi + 0x4c31ec]
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 + 0x4c31f0]
adc ecx, dword [esi + 0x4c31f4]
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]
shr ebp, 0xe
xor eax, ebx
shl edi, 0x12
or edi, ebp
xor ecx, edi
mov edi, dword [esp + 0x24]
mov ebx, esi
xor ebx, dword [esp + 0x58]
mov ebp, edi
xor ebp, dword [esp + 0x5c]
and ebx, dword [esp + 0x50]
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 + 0x4c31f8]
adc ecx, dword [esi + 0x4c31fc]
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]
xor ebx, ebx
or ebx, eax
mov eax, dword [esp + 0x34]
xor esi, ebx
xor edi, ecx
mov ecx, dword [esp + 0x38]
or ebp, eax
and ebp, edx
mov edx, dword [esp + 0x3c]
mov ebx, ecx
or ebx, dword [esp + 0x30]
and ecx, dword [esp + 0x30]
and ebx, dword [esp + 0x40]
and edx, eax
or ebp, edx
or ebx, ecx
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x28], edi
mov edx, esi
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
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 + 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, esi
shrd esi, ebp, 0xe
or ebx, esi
mov esi, dword [esp + 0x58]
xor eax, ebx
mov ebx, dword [esp + 0x50]
shr ebp, 0xe
xor ebx, esi
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, esi
mov esi, dword [esp + 0x1c]
xor ebp, edi
add eax, ebx
adc ecx, ebp
add eax, dword [esi + 0x4c3200]
mov ebx, edx
adc ecx, dword [esi + 0x4c3204]
add eax, dword [esp + esi + 0xe0]
mov ebp, edx
adc ecx, dword [esp + esi + 0xe4]
add eax, dword [esp + 0x20]
mov dword [esp + 0x2c], edx
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 esi, eax
shld ebp, eax, 0x1e
shr ebx, 0x1c
xor edi, edi
or edi, ecx
shl esi, 4
or esi, ebx
xor ebx, ebx
shl eax, 0x1e
mov ecx, edx
shr ecx, 2
or ecx, eax
or ebx, ebp
xor esi, ebx
mov ebx, dword [esp + 0x28]
xor edi, ecx
mov eax, edx
mov ebp, edx
shr eax, 7
xor ecx, ecx
shld ebp, ebx, 0x19
or ecx, ebp
mov ebp, dword [esp + 0x34]
shl ebx, 0x19
or eax, ebx
xor esi, 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, edx
and ebp, dword [esp + 0x3c]
and eax, edx
or ebp, eax
mov eax, dword [esp + 0x1c]
or ebx, ecx
add edi, ebx
adc esi, ebp
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
add eax, 0x40
cmp eax, 0x280
mov ecx, edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], eax
jl 0x479cd0
mov eax, dword [esp + 0x32c]
add dword [eax + 8], ecx
mov ecx, dword [esp + 0x28]
pop edi
adc dword [eax + 0xc], esi
add dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x30]
pop esi
adc dword [eax + 0x14], edx
mov edx, dword [esp + 0x28]
add dword [eax + 0x18], edx
mov edx, dword [esp + 0x30]
pop ebp
adc dword [eax + 0x1c], ecx
add dword [eax + 0x20], edx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
adc dword [eax + 0x24], ecx
add dword [eax + 0x28], edx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
adc dword [eax + 0x2c], ecx
add dword [eax + 0x30], edx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
adc dword [eax + 0x34], ecx
add dword [eax + 0x38], edx
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
adc dword [eax + 0x3c], ecx
add dword [eax + 0x40], edx
mov ecx, dword [esp + 0x50]
pop ebx
adc dword [eax + 0x44], ecx
xor eax, eax
add esp, 0x318
ret