Function at 0x40e890
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x18], 0
push edi
mov dword [ebp - 0x2c], esi
lea ebx, [esi + 0x18]
nop dword [eax + eax]
mov eax, dword [esi + 0xa4]
xor edi, edi
xor eax, dword [esi + 0x54]
xor eax, dword [esi + 0x2c]
xor eax, dword [esi + 0x7c]
xor eax, dword [esi + 4]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x30]
xor eax, dword [esi + 0x80]
xor eax, dword [esi + 8]
xor eax, dword [esi + 0xa8]
xor eax, dword [esi + 0x58]
mov edx, dword [esi + 0x10]
xor edx, dword [esi + 0x88]
xor edx, dword [esi + 0xb0]
xor edx, dword [esi + 0x60]
xor edx, dword [esi + 0x38]
mov ecx, dword [esi + 0xa0]
xor ecx, dword [esi + 0x50]
xor ecx, dword [esi + 0x28]
xor ecx, dword [esi + 0x78]
xor ecx, dword [esi]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x14]
xor eax, dword [esi + 0x8c]
xor eax, dword [esi + 0xb4]
xor eax, dword [esi + 0x64]
xor eax, dword [esi + 0x3c]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0xbc]
xor eax, dword [esi + 0x6c]
xor eax, dword [esi + 0x44]
xor eax, dword [ebx + 4]
xor eax, dword [esi + 0x94]
mov dword [ebp - 4], edx
mov edx, dword [esi + 0xb8]
xor edx, dword [esi + 0x68]
xor edx, dword [esi + 0x40]
xor edx, dword [ebx]
xor edx, dword [esi + 0x90]
mov ebx, dword [esi + 0x24]
xor ebx, dword [esi + 0x9c]
xor ebx, dword [esi + 0xc4]
xor ebx, dword [esi + 0x74]
xor ebx, dword [esi + 0x4c]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x20]
xor eax, dword [esi + 0x98]
xor eax, dword [esi + 0xc0]
xor eax, dword [esi + 0x70]
xor eax, dword [esi + 0x48]
mov dword [ebp - 0x24], ecx
mov ecx, dword [esi + 0x34]
xor ecx, dword [esi + 0x84]
xor ecx, dword [esi + 0xc]
xor ecx, dword [esi + 0xac]
xor ecx, dword [esi + 0x5c]
mov dword [ebp - 0x28], edx
mov edx, ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], ecx
shld ecx, eax, 1
shr edx, 0x1f
add eax, eax
or edi, ecx
mov ecx, dword [ebp - 0x1c]
or edx, eax
xor edx, dword [ebp - 8]
xor edi, ebx
xor dword [esi], edx
xor dword [esi + 0x28], edx
xor dword [esi + 0x50], edx
xor dword [esi + 0x78], edx
xor dword [esi + 0xa0], edx
mov edx, ecx
xor dword [esi + 4], edi
xor dword [esi + 0x2c], edi
xor dword [esi + 0x54], edi
xor dword [esi + 0x7c], edi
xor dword [esi + 0xa4], edi
mov eax, dword [ebp - 4]
xor edi, edi
shld ecx, eax, 1
shr edx, 0x1f
add eax, eax
or edi, ecx
mov ecx, dword [ebp - 0x10]
or edx, eax
xor edx, dword [ebp - 0x24]
xor dword [esi + 8], edx
xor dword [esi + 0x30], edx
xor dword [esi + 0x58], edx
xor dword [esi + 0x80], edx
xor dword [esi + 0xa8], edx
mov edx, ecx
mov eax, dword [ebp - 0x28]
xor edi, dword [ebp - 0x20]
xor dword [esi + 0xc], edi
xor dword [esi + 0x34], edi
xor dword [esi + 0x5c], edi
xor dword [esi + 0x84], edi
xor dword [esi + 0xac], edi
xor edi, edi
shld ecx, eax, 1
shr edx, 0x1f
add eax, eax
or edi, ecx
or edx, eax
xor edi, dword [ebp - 0x14]
xor edx, dword [ebp - 0xc]
mov eax, ebx
xor dword [esi + 0x10], edx
xor ecx, ecx
xor dword [esi + 0x38], edx
xor dword [esi + 0x60], edx
xor dword [esi + 0x88], edx
xor dword [esi + 0xb0], edx
mov edx, dword [ebp - 8]
xor dword [esi + 0x14], edi
xor dword [esi + 0x3c], edi
xor dword [esi + 0x64], edi
xor dword [esi + 0x8c], edi
xor dword [esi + 0xb4], edi
shld ebx, edx, 1
shr eax, 0x1f
add edx, edx
or ecx, ebx
xor ecx, dword [ebp - 0x1c]
or eax, edx
xor eax, dword [ebp - 4]
xor dword [esi + 0x18], eax
xor dword [esi + 0x40], eax
xor dword [esi + 0x68], eax
xor dword [esi + 0x90], eax
xor dword [esi + 0xb8], eax
mov edx, dword [ebp - 0x20]
mov eax, edx
mov ebx, dword [ebp - 0x24]
xor dword [esi + 0x1c], ecx
xor dword [esi + 0x44], ecx
xor dword [esi + 0x6c], ecx
xor dword [esi + 0x94], ecx
xor dword [esi + 0xbc], ecx
xor ecx, ecx
shld edx, ebx, 1
shr eax, 0x1f
add ebx, ebx
or ecx, edx
xor ecx, dword [ebp - 0x10]
or eax, ebx
xor eax, dword [ebp - 0x28]
xor dword [esi + 0x20], eax
xor dword [esi + 0x24], ecx
xor dword [esi + 0x48], eax
xor dword [esi + 0x4c], ecx
xor dword [esi + 0x70], eax
xor dword [esi + 0x74], ecx
xor dword [esi + 0x98], eax
xor dword [esi + 0x9c], ecx
xor dword [esi + 0xc0], eax
xor dword [esi + 0xc4], ecx
mov eax, 1
add esi, 0x18
mov dword [ebp - 0x10], eax
mov edx, dword [esi - 0xc]
dec eax
sar eax, 2
mov ecx, 0x40
mov eax, dword [eax*4 + 0x47a2f0]
mov dword [ebp - 4], eax
shr eax, 0x18
mov dword [ebp - 0x14], eax
sub ecx, eax
mov eax, dword [esi - 0x10]
call fcn.00465890
mov ecx, dword [ebp - 0x14]
mov edi, eax
mov eax, dword [esi - 0x10]
mov ebx, edx
mov edx, dword [esi - 0xc]
call fcn.004658b0
or edi, eax
or ebx, edx
mov eax, dword [ebp - 4]
mov ecx, 0x40
mov edx, dword [esi - 4]
shr eax, 0x10
movzx eax, al
mov dword [ebp - 0x14], eax
sub ecx, eax
mov eax, dword [esi - 8]
mov dword [esi - 0x10], edi
mov dword [esi - 0xc], ebx
call fcn.00465890
mov ecx, dword [ebp - 0x14]
mov edi, eax
mov eax, dword [esi - 8]
mov ebx, edx
mov edx, dword [esi - 4]
call fcn.004658b0
or edi, eax
or ebx, edx
mov eax, dword [ebp - 4]
mov ecx, 0x40
mov edx, dword [esi + 4]
shr eax, 8
movzx eax, al
mov dword [ebp - 0x14], eax
sub ecx, eax
mov eax, dword [esi]
mov dword [esi - 8], edi
mov dword [esi - 4], ebx
call fcn.00465890
mov ecx, dword [ebp - 0x14]
mov edi, eax
mov eax, dword [esi]
mov ebx, edx
mov edx, dword [esi + 4]
call fcn.004658b0
or edi, eax
or ebx, edx
mov eax, dword [ebp - 4]
mov ecx, 0x40
mov edx, dword [esi + 0xc]
movzx eax, al
mov dword [ebp - 0x14], eax
sub ecx, eax
mov eax, dword [esi + 8]
mov dword [esi], edi
mov dword [esi + 4], ebx
call fcn.00465890
mov ecx, dword [ebp - 0x14]
mov edi, eax
mov eax, dword [esi + 8]
mov ebx, edx
mov edx, dword [esi + 0xc]
call fcn.004658b0
or edi, eax
lea esi, [esi + 0x20]
mov eax, dword [ebp - 0x10]
or ebx, edx
add eax, 4
mov dword [esi - 0x18], edi
mov dword [esi - 0x14], ebx
mov dword [ebp - 0x10], eax
cmp eax, 0x19
jl 0x40eaf5
mov esi, dword [ebp - 0x2c]
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x54]
mov eax, dword [esi + 8]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x38]
mov edi, dword [esi + 0x3c]
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], edx
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x5c]
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], edi
mov eax, dword [esi + 0x88]
mov edi, dword [esi + 0x8c]
mov dword [esi + 0x88], ecx
mov dword [esi + 0x8c], edx
mov ecx, dword [esi + 0x90]
mov edx, dword [esi + 0x94]
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], edi
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x1c]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], edx
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], edi
mov eax, dword [esi + 0x80]
mov edi, dword [esi + 0x84]
mov dword [esi + 0x80], ecx
mov dword [esi + 0x84], edx
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edi
mov eax, dword [esi + 0xa8]
mov edi, dword [esi + 0xac]
mov dword [esi + 0xa8], ecx
mov dword [esi + 0xac], edx
mov ecx, dword [esi + 0xc0]
mov edx, dword [esi + 0xc4]
mov dword [esi + 0xc0], eax
mov dword [esi + 0xc4], edi
mov eax, dword [esi + 0x20]
mov edi, dword [esi + 0x24]
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], edx
mov ecx, dword [esi + 0x78]
mov edx, dword [esi + 0x7c]
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], edi
mov eax, dword [esi + 0xb8]
mov edi, dword [esi + 0xbc]
mov dword [esi + 0xb8], ecx
mov dword [esi + 0xbc], edx
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 0x9c]
mov dword [esi + 0x98], eax
mov dword [esi + 0x9c], edi
mov eax, dword [esi + 0x68]
mov edi, dword [esi + 0x6c]
mov dword [esi + 0x68], ecx
mov dword [esi + 0x6c], edx
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], edi
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edx
mov ecx, dword [esi + 0xa0]
mov edx, dword [esi + 0xa4]
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], edi
mov eax, dword [esi + 0x70]
mov edi, dword [esi + 0x74]
mov dword [esi + 0x70], ecx
mov dword [esi + 0x74], edx
mov ecx, dword [esi + 0xb0]
mov edx, dword [esi + 0xb4]
mov dword [esi + 0xb0], eax
mov dword [esi + 0xb4], edi
mov edi, dword [esi + 0x48]
mov ebx, dword [esi + 0x4c]
mov dword [esi + 0x48], ecx
mov dword [esi + 0x4c], edx
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], ebx
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [ebp - 4], eax
mov eax, dword [esi + 4]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x1c]
mov dword [ebp - 0xc], eax
not eax
mov dword [ebp - 0x10], ecx
and eax, edx
xor eax, dword [ebp - 8]
not ecx
and ecx, edi
mov dword [esi + 4], eax
xor ecx, dword [ebp - 4]
mov eax, edx
mov dword [esi], ecx
not eax
and eax, ebx
mov ecx, edi
xor eax, dword [ebp - 0xc]
not ecx
and ecx, dword [esi + 0x18]
xor ecx, dword [ebp - 0x10]
mov dword [esi + 0xc], eax
mov eax, ebx
mov dword [esi + 8], ecx
not eax
and eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x18]
xor eax, edx
not ecx
mov dword [esi + 0x14], eax
and ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
xor ecx, edi
mov edi, dword [esi + 0x38]
not eax
and eax, dword [ebp - 8]
mov dword [esi + 0x10], ecx
xor eax, ebx
mov ecx, dword [esi + 0x20]
not ecx
mov dword [esi + 0x1c], eax
and ecx, dword [ebp - 4]
xor dword [esi + 0x18], ecx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
not ecx
and ecx, dword [ebp - 0x10]
not eax
and eax, dword [ebp - 0xc]
xor dword [esi + 0x20], ecx
xor dword [esi + 0x24], eax
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], eax
mov edx, dword [esi + 0x3c]
not eax
and eax, edx
mov ebx, dword [esi + 0x44]
xor eax, dword [ebp - 8]
not ecx
and ecx, edi
mov dword [esi + 0x2c], eax
xor ecx, dword [ebp - 0xc]
mov eax, edx
not eax
mov dword [esi + 0x28], ecx
and eax, ebx
mov ecx, edi
xor eax, dword [ebp - 4]
not ecx
and ecx, dword [esi + 0x40]
xor ecx, dword [ebp - 0x10]
mov dword [esi + 0x34], eax
mov eax, ebx
not eax
mov dword [esi + 0x30], ecx
and eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x40]
xor eax, edx
not ecx
mov dword [esi + 0x3c], eax
and ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
xor ecx, edi
not eax
mov dword [esi + 0x38], ecx
and eax, dword [ebp - 8]
mov ecx, dword [esi + 0x48]
xor eax, ebx
mov edi, dword [esi + 0x60]
not ecx
and ecx, dword [ebp - 0xc]
xor dword [esi + 0x40], ecx
mov ecx, dword [ebp - 0xc]
mov edx, dword [esi + 0x64]
not ecx
and ecx, dword [ebp - 0x10]
xor dword [esi + 0x48], ecx
mov ecx, dword [esi + 0x58]
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 8]
not eax
mov ebx, dword [esi + 0x6c]
and eax, dword [ebp - 4]
xor dword [esi + 0x4c], eax
mov eax, dword [esi + 0x50]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x54]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x10], ecx
not ecx
mov dword [ebp - 4], eax
and ecx, edi
xor ecx, dword [ebp - 0xc]
not eax
and eax, edx
mov dword [esi + 0x50], ecx
xor eax, dword [ebp - 8]
mov ecx, edi
mov dword [esi + 0x54], eax
not ecx
and ecx, dword [esi + 0x68]
mov eax, edx
xor ecx, dword [ebp - 0x10]
not eax
and eax, ebx
mov dword [esi + 0x58], ecx
xor eax, dword [ebp - 4]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x5c], eax
not ecx
and ecx, dword [esi + 0x70]
mov eax, ebx
not eax
and eax, dword [esi + 0x74]
xor ecx, edi
xor eax, edx
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x70]
not eax
and eax, dword [ebp - 8]
not ecx
and ecx, dword [ebp - 0xc]
xor eax, ebx
xor dword [esi + 0x68], ecx
mov ecx, dword [ebp - 0xc]
mov dword [esi + 0x6c], eax
not ecx
and ecx, dword [ebp - 0x10]
xor dword [esi + 0x70], ecx
mov eax, dword [ebp - 8]
mov ecx, dword [esi + 0x80]
not eax
and eax, dword [ebp - 4]
xor dword [esi + 0x74], eax
mov eax, dword [esi + 0x78]
mov edi, dword [esi + 0x88]
mov edx, dword [esi + 0x8c]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x7c]
mov ebx, dword [esi + 0x94]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x84]
mov dword [ebp - 4], eax
not eax
mov dword [ebp - 0x10], ecx
and eax, edx
xor eax, dword [ebp - 8]
not ecx
and ecx, edi
mov dword [esi + 0x7c], eax
xor ecx, dword [ebp - 0xc]
mov eax, edx
mov dword [esi + 0x78], ecx
not eax
and eax, ebx
mov ecx, edi
xor eax, dword [ebp - 4]
not ecx
and ecx, dword [esi + 0x90]
xor ecx, dword [ebp - 0x10]
mov dword [esi + 0x84], eax
mov eax, ebx
mov dword [esi + 0x80], ecx
not eax
and eax, dword [esi + 0x9c]
mov ecx, dword [esi + 0x90]
xor eax, edx
mov edx, dword [esi + 0x9c]
not ecx
and ecx, dword [esi + 0x98]
xor ecx, edi
mov dword [esi + 0x8c], eax
mov edi, dword [esi + 0x98]
mov eax, edx
mov dword [esi + 0x88], ecx
not eax
and eax, dword [ebp - 8]
mov ecx, edi
not ecx
xor eax, ebx
and ecx, dword [ebp - 0xc]
xor dword [esi + 0x90], ecx
mov ecx, dword [ebp - 0xc]
mov dword [esi + 0x94], eax
not ecx
mov eax, dword [ebp - 8]
and ecx, dword [ebp - 0x10]
not eax
and eax, dword [ebp - 4]
xor ecx, edi
xor eax, edx
mov dword [esi + 0x98], ecx
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0xa0]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0xa4]
mov edx, dword [esi + 0xb4]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0xac]
mov dword [ebp - 4], eax
not eax
mov ebx, dword [esi + 0xbc]
and eax, edx
xor eax, dword [ebp - 8]
mov ecx, dword [esi + 0xa8]
mov edi, dword [esi + 0xb0]
mov dword [esi + 0xa4], eax
mov eax, edx
not eax
mov dword [ebp - 0x10], ecx
and eax, ebx
not ecx
xor eax, dword [ebp - 4]
and ecx, edi
xor ecx, dword [ebp - 0xc]
mov dword [esi + 0xac], eax
mov eax, ebx
not eax
mov dword [esi + 0xa0], ecx
and eax, dword [esi + 0xc4]
mov ecx, edi
xor eax, edx
not ecx
and ecx, dword [esi + 0xb8]
xor ecx, dword [ebp - 0x10]
mov edx, dword [esi + 0xc4]
mov dword [esi + 0xb4], eax
mov eax, edx
not eax
mov dword [esi + 0xa8], ecx
and eax, dword [ebp - 8]
mov ecx, dword [esi + 0xb8]
xor eax, ebx
not ecx
mov dword [esi + 0xbc], eax
and ecx, dword [esi + 0xc0]
mov eax, dword [ebp - 8]
xor ecx, edi
mov edi, dword [esi + 0xc0]
not eax
and eax, dword [ebp - 4]
mov dword [esi + 0xb0], ecx
xor eax, edx
mov dword [esi + 0xc4], eax
mov ecx, edi
mov eax, dword [ebp - 0x18]
not ecx
and ecx, dword [ebp - 0xc]
xor dword [esi + 0xb8], ecx
mov ecx, dword [ebp - 0xc]
mov bl, byte [eax + 0x47a440]
not ecx
and ecx, dword [ebp - 0x10]
xor ecx, edi
movzx eax, bl
cdq
and eax, 0xffffffc0
mov dword [esi + 0xc0], ecx
mov edi, edx
mov cl, bl
shld edi, eax, 0x1f
and cl, 0x20
shl eax, 0x1f
mov dword [ebp - 0x14], eax
movzx eax, cl
mov ecx, dword [ebp - 0x14]
cdq
or ecx, eax
or edi, edx
shld edi, ecx, 0xf
mov al, bl
shl ecx, 0xf
and al, 0x10
movzx eax, al
and bl, 0x8f
cdq
or ecx, eax
or edi, edx
shld edi, ecx, 0xb
movzx eax, bl
lea ebx, [esi + 0x18]
cdq
shl ecx, 0xb
or edi, edx
xor dword [esi + 4], edi
or ecx, eax
mov eax, dword [ebp - 0x18]
xor dword [esi], ecx
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x18
jl 0x40e8b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret