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

Disassembly:
sub esp, 0x2ec
mov eax, dword [0x4d4430]
xor eax, esp
mov dword [esp + 0x2e8], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x2fc]
push edi
add esi, 8
push 0x10
mov dword [esp + 0x30], esi
pop ecx
lea edi, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x304]
xor esi, esi
add ecx, 2
movzx eax, byte [ecx - 2]
cdq
shld edx, eax, 8
shl eax, 8
mov edi, eax
movzx eax, byte [ecx - 1]
mov ebx, edx
cdq
or edi, eax
movzx eax, byte [ecx]
or ebx, edx
shld ebx, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 1]
or ebx, edx
shld ebx, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 2]
or ebx, edx
shld ebx, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 3]
or ebx, edx
shld ebx, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 4]
or ebx, edx
shld ebx, edi, 8
shl edi, 8
cdq
or edi, eax
movzx eax, byte [ecx + 5]
or ebx, edx
shld ebx, edi, 8
shl edi, 8
cdq
or edi, eax
or ebx, edx
mov dword [esp + esi*8 + 0x78], edi
mov dword [esp + esi*8 + 0x7c], ebx
inc esi
add ecx, 8
cmp esi, 0x10
jl 0x4953ce
lea eax, [esp + 0xe8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], 0x40
mov ecx, dword [eax - 0x68]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax - 0x64]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edi, ecx
mov ebx, eax
shrd edi, ebx, 0x13
mov edx, ecx
xor esi, esi
or esi, edi
mov dword [esp + 0x30], ecx
mov ebp, eax
shld ebp, ecx, 3
shr ebx, 0x13
shl ecx, 3
shl edx, 0xd
or edx, ebx
mov edi, eax
shr edi, 0x1d
or edi, ecx
mov ecx, dword [esp + 0x30]
shrd ecx, eax, 6
xor ebx, ebx
or ebx, ebp
mov ebp, dword [esp + 0x24]
xor esi, edi
xor edx, ebx
mov ebx, dword [esp + 0x24]
shr eax, 6
xor edx, eax
mov eax, dword [esp + 0x20]
xor esi, ecx
mov edi, eax
shrd edi, ebx, 8
mov dword [esp + 0x10], esi
xor esi, esi
or esi, edi
mov dword [esp + 0x1c], ecx
mov ecx, eax
mov edi, eax
shrd eax, ebp, 1
shl ecx, 0x18
shr ebx, 8
shl edi, 0x1f
or ecx, ebx
shr ebp, 1
or edi, ebp
xor ecx, edi
mov edi, dword [esp + 0x20]
xor ebx, ebx
or ebx, eax
mov eax, dword [esp + 0x24]
shrd edi, eax, 7
xor esi, ebx
shr eax, 7
xor esi, edi
mov edi, dword [esp + 0x10]
xor ecx, eax
mov eax, dword [esp + 0x18]
add edi, esi
adc edx, ecx
add edi, dword [eax - 0x70]
adc edx, dword [eax - 0x6c]
add edi, dword [eax - 0x28]
adc edx, dword [eax - 0x24]
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], edx
add eax, 8
dec dword [esp + 0x28]
mov dword [esp + 0x18], eax
jne 0x49546e
and dword [esp + 0x18], 0
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov ebx, esi
mov ebp, edi
shld ebp, ebx, 0x17
shl ebx, 0x17
mov eax, edi
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 + 0x58]
xor eax, ebp
mov ebp, dword [esp + 0x5c]
shl ebx, 0xe
shr edi, 0x12
or ebx, edi
xor ecx, ebx
mov ebx, dword [esp + 0x58]
shrd ebx, ebp, 0xe
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
xor ecx, esi
mov esi, dword [esp + 0x60]
xor esi, dword [esp + 0x68]
xor edi, edi
and esi, dword [esp + 0x58]
or edi, ebx
xor esi, dword [esp + 0x68]
xor eax, edi
mov edi, dword [esp + 0x64]
xor edi, dword [esp + 0x6c]
and edi, dword [esp + 0x5c]
xor edi, dword [esp + 0x6c]
add eax, esi
mov esi, dword [esp + 0x18]
adc ecx, edi
add eax, dword [esi + 0x4c2098]
adc ecx, dword [esi + 0x4c209c]
add eax, dword [esp + esi + 0x78]
adc ecx, dword [esp + esi + 0x7c]
add eax, dword [esp + 0x70]
adc ecx, dword [esp + 0x74]
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
mov esi, eax
xor edi, edi
or edi, ebx
mov ebx, ecx
shld ecx, eax, 0x1e
shr ebp, 0x1c
shl esi, 4
or esi, ebp
shr ebx, 2
shl eax, 0x1e
or ebx, eax
mov eax, dword [esp + 0x3c]
xor ebp, ebp
or ebp, ecx
xor edi, ebx
mov ebx, dword [esp + 0x38]
xor esi, ebp
mov ebp, dword [esp + 0x3c]
shld ebp, ebx, 0x19
shr eax, 7
shl ebx, 0x19
xor ecx, ecx
or eax, ebx
or ecx, ebp
xor esi, ecx
xor edi, eax
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x40]
and ebx, dword [esp + 0x38]
and eax, dword [esp + 0x48]
mov ecx, edx
or ecx, dword [esp + 0x3c]
and edx, dword [esp + 0x3c]
and ecx, dword [esp + 0x4c]
or eax, ebx
or edx, ecx
add edi, eax
adc edx, esi
add edi, dword [esp + 0x10]
mov esi, dword [esp + 0x50]
adc edx, dword [esp + 0x14]
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x54]
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
mov ebx, esi
shrd esi, edi, 0x12
shr edi, 0x12
shl ebx, 0xe
or ebx, edi
xor ecx, ebx
mov ebx, dword [esp + 0x50]
xor ebp, ebp
or ebp, esi
mov esi, dword [esp + 0x50]
xor eax, ebp
mov ebp, dword [esp + 0x54]
shrd ebx, ebp, 0xe
shl esi, 0x12
xor edi, edi
or edi, ebx
shr ebp, 0xe
or esi, ebp
xor ecx, esi
mov esi, dword [esp + 0x60]
xor esi, dword [esp + 0x58]
xor eax, edi
and esi, dword [esp + 0x50]
mov edi, dword [esp + 0x64]
xor edi, dword [esp + 0x5c]
xor esi, dword [esp + 0x60]
and edi, dword [esp + 0x54]
mov ebx, edx
xor edi, dword [esp + 0x64]
add eax, esi
mov esi, dword [esp + 0x18]
adc ecx, edi
add eax, dword [esi + 0x4c20a0]
mov dword [esp + 0x74], edx
adc ecx, dword [esi + 0x4c20a4]
add eax, dword [esp + esi + 0x80]
adc ecx, dword [esp + esi + 0x84]
add eax, dword [esp + 0x68]
adc ecx, dword [esp + 0x6c]
add dword [esp + 0x48], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x70]
adc dword [esp + 0x4c], ecx
mov edi, eax
shrd edi, ebx, 0x1c
mov dword [esp + 0x14], ecx
mov ecx, eax
xor esi, esi
shl ecx, 4
shr ebx, 0x1c
or esi, edi
or ecx, ebx
xor ebx, ebx
mov ebp, edx
shld ebp, eax, 0x1e
or ebx, ebp
xor ecx, ebx
mov ebx, dword [esp + 0x70]
shl eax, 0x1e
mov edi, edx
shr edi, 2
or edi, eax
xor esi, edi
xor edi, edi
mov ebp, edx
shld ebp, ebx, 0x19
or edi, ebp
mov ebp, dword [esp + 0x3c]
xor ecx, edi
mov edi, dword [esp + 0x3c]
shl ebx, 0x19
or edi, edx
and edi, dword [esp + 0x44]
mov eax, edx
shr eax, 7
or eax, ebx
mov ebx, dword [esp + 0x38]
and ebx, dword [esp + 0x70]
xor esi, eax
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x70]
and ebp, edx
and eax, dword [esp + 0x40]
or edi, ebp
or eax, ebx
add esi, eax
adc ecx, edi
add esi, dword [esp + 0x10]
mov edi, dword [esp + 0x4c]
adc ecx, dword [esp + 0x14]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x48]
mov ebx, esi
mov ebp, edi
shld ebp, ebx, 0x17
mov eax, edi
shl ebx, 0x17
shr eax, 9
or eax, ebx
mov ebx, esi
shrd esi, edi, 0x12
mov dword [esp + 0x6c], ecx
shr edi, 0x12
xor ecx, ecx
or ecx, ebp
xor ebp, ebp
or ebp, esi
mov esi, dword [esp + 0x48]
shl ebx, 0xe
or ebx, edi
xor eax, ebp
mov ebp, dword [esp + 0x4c]
xor ecx, ebx
mov ebx, dword [esp + 0x48]
shrd ebx, ebp, 0xe
shl esi, 0x12
xor edi, edi
shr ebp, 0xe
or esi, ebp
or edi, ebx
xor ecx, esi
mov esi, dword [esp + 0x50]
xor esi, dword [esp + 0x58]
xor eax, edi
mov edi, dword [esp + 0x54]
xor edi, dword [esp + 0x5c]
and esi, dword [esp + 0x48]
and edi, dword [esp + 0x4c]
xor esi, dword [esp + 0x58]
xor edi, dword [esp + 0x5c]
add eax, esi
mov esi, dword [esp + 0x18]
adc ecx, edi
add eax, dword [esi + 0x4c20a8]
adc ecx, dword [esi + 0x4c20ac]
add eax, dword [esp + esi + 0x88]
adc ecx, dword [esp + esi + 0x8c]
add eax, dword [esp + 0x60]
adc ecx, dword [esp + 0x64]
add dword [esp + 0x40], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x68]
adc dword [esp + 0x44], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x6c]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x1c
mov esi, eax
xor edi, edi
or edi, ebx
shr ebp, 0x1c
mov ebx, ecx
shld ecx, eax, 0x1e
shr ebx, 2
shl eax, 0x1e
or ebx, eax
mov eax, dword [esp + 0x6c]
shl esi, 4
or esi, ebp
xor edi, ebx
mov ebx, dword [esp + 0x68]
xor ebp, ebp
or ebp, ecx
xor esi, ebp
mov ebp, dword [esp + 0x6c]
shld ebp, ebx, 0x19
shr eax, 7
shl ebx, 0x19
or eax, ebx
mov ebx, dword [esp + 0x68]
and ebx, dword [esp + 0x70]
xor edi, eax
mov eax, dword [esp + 0x68]
or eax, dword [esp + 0x70]
xor ecx, ecx
and eax, dword [esp + 0x38]
or ecx, ebp
mov ebp, dword [esp + 0x6c]
xor esi, ecx
mov ecx, dword [esp + 0x6c]
or eax, ebx
or ecx, edx
and ecx, dword [esp + 0x3c]
and ebp, edx
or ecx, ebp
add edi, eax
adc esi, ecx
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x40]
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
shl ebx, 0xe
shr edi, 0x12
or ebp, esi
mov esi, dword [esp + 0x40]
or ebx, edi
xor eax, ebp
xor ecx, ebx
xor edi, edi
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
shrd ebx, ebp, 0xe
or edi, ebx
xor eax, edi
mov edi, dword [esp + 0x54]
xor edi, dword [esp + 0x4c]
shl esi, 0x12
and edi, dword [esp + 0x44]
shr ebp, 0xe
xor edi, dword [esp + 0x54]
or esi, ebp
xor ecx, esi
mov esi, dword [esp + 0x50]
xor esi, dword [esp + 0x48]
and esi, dword [esp + 0x40]
xor esi, dword [esp + 0x50]
add eax, esi
adc ecx, edi
mov esi, dword [esp + 0x18]
add eax, dword [esi + 0x4c20b0]
adc ecx, dword [esi + 0x4c20b4]
add eax, dword [esp + esi + 0x90]
adc ecx, dword [esp + esi + 0x94]
add eax, dword [esp + 0x58]
adc ecx, dword [esp + 0x5c]
add dword [esp + 0x38], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
adc dword [esp + 0x3c], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x64]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x1c
mov esi, eax
xor edi, edi
or edi, ebx
mov ebx, ecx
shld ecx, eax, 0x1e
shr ebp, 0x1c
shl eax, 0x1e
shl esi, 4
or esi, ebp
shr ebx, 2
or ebx, eax
mov eax, dword [esp + 0x64]
xor ebp, ebp
or ebp, ecx
xor edi, ebx
mov ebx, dword [esp + 0x60]
xor esi, ebp
mov ebp, dword [esp + 0x64]
shld ebp, ebx, 0x19
xor ecx, ecx
or ecx, ebp
shr eax, 7
xor esi, ecx
mov ecx, dword [esp + 0x64]
or ecx, dword [esp + 0x6c]
shl ebx, 0x19
or eax, ebx
mov ebx, dword [esp + 0x64]
and ebx, dword [esp + 0x6c]
xor edi, eax
mov eax, dword [esp + 0x60]
or eax, dword [esp + 0x68]
and ecx, edx
and eax, dword [esp + 0x70]
mov edx, dword [esp + 0x60]
and edx, dword [esp + 0x68]
or ecx, ebx
or eax, edx
add edi, eax
adc esi, ecx
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x3c]
mov edx, esi
mov dword [esp + 0x5c], edx
mov esi, dword [esp + 0x38]
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
mov ebx, esi
shrd esi, edi, 0x12
shr edi, 0x12
shl ebx, 0xe
or ebx, edi
xor ecx, ebx
mov ebx, dword [esp + 0x38]
xor ebp, ebp
or ebp, esi
mov esi, dword [esp + 0x38]
xor eax, ebp
mov ebp, dword [esp + 0x3c]
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor eax, edi
mov edi, dword [esp + 0x4c]
xor edi, dword [esp + 0x44]
shl esi, 0x12
and edi, dword [esp + 0x3c]
shr ebp, 0xe
xor edi, dword [esp + 0x4c]
or esi, ebp
xor ecx, esi
mov esi, dword [esp + 0x48]
xor esi, dword [esp + 0x40]
mov ebx, edx
and esi, dword [esp + 0x38]
mov ebp, edx
xor esi, dword [esp + 0x48]
add eax, esi
mov esi, dword [esp + 0x18]
adc ecx, edi
add eax, dword [esi + 0x4c20b8]
adc ecx, dword [esi + 0x4c20bc]
add eax, dword [esp + esi + 0x98]
adc ecx, dword [esp + esi + 0x9c]
add eax, dword [esp + 0x50]
adc ecx, dword [esp + 0x54]
add dword [esp + 0x70], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
adc dword [esp + 0x74], ecx
mov edi, eax
shrd edi, ebx, 0x1c
mov dword [esp + 0x14], ecx
mov ecx, eax
shld ebp, eax, 0x1e
shr ebx, 0x1c
shl ecx, 4
or ecx, ebx
xor ebx, ebx
or ebx, ebp
xor esi, esi
or esi, edi
xor ecx, ebx
mov ebx, dword [esp + 0x58]
shl eax, 0x1e
mov edi, edx
shr edi, 2
or edi, eax
mov ebp, edx
shld ebp, ebx, 0x19
xor esi, edi
mov eax, edx
shr eax, 7
shl ebx, 0x19
xor edi, edi
or eax, ebx
or edi, ebp
xor esi, eax
mov eax, dword [esp + 0x60]
or eax, dword [esp + 0x58]
xor ecx, edi
and eax, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
and ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x64]
or edi, edx
and edi, dword [esp + 0x6c]
or eax, ebx
and ebp, edx
or edi, ebp
add esi, eax
adc ecx, edi
add esi, dword [esp + 0x10]
mov edi, dword [esp + 0x74]
adc ecx, dword [esp + 0x14]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x70]
mov ebx, esi
mov ebp, edi
shld ebp, ebx, 0x17
shl ebx, 0x17
mov eax, edi
shr eax, 9
or eax, ebx
mov ebx, esi
shrd esi, edi, 0x12
shr edi, 0x12
mov dword [esp + 0x54], ecx
xor ecx, ecx
or ecx, ebp
xor ebp, ebp
or ebp, esi
mov esi, dword [esp + 0x70]
shl ebx, 0xe
or ebx, edi
xor ecx, ebx
mov ebx, dword [esp + 0x70]
xor eax, ebp
mov ebp, dword [esp + 0x74]
shrd ebx, ebp, 0xe
shl esi, 0x12
xor edi, edi
shr ebp, 0xe
or esi, ebp
xor ecx, esi
mov esi, dword [esp + 0x40]
xor esi, dword [esp + 0x38]
or edi, ebx
and esi, dword [esp + 0x70]
xor eax, edi
xor esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
xor edi, dword [esp + 0x3c]
and edi, dword [esp + 0x74]
xor edi, dword [esp + 0x44]
add eax, esi
mov esi, dword [esp + 0x18]
adc ecx, edi
add eax, dword [esi + 0x4c20c0]
adc ecx, dword [esi + 0x4c20c4]
add eax, dword [esp + esi + 0xa0]
adc ecx, dword [esp + esi + 0xa4]
add eax, dword [esp + 0x48]
adc ecx, dword [esp + 0x4c]
add dword [esp + 0x68], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
adc dword [esp + 0x6c], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x1c
mov esi, eax
xor edi, edi
shl esi, 4
shr ebp, 0x1c
or edi, ebx
or esi, ebp
mov ebx, ecx
shld ecx, eax, 0x1e
shr ebx, 2
shl eax, 0x1e
or ebx, eax
xor edi, ebx
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
xor ebp, ebp
or ebp, ecx
xor esi, ebp
mov ebp, dword [esp + 0x54]
shld ebp, ebx, 0x19
shl ebx, 0x19
shr eax, 7
or eax, ebx
mov ebx, dword [esp + 0x50]
and ebx, dword [esp + 0x58]
xor edi, eax
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x58]
xor ecx, ecx
and eax, dword [esp + 0x60]
or ecx, ebp
mov ebp, dword [esp + 0x54]
xor esi, ecx
mov ecx, dword [esp + 0x54]
or eax, ebx
or ecx, edx
and ecx, dword [esp + 0x64]
and ebp, edx
or ecx, ebp
add edi, eax
adc esi, ecx
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x68]
mov ebx, esi
mov ebp, edi
shld ebp, ebx, 0x17
mov eax, edi
shl ebx, 0x17
shr eax, 9
or eax, ebx
mov ebx, esi
shrd esi, edi, 0x12
shr edi, 0x12
xor ecx, ecx
or ecx, ebp
xor ebp, ebp
or ebp, esi
mov esi, dword [esp + 0x68]
shl ebx, 0xe
or ebx, edi
xor eax, ebp
mov ebp, dword [esp + 0x6c]
xor ecx, ebx
mov ebx, dword [esp + 0x68]
shrd ebx, ebp, 0xe
shl esi, 0x12
xor edi, edi
shr ebp, 0xe
or esi, ebp
or edi, ebx
xor ecx, esi
mov esi, dword [esp + 0x38]
xor esi, dword [esp + 0x70]
xor eax, edi
mov edi, dword [esp + 0x3c]
xor edi, dword [esp + 0x74]
and esi, dword [esp + 0x68]
and edi, dword [esp + 0x6c]
xor esi, dword [esp + 0x38]
xor edi, dword [esp + 0x3c]
add eax, esi
mov esi, dword [esp + 0x18]
adc ecx, edi
add eax, dword [esi + 0x4c20c8]
adc ecx, dword [esi + 0x4c20cc]
add eax, dword [esp + esi + 0xa8]
adc ecx, dword [esp + esi + 0xac]
add eax, dword [esp + 0x40]
adc ecx, dword [esp + 0x44]
add dword [esp + 0x60], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
adc dword [esp + 0x64], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x4c]
mov ebx, eax
mov ebp, ecx
shrd ebx, ebp, 0x1c
mov esi, eax
xor edi, edi
or edi, ebx
mov ebx, ecx
shld ecx, eax, 0x1e
shr ebp, 0x1c
shr ebx, 2
shl eax, 0x1e
or ebx, eax
mov eax, dword [esp + 0x4c]
shl esi, 4
or esi, ebp
xor edi, ebx
mov ebx, dword [esp + 0x48]
xor ebp, ebp
or ebp, ecx
xor esi, ebp
mov ebp, dword [esp + 0x4c]
shld ebp, ebx, 0x19
xor ecx, ecx
or ecx, ebp
xor esi, ecx
mov ecx, dword [esp + 0x54]
or ecx, dword [esp + 0x4c]
shr eax, 7
shl ebx, 0x19
or eax, ebx
mov ebx, dword [esp + 0x54]
and ebx, dword [esp + 0x4c]
xor edi, eax
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x48]
and ecx, edx
and eax, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
and edx, dword [esp + 0x48]
or ecx, ebx
or eax, edx
add edi, eax
adc esi, ecx
add edi, dword [esp + 0x10]
adc esi, dword [esp + 0x14]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x64]
mov edx, esi
mov esi, dword [esp + 0x60]
mov ebx, esi
mov ebp, edi
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
shl ebx, 0xe
shr edi, 0x12
or ebp, esi
mov esi, dword [esp + 0x60]
or ebx, edi
xor eax, ebp
mov dword [esp + 0x44], edx
xor ecx, ebx
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
shrd ebx, ebp, 0xe
xor edi, edi
or edi, ebx
xor eax, edi
mov edi, dword [esp + 0x6c]
xor edi, dword [esp + 0x74]
shl esi, 0x12
and edi, dword [esp + 0x64]
shr ebp, 0xe
xor edi, dword [esp + 0x74]
or esi, ebp
xor ecx, esi
mov esi, dword [esp + 0x68]
xor esi, dword [esp + 0x70]
mov ebx, edx
and esi, dword [esp + 0x60]
mov ebp, edx
xor esi, dword [esp + 0x70]
add eax, esi
adc ecx, edi
mov esi, dword [esp + 0x18]
add eax, dword [esi + 0x4c20d0]
adc ecx, dword [esi + 0x4c20d4]
add eax, dword [esp + esi + 0xb0]
adc ecx, dword [esp + esi + 0xb4]
add eax, dword [esp + 0x38]
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 edi, eax
shrd edi, ebx, 0x1c
shr ebx, 0x1c
mov dword [esp + 0x14], ecx
mov ecx, eax
shld ebp, eax, 0x1e
shl ecx, 4
or ecx, ebx
xor ebx, ebx
or ebx, ebp
xor ecx, ebx
mov ebx, dword [esp + 0x40]
xor esi, esi
or esi, edi
shl eax, 0x1e
mov edi, edx
shr edi, 2
or edi, eax
xor esi, edi
mov ebp, edx
shld ebp, ebx, 0x19
xor edi, edi
shl ebx, 0x19
or edi, ebp
mov ebp, dword [esp + 0x4c]
mov eax, edx
shr eax, 7
or eax, ebx
mov ebx, dword [esp + 0x48]
and ebx, dword [esp + 0x40]
xor esi, eax
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x40]
xor ecx, edi
mov edi, dword [esp + 0x4c]
and eax, dword [esp + 0x50]
or edi, edx
and edi, dword [esp + 0x54]
and ebp, edx
or eax, ebx
or edi, ebp
add esi, eax
adc ecx, edi
add esi, dword [esp + 0x10]
adc ecx, dword [esp + 0x14]
add dword [esp + 0x18], 0x40
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x18], 0x280
jl 0x49554a
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
xor ecx, ecx
pop ebx
mov edx, dword [esp + ecx*8 + 0x28]
add dword [eax], edx
mov edx, dword [esp + ecx*8 + 0x2c]
adc dword [eax + 4], edx
inc ecx
add eax, 8
cmp ecx, 8
jl 0x495f45
mov ecx, dword [esp + 0x2e8]
xor ecx, esp
xor eax, eax
call fcn.0040c660
add esp, 0x2ec
ret