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

Disassembly:
sub esp, 0x31c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x330]
push edi
xor edi, edi
movzx eax, byte [esi]
lea ecx, [esp + edi*8 + 0xac]
inc esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
shld edx, eax, 8
shl eax, 8
mov ebx, eax
mov ebp, edx
movzx eax, byte [esi]
cdq
or ebx, eax
or ebp, edx
mov eax, ebx
mov edx, ebp
shld edx, eax, 8
inc esi
mov dword [ecx], ebx
shl eax, 8
mov ebx, eax
mov dword [ecx + 4], ebp
movzx eax, byte [esi]
mov ebp, edx
cdq
or ebx, eax
or ebp, edx
mov eax, ebx
mov edx, ebp
shld edx, eax, 8
inc esi
mov dword [ecx], ebx
shl eax, 8
mov ebx, eax
mov dword [ecx + 4], ebp
movzx eax, byte [esi]
mov ebp, edx
cdq
or ebx, eax
or ebp, edx
mov eax, ebx
mov edx, ebp
shld edx, eax, 8
inc esi
mov dword [ecx], ebx
shl eax, 8
mov ebx, eax
mov dword [ecx + 4], ebp
movzx eax, byte [esi]
mov ebp, edx
cdq
or ebx, eax
or ebp, edx
mov eax, ebx
mov edx, ebp
shld edx, eax, 8
inc esi
mov dword [ecx], ebx
shl eax, 8
mov ebx, eax
mov dword [ecx + 4], ebp
movzx eax, byte [esi]
mov ebp, edx
cdq
or ebx, eax
or ebp, edx
mov eax, ebx
mov edx, ebp
shld edx, eax, 8
inc esi
mov dword [ecx], ebx
shl eax, 8
mov ebx, eax
mov dword [ecx + 4], ebp
movzx eax, byte [esi]
mov ebp, edx
cdq
or ebx, eax
or ebp, edx
mov dword [ecx], ebx
mov dword [ecx + 4], ebp
mov eax, ebx
mov edx, ebp
shld edx, eax, 8
inc esi
mov ebp, edx
shl eax, 8
mov ebx, eax
movzx eax, byte [esi]
cdq
or ebx, eax
or ebp, edx
inc esi
inc edi
cmp edi, 0x10
mov dword [ecx], ebx
mov dword [ecx + 4], ebp
jl 0x4041fd
lea eax, [esp + 0x11c]
mov dword [esp + 0x18], 0x40
mov dword [esp + 0x50], eax
mov ecx, dword [eax - 0x68]
xor esi, esi
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
mov ebp, eax
shrd edi, ebx, 0x13
mov dword [esp + 0x64], ecx
mov edx, ecx
shld ebp, ecx, 3
or esi, edi
mov edi, eax
shl edx, 0xd
shr ebx, 0x13
shr edi, 0x1d
shl ecx, 3
or edx, ebx
xor ebx, ebx
or edi, ecx
mov ecx, dword [esp + 0x64]
or ebx, ebp
xor esi, edi
shrd ecx, eax, 6
xor edx, ebx
mov ebx, dword [esp + 0x24]
shr eax, 6
xor edx, eax
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
mov edi, eax
xor esi, ecx
mov dword [esp + 0x10], ecx
shrd edi, ebx, 8
mov dword [esp + 0x28], esi
xor esi, esi
or esi, edi
mov ecx, eax
mov edi, eax
shrd eax, ebp, 1
shl ecx, 0x18
shr ebx, 8
shl edi, 0x1f
shr ebp, 1
or ecx, ebx
xor ebx, ebx
or edi, ebp
or ebx, eax
mov eax, dword [esp + 0x24]
xor ecx, edi
mov edi, dword [esp + 0x20]
xor esi, ebx
shrd edi, eax, 7
mov dword [esp + 0x10], edi
xor esi, edi
mov edi, dword [esp + 0x28]
shr eax, 7
xor ecx, eax
mov eax, dword [esp + 0x50]
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 + 0x18]
mov dword [esp + 0x50], eax
jne 0x4042f2
mov eax, dword [esp + 0x330]
and dword [esp + 0x50], 0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 8]
mov esi, dword [eax + 0x2c]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xa8], edx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0xa0], edx
mov dword [esp + 0x58], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x88], edx
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x78], edx
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x80], esi
mov dword [esp + 0x34], esi
mov esi, dword [eax + 0x34]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x94], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x90], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
jmp 0x4044ab
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, edx
mov ebx, esi
mov ebp, edx
shld ebx, edi, 0x17
mov eax, esi
xor ecx, ecx
shrd ebp, esi, 0x12
or ecx, ebx
xor ebx, ebx
shr eax, 9
shl edi, 0x17
or eax, edi
or ebx, ebp
mov ebp, dword [esp + 0x1c]
xor eax, ebx
mov edi, edx
mov ebx, edx
shl edi, 0xe
shr esi, 0x12
shrd ebx, ebp, 0xe
or edi, esi
mov esi, edx
xor ecx, edi
xor edi, edi
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
or edi, ebx
mov ebx, dword [esp + 0x30]
xor ecx, esi
xor eax, edi
mov edi, dword [esp + 0x1c]
mov esi, edx
and ebx, edx
mov edx, dword [esp + 0x34]
and edx, dword [esp + 0x1c]
not esi
and esi, dword [esp + 0x38]
not edi
and edi, dword [esp + 0x3c]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x50]
add eax, esi
mov esi, dword [esp + 0x4c]
adc ecx, edi
add eax, dword [edx + 0x40d210]
mov ebp, esi
adc ecx, dword [edx + 0x40d214]
add eax, dword [esp + edx + 0xac]
adc ecx, dword [esp + edx + 0xb0]
add eax, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
adc ecx, dword [esp + 0x44]
add dword [esp + 0x10], eax
mov ebx, edx
mov dword [esp + 0x24], ecx
adc dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x54]
xor ecx, edx
xor edi, edi
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x58]
xor ecx, esi
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x54]
and ecx, edx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x58]
shrd ebx, ebp, 0x1c
and ecx, esi
or edi, ebx
mov dword [esp + 0x70], ecx
mov ecx, edx
shl ecx, 4
shr ebp, 0x1c
mov ebx, esi
or ecx, ebp
shr ebx, 2
xor ebp, ebp
shld esi, edx, 0x1e
shl edx, 0x1e
or ebx, edx
or ebp, esi
mov edx, dword [esp + 0x4c]
xor edi, ebx
mov ebx, dword [esp + 0x48]
xor ecx, ebp
mov ebp, dword [esp + 0x4c]
xor esi, esi
shld ebp, ebx, 0x19
shr edx, 7
shl ebx, 0x19
or edx, ebx
or esi, ebp
xor edi, edx
mov edx, dword [esp + 0x5c]
and edx, dword [esp + 0x28]
xor ecx, esi
mov esi, dword [esp + 0x60]
and esi, dword [esp + 0x2c]
xor edx, dword [esp + 0x6c]
xor esi, dword [esp + 0x70]
add edi, edx
adc ecx, esi
mov esi, dword [esp + 0x14]
add edi, eax
mov ebx, esi
adc ecx, dword [esp + 0x24]
mov dword [esp + 0x40], edi
mov edx, esi
xor eax, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10]
mov edi, ecx
mov ebp, ecx
shld ebx, edi, 0x17
shrd ebp, esi, 0x12
or eax, ebx
xor ebx, ebx
shr edx, 9
shl edi, 0x17
or edx, edi
or ebx, ebp
mov ebp, dword [esp + 0x14]
xor edx, ebx
mov edi, ecx
mov ebx, ecx
shl edi, 0xe
shr esi, 0x12
shrd ebx, ebp, 0xe
or edi, esi
mov esi, ecx
xor eax, edi
xor edi, edi
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
or edi, ebx
mov ebx, dword [esp + 0x18]
xor eax, esi
xor edx, edi
mov edi, dword [esp + 0x14]
mov esi, ecx
and ebx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, dword [esp + 0x14]
not esi
and esi, dword [esp + 0x30]
not edi
and edi, dword [esp + 0x34]
xor esi, ebx
xor edi, ecx
mov ecx, dword [esp + 0x50]
add edx, esi
adc eax, edi
add edx, dword [ecx + 0x40d218]
adc eax, dword [ecx + 0x40d21c]
add edx, dword [esp + ecx + 0xb4]
adc eax, dword [esp + ecx + 0xb8]
add edx, dword [esp + 0x38]
adc eax, dword [esp + 0x3c]
add dword [esp + 0x28], edx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x24], eax
mov ebp, ecx
adc dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
mov ebx, eax
xor edi, edi
shrd ebx, ebp, 0x1c
or edi, ebx
mov esi, eax
mov ebx, ecx
shld ecx, eax, 0x1e
shl esi, 4
shr ebp, 0x1c
or esi, ebp
xor ebp, ebp
shr ebx, 2
shl eax, 0x1e
or ebx, eax
or ebp, ecx
mov eax, dword [esp + 0x44]
xor edi, ebx
mov ebx, dword [esp + 0x40]
xor esi, ebp
mov ebp, dword [esp + 0x44]
xor ecx, ecx
shld ebp, ebx, 0x19
shr eax, 7
shl ebx, 0x19
or eax, ebx
or ecx, ebp
xor edi, eax
mov eax, dword [esp + 0x5c]
and eax, dword [esp + 0x40]
xor esi, ecx
mov ecx, dword [esp + 0x60]
and ecx, dword [esp + 0x44]
xor eax, dword [esp + 0x6c]
xor ecx, dword [esp + 0x70]
add edi, eax
adc esi, ecx
add edi, edx
adc esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], edi
mov edi, edx
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x2c]
mov ebx, esi
mov ebp, edx
shld ebx, edi, 0x17
mov eax, esi
xor ecx, ecx
shrd ebp, esi, 0x12
or ecx, ebx
xor ebx, ebx
shr eax, 9
shl edi, 0x17
or eax, edi
or ebx, ebp
mov ebp, dword [esp + 0x2c]
mov edi, edx
xor eax, ebx
mov ebx, edx
shl edi, 0xe
shr esi, 0x12
shrd ebx, ebp, 0xe
or edi, esi
mov esi, edx
xor ecx, edi
xor edi, edi
shl esi, 0x12
shr ebp, 0xe
or edi, ebx
or esi, ebp
xor eax, edi
xor ecx, esi
mov esi, edx
not esi
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
and esi, dword [esp + 0x18]
and ebx, edx
mov edx, dword [esp + 0x14]
and edx, dword [esp + 0x2c]
xor esi, ebx
not edi
and edi, dword [esp + 0x1c]
xor edi, edx
mov edx, dword [esp + 0x50]
add eax, esi
adc ecx, edi
add eax, dword [edx + 0x40d220]
adc ecx, dword [edx + 0x40d224]
add eax, dword [esp + edx + 0xbc]
adc ecx, dword [esp + edx + 0xc0]
add eax, dword [esp + 0x30]
adc ecx, dword [esp + 0x34]
add dword [esp + 0x54], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], ecx
mov ebx, eax
adc dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x38]
mov edi, ecx
mov edx, ecx
shrd edi, ebx, 0x1c
mov ebp, eax
xor esi, esi
shl edx, 4
shr ebx, 0x1c
shld ebp, ecx, 0x1e
or edx, ebx
xor ebx, ebx
or ebx, ebp
or esi, edi
xor edx, ebx
mov ebx, dword [esp + 0x38]
mov edi, eax
mov ebp, eax
shr edi, 2
shl ecx, 0x1e
shld ebp, ebx, 0x19
or edi, ecx
mov ecx, eax
xor esi, edi
xor edi, edi
shr ecx, 7
shl ebx, 0x19
or ecx, ebx
mov ebx, dword [esp + 0x38]
and ebx, dword [esp + 0x48]
or edi, ebp
xor esi, ecx
mov ecx, dword [esp + 0x38]
xor ecx, dword [esp + 0x48]
xor edx, edi
mov edi, eax
and eax, dword [esp + 0x4c]
xor edi, dword [esp + 0x4c]
and ecx, dword [esp + 0x40]
and edi, dword [esp + 0x44]
xor ecx, ebx
xor edi, eax
add esi, ecx
adc edx, edi
add esi, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x58]
xor ecx, ecx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x54]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
mov eax, esi
shr eax, 9
shl edi, 0x17
mov ebp, edx
or ecx, ebx
shrd ebp, esi, 0x12
xor ebx, ebx
or eax, edi
or ebx, ebp
mov ebp, dword [esp + 0x58]
xor eax, ebx
mov edi, edx
mov ebx, edx
shl edi, 0xe
shr esi, 0x12
shrd ebx, ebp, 0xe
or edi, esi
mov esi, edx
xor ecx, edi
xor edi, edi
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
or edi, ebx
mov ebx, dword [esp + 0x28]
xor ecx, esi
xor eax, edi
mov edi, dword [esp + 0x58]
mov esi, edx
and ebx, edx
mov edx, dword [esp + 0x2c]
and edx, dword [esp + 0x58]
not esi
and esi, dword [esp + 0x10]
not edi
and edi, dword [esp + 0x14]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x50]
add eax, esi
adc ecx, edi
add eax, dword [edx + 0x40d228]
adc ecx, dword [edx + 0x40d22c]
add eax, dword [esp + edx + 0xc4]
adc ecx, dword [esp + edx + 0xc8]
add eax, dword [esp + 0x18]
adc ecx, dword [esp + 0x1c]
add dword [esp + 0x48], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
mov ebx, eax
adc dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x30]
mov edi, ecx
mov edx, ecx
shrd edi, ebx, 0x1c
mov ebp, eax
xor esi, esi
shl edx, 4
shr ebx, 0x1c
shld ebp, ecx, 0x1e
or edx, ebx
xor ebx, ebx
or ebx, ebp
or esi, edi
xor edx, ebx
mov ebx, dword [esp + 0x30]
mov edi, eax
mov ebp, eax
shr edi, 2
shl ecx, 0x1e
shld ebp, ebx, 0x19
or edi, ecx
mov ecx, eax
xor esi, edi
xor edi, edi
shr ecx, 7
shl ebx, 0x19
or ecx, ebx
or edi, ebp
xor esi, ecx
mov ecx, dword [esp + 0x38]
xor edx, edi
xor ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
and ecx, dword [esp + 0x40]
and ebx, dword [esp + 0x30]
xor edi, eax
and ebp, eax
and edi, dword [esp + 0x44]
xor ecx, ebx
xor edi, ebp
add esi, ecx
adc edx, edi
add esi, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x4c]
xor ecx, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
mov ebp, edx
mov eax, esi
shrd ebp, esi, 0x12
or ecx, ebx
xor ebx, ebx
shr eax, 9
shl edi, 0x17
or eax, edi
or ebx, ebp
mov ebp, dword [esp + 0x4c]
xor eax, ebx
mov edi, edx
mov ebx, edx
shl edi, 0xe
shr esi, 0x12
shrd ebx, ebp, 0xe
or edi, esi
mov esi, edx
xor ecx, edi
xor edi, edi
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
or edi, ebx
mov ebx, dword [esp + 0x54]
xor ecx, esi
xor eax, edi
mov edi, dword [esp + 0x4c]
mov esi, edx
and ebx, edx
mov edx, dword [esp + 0x58]
and edx, dword [esp + 0x4c]
not esi
and esi, dword [esp + 0x28]
not edi
and edi, dword [esp + 0x2c]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x50]
add eax, esi
adc ecx, edi
add eax, dword [edx + 0x40d230]
adc ecx, dword [edx + 0x40d234]
add eax, dword [esp + edx + 0xcc]
adc ecx, dword [esp + edx + 0xd0]
add eax, dword [esp + 0x10]
adc ecx, dword [esp + 0x14]
add dword [esp + 0x40], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov ebx, eax
adc dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x18]
mov edx, ecx
xor esi, esi
shl edx, 4
mov edi, ecx
shrd edi, ebx, 0x1c
mov ebp, eax
or esi, edi
shr ebx, 0x1c
shld ebp, ecx, 0x1e
or edx, ebx
xor ebx, ebx
or ebx, ebp
mov edi, eax
xor edx, ebx
mov ebx, dword [esp + 0x18]
mov ebp, eax
shr edi, 2
shl ecx, 0x1e
shld ebp, ebx, 0x19
or edi, ecx
mov ecx, eax
shr ecx, 7
shl ebx, 0x19
xor esi, edi
xor edi, edi
or ecx, ebx
mov ebx, dword [esp + 0x30]
and ebx, dword [esp + 0x18]
or edi, ebp
mov ebp, dword [esp + 0x34]
xor esi, ecx
mov ecx, dword [esp + 0x30]
xor edx, edi
xor ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
xor edi, eax
and ebp, eax
and ecx, dword [esp + 0x38]
and edi, dword [esp + 0x3c]
xor ecx, ebx
xor edi, ebp
add esi, ecx
adc edx, edi
add esi, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x44]
xor ecx, ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x40]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
mov ebp, edx
mov eax, esi
shrd ebp, esi, 0x12
or ecx, ebx
xor ebx, ebx
shr eax, 9
shl edi, 0x17
or eax, edi
or ebx, ebp
mov ebp, dword [esp + 0x44]
xor eax, ebx
mov edi, edx
mov ebx, edx
shl edi, 0xe
shr esi, 0x12
shrd ebx, ebp, 0xe
or edi, esi
mov esi, edx
xor ecx, edi
xor edi, edi
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
or edi, ebx
xor ecx, esi
xor eax, edi
mov edi, dword [esp + 0x44]
mov esi, edx
not esi
and esi, dword [esp + 0x54]
not edi
and edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x44]
and edx, dword [esp + 0x48]
and ebx, dword [esp + 0x4c]
xor esi, edx
mov edx, dword [esp + 0x50]
xor edi, ebx
add eax, esi
adc ecx, edi
add eax, dword [edx + 0x40d238]
adc ecx, dword [edx + 0x40d23c]
add eax, dword [esp + edx + 0xd4]
adc ecx, dword [esp + edx + 0xd8]
add eax, dword [esp + 0x28]
adc ecx, dword [esp + 0x2c]
add dword [esp + 0x38], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
mov ebx, eax
adc dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10]
mov edi, ecx
mov edx, ecx
shrd edi, ebx, 0x1c
mov ebp, eax
xor esi, esi
shl edx, 4
shr ebx, 0x1c
shld ebp, ecx, 0x1e
or edx, ebx
xor ebx, ebx
or ebx, ebp
or esi, edi
xor edx, ebx
mov ebx, dword [esp + 0x10]
mov edi, eax
mov ebp, eax
shr edi, 2
shl ecx, 0x1e
shld ebp, ebx, 0x19
or edi, ecx
mov ecx, eax
shr ecx, 7
shl ebx, 0x19
xor esi, edi
xor edi, edi
or ecx, ebx
mov ebx, dword [esp + 0x18]
and ebx, dword [esp + 0x10]
or edi, ebp
mov ebp, dword [esp + 0x1c]
xor esi, ecx
mov ecx, dword [esp + 0x18]
xor edx, edi
xor ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
xor edi, eax
and ebp, eax
and ecx, dword [esp + 0x30]
and edi, dword [esp + 0x34]
xor ecx, ebx
xor edi, ebp
add esi, ecx
adc edx, edi
add esi, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x38]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
mov eax, esi
or ecx, ebx
shr eax, 9
shl edi, 0x17
or eax, edi
mov edi, edx
xor ebx, ebx
mov ebp, edx
shrd ebp, esi, 0x12
or ebx, ebp
mov ebp, dword [esp + 0x3c]
xor eax, ebx
mov ebx, edx
shl edi, 0xe
shr esi, 0x12
shrd ebx, ebp, 0xe
or edi, esi
mov esi, edx
xor ecx, edi
xor edi, edi
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
or edi, ebx
mov ebx, dword [esp + 0x40]
xor ecx, esi
xor eax, edi
mov edi, dword [esp + 0x3c]
mov esi, edx
and ebx, edx
mov edx, dword [esp + 0x44]
and edx, dword [esp + 0x3c]
not esi
and esi, dword [esp + 0x48]
not edi
and edi, dword [esp + 0x4c]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x50]
add eax, esi
adc ecx, edi
add eax, dword [edx + 0x40d240]
adc ecx, dword [edx + 0x40d244]
add eax, dword [esp + edx + 0xdc]
adc ecx, dword [esp + edx + 0xe0]
add eax, dword [esp + 0x54]
adc ecx, dword [esp + 0x58]
add dword [esp + 0x30], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
mov ebx, eax
adc dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x28]
mov edi, ecx
mov edx, ecx
shrd edi, ebx, 0x1c
mov ebp, eax
xor esi, esi
shl edx, 4
shr ebx, 0x1c
shld ebp, ecx, 0x1e
or edx, ebx
xor ebx, ebx
or ebx, ebp
or esi, edi
xor edx, ebx
mov ebx, dword [esp + 0x28]
mov edi, eax
mov ebp, eax
shr edi, 2
shl ecx, 0x1e
shld ebp, ebx, 0x19
or edi, ecx
mov ecx, eax
shr ecx, 7
shl ebx, 0x19
xor esi, edi
xor edi, edi
or ecx, ebx
or edi, ebp
xor esi, ecx
mov ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x28]
xor edx, edi
mov edi, dword [esp + 0x14]
xor edi, eax
and ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
and ebx, dword [esp + 0x28]
and edi, dword [esp + 0x1c]
and ebp, eax
xor ecx, ebx
xor edi, ebp
add esi, ecx
adc edx, edi
add esi, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x30]
mov edi, edx
mov ebx, esi
shld ebx, edi, 0x17
mov ebp, edx
mov eax, esi
shrd ebp, esi, 0x12
or ecx, ebx
xor ebx, ebx
shr eax, 9
shl edi, 0x17
or eax, edi
or ebx, ebp
mov ebp, dword [esp + 0x34]
xor eax, ebx
mov edi, edx
mov ebx, edx
shl edi, 0xe
shr esi, 0x12
shrd ebx, ebp, 0xe
or edi, esi
mov esi, edx
xor ecx, edi
xor edi, edi
shl esi, 0x12
shr ebp, 0xe
or esi, ebp
or edi, ebx
mov ebx, dword [esp + 0x38]
xor ecx, esi
xor eax, edi
mov edi, dword [esp + 0x34]
mov esi, edx
and ebx, edx
mov edx, dword [esp + 0x3c]
and edx, dword [esp + 0x34]
not esi
and esi, dword [esp + 0x40]
not edi
and edi, dword [esp + 0x44]
xor esi, ebx
xor edi, edx
mov edx, dword [esp + 0x50]
add eax, esi
adc ecx, edi
add eax, dword [edx + 0x40d248]
adc ecx, dword [edx + 0x40d24c]
add eax, dword [esp + edx + 0xe4]
adc ecx, dword [esp + edx + 0xe8]
add eax, dword [esp + 0x48]
adc ecx, dword [esp + 0x4c]
add dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x24], ecx
mov ebx, eax
adc dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x54]
mov edi, ecx
mov edx, ecx
shrd edi, ebx, 0x1c
xor esi, esi
shl edx, 4
shr ebx, 0x1c
or esi, edi
or edx, ebx
mov ebp, eax
xor ebx, ebx
shld ebp, ecx, 0x1e
or ebx, ebp
mov edi, eax
xor edx, ebx
mov ebx, dword [esp + 0x54]
mov ebp, eax
shr edi, 2
shl ecx, 0x1e
shld ebp, ebx, 0x19
or edi, ecx
mov ecx, eax
shr ecx, 7
shl ebx, 0x19
xor esi, edi
xor edi, edi
or ecx, ebx
mov ebx, dword [esp + 0x28]
and ebx, dword [esp + 0x54]
or edi, ebp
mov ebp, dword [esp + 0x2c]
xor esi, ecx
mov ecx, dword [esp + 0x28]
xor edx, edi
xor ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x2c]
xor edi, eax
and ebp, eax
and ecx, dword [esp + 0x10]
and edi, dword [esp + 0x14]
xor ecx, ebx
xor edi, ebp
add esi, ecx
adc edx, edi
add esi, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
add dword [esp + 0x50], 0x40
cmp dword [esp + 0x50], 0x280
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], edx
jl 0x4044a7
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x330]
add edx, esi
mov esi, dword [esp + 0xa8]
adc esi, dword [esp + 0x4c]
mov dword [ecx], edx
mov edx, dword [esp + 0x9c]
pop edi
add edx, dword [esp + 0x50]
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x9c]
adc esi, eax
mov eax, dword [esp + 0x80]
add eax, dword [esp + 0x24]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x84]
mov dword [ecx + 0xc], esi
adc edx, dword [esp + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x70]
pop esi
add eax, dword [esp + 8]
mov dword [ecx + 0x14], edx
mov edx, dword [esp + 0x70]
pop ebp
adc edx, dword [esp + 8]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x88]
pop ebx
add eax, dword [esp + 8]
mov dword [ecx + 0x1c], edx
mov edx, dword [esp + 0x88]
adc edx, dword [esp + 0xc]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x6c]
add eax, dword [esp + 0x20]
mov dword [ecx + 0x24], edx
mov edx, dword [esp + 0x70]
adc edx, dword [esp + 0x24]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x28]
mov dword [ecx + 0x2c], edx
mov edx, dword [esp + 0x80]
adc edx, dword [esp + 0x2c]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x54]
add eax, dword [esp + 0x30]
mov dword [ecx + 0x34], edx
mov edx, dword [esp + 0x58]
adc edx, dword [esp + 0x34]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], edx
add esp, 0x31c
ret