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

Disassembly:
sub esp, 0xa8
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi]
mov edx, dword [eax + 4]
push edi
mov dword [esp + 0x50], esi
call edx
push eax
mov eax, dword [esi + 4]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.00468d50
mov eax, dword [esp + 0x60]
mov edx, eax
and edx, 0xff0000
mov esi, eax
shr esi, 0x10
or edx, esi
shr edx, 8
mov esi, eax
shl esi, 0x10
and eax, 0xff00
or esi, eax
mov eax, dword [esp + 0x64]
shl esi, 8
or edx, esi
mov dword [esp + 0x60], edx
mov edx, eax
and edx, 0xff0000
mov esi, eax
shr esi, 0x10
or edx, esi
shr edx, 8
mov esi, eax
shl esi, 0x10
and eax, 0xff00
or esi, eax
mov eax, dword [esp + 0x68]
shl esi, 8
or edx, esi
mov dword [esp + 0x64], edx
mov edx, eax
and edx, 0xff0000
mov esi, eax
shr esi, 0x10
or edx, esi
mov esi, eax
shl esi, 0x10
shr edx, 8
and eax, 0xff00
or esi, eax
mov eax, dword [esp + 0x6c]
shl esi, 8
or edx, esi
mov dword [esp + 0x68], edx
mov edx, eax
and edx, 0xff0000
mov esi, eax
shr esi, 0x10
or edx, esi
mov esi, eax
shl esi, 0x10
and eax, 0xff00
or esi, eax
mov eax, dword [esp + 0x70]
shr edx, 8
shl esi, 8
or edx, esi
mov dword [esp + 0x6c], edx
mov ebp, eax
mov edx, eax
and ebp, 0xff0000
shr edx, 0x10
or ebp, edx
add esp, 0xc
mov ecx, 0x5a827999
mov dword [esp + 0x44], 0x13
shr ebp, 8
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
mov eax, dword [esp + 0x68]
shl edx, 8
or ebp, edx
mov edi, eax
mov edx, eax
shr edx, 0x10
and edi, 0xff0000
or edi, edx
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
mov eax, dword [esp + 0x6c]
shl edx, 8
mov esi, eax
shr edi, 8
or edi, edx
mov edx, eax
shr edx, 0x10
and esi, 0xff0000
or esi, edx
mov edx, eax
and edx, 0xff00
shl eax, 0x10
or edx, eax
mov eax, dword [esp + 0x70]
shl edx, 8
shr esi, 8
or esi, edx
mov edx, eax
mov ebx, eax
shr ebx, 0x10
and edx, 0xff0000
or edx, ebx
mov ebx, eax
and ebx, 0xff00
shl eax, 0x10
or ebx, eax
mov eax, dword [esp + 0x50]
shr edx, 8
shl ebx, 8
or edx, ebx
mov dword [esp + 0x70], edx
mov dword [esp + 0x4c], 0x8a
mov dword [esp + 0x3c], 0x6277eb00
mov dword [esp + 0x20], 0x79
mov dword [esp + 0x24], 0xf39dff5f
mov dword [esp + 0x18], 0x68
mov dword [esp + 0x34], 0x84c413be
mov dword [esp + 0x14], 0x57
mov dword [esp + 0x1c], 0x15ea281d
mov dword [esp + 0x28], 0x46
mov dword [esp + 0x38], 0xa7103c7c
mov dword [esp + 0x40], 0x35
mov dword [esp + 0x2c], 0x383650db
mov dword [esp + 0x30], 0x24
mov dword [esp + 0x48], 0xc95c653a
add eax, 0x14
mov dword [esp + 0x50], 0xc
jmp 0x40eeec
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0xa0], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x34]
add dword [esp + 0x48], 0x76cf5d08
add dword [esp + 0x2c], 0x76cf5d08
add dword [esp + 0x38], 0x76cf5d08
add dword [esp + 0x1c], 0x76cf5d08
add dword [esp + 0x34], 0x76cf5d08
add dword [esp + 0x44], 0x88
add dword [esp + 0x30], 0x88
add dword [esp + 0x40], 0x88
add dword [esp + 0x28], 0x88
add dword [esp + 0x14], 0x88
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x18]
add dword [esp + 0x18], 0x88
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x24]
add dword [esp + 0x24], 0x76cf5d08
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x20]
add dword [esp + 0x20], 0x88
mov dword [esp + 0x74], ecx
add ecx, 0x76cf5d08
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0x3c]
add dword [esp + 0x3c], 0x76cf5d08
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x74]
add edx, ecx
movzx ecx, byte [esp + 0x98]
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0xb4], ebx
add ebx, 0x88
rol edx, cl
mov dword [esp + 0x4c], ebx
mov ecx, edx
shr ecx, 0x10
mov ebx, edx
shr ebx, 0x18
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x51a0c8]
xor ecx, dword [ebx*4 + 0x519cc8]
mov ebx, edx
shr ebx, 8
and ebx, 0xff
sub ecx, dword [ebx*4 + 0x51a4c8]
and edx, 0xff
add ecx, dword [edx*4 + 0x51a8c8]
mov edx, dword [esp + 0x78]
xor esi, ecx
movzx ecx, byte [esp + 0x9c]
xor edx, esi
rol edx, cl
mov ecx, edx
mov ebx, ecx
shr ebx, 8
shr edx, 0x10
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x51a4c8]
and edx, 0xff
sub ebx, dword [edx*4 + 0x51a0c8]
mov edx, ecx
shr edx, 0x18
add ebx, dword [edx*4 + 0x519cc8]
and ecx, 0xff
xor ebx, dword [ecx*4 + 0x51a8c8]
movzx ecx, byte [esp + 0xa0]
mov edx, dword [esp + 0x7c]
xor edi, ebx
sub edx, edi
rol edx, cl
mov ecx, edx
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x51a0c8]
mov ebx, ecx
shr ebx, 0x18
add edx, dword [ebx*4 + 0x519cc8]
mov ebx, ecx
shr ebx, 8
and ebx, 0xff
xor edx, dword [ebx*4 + 0x51a4c8]
and ecx, 0xff
sub edx, dword [ecx*4 + 0x51a8c8]
mov ecx, dword [esp + 0x80]
xor ebp, edx
lea edx, [ecx + ebp]
movzx ecx, byte [esp + 0xa4]
rol edx, cl
mov ecx, edx
shr ecx, 0x10
mov ebx, edx
shr ebx, 0x18
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x51a0c8]
xor ecx, dword [ebx*4 + 0x519cc8]
mov ebx, edx
shr ebx, 8
and ebx, 0xff
sub ecx, dword [ebx*4 + 0x51a4c8]
and edx, 0xff
add ecx, dword [edx*4 + 0x51a8c8]
mov edx, dword [esp + 0x84]
mov ebx, ecx
mov ecx, dword [esp + 0x60]
xor ecx, ebx
xor edx, ecx
mov dword [esp + 0x60], ecx
movzx ecx, byte [esp + 0xa8]
rol edx, cl
mov ecx, edx
shr edx, 0x10
mov ebx, ecx
shr ebx, 8
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x51a4c8]
and edx, 0xff
sub ebx, dword [edx*4 + 0x51a0c8]
mov edx, ecx
shr edx, 0x18
add ebx, dword [edx*4 + 0x519cc8]
mov edx, dword [esp + 0x88]
and ecx, 0xff
xor ebx, dword [ecx*4 + 0x51a8c8]
mov ecx, dword [esp + 0x5c]
xor ecx, ebx
sub edx, ecx
mov dword [esp + 0x5c], ecx
movzx ecx, byte [esp + 0xac]
rol edx, cl
mov ecx, edx
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x51a0c8]
mov ebx, ecx
shr ebx, 0x18
add edx, dword [ebx*4 + 0x519cc8]
mov ebx, ecx
shr ebx, 8
and ebx, 0xff
xor edx, dword [ebx*4 + 0x51a4c8]
and ecx, 0xff
sub edx, dword [ecx*4 + 0x51a8c8]
mov ecx, dword [esp + 0x58]
xor ecx, edx
mov edx, dword [esp + 0x8c]
add edx, ecx
mov dword [esp + 0x58], ecx
movzx ecx, byte [esp + 0xb0]
rol edx, cl
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x51a0c8]
mov ebx, edx
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x519cc8]
mov ebx, edx
shr ebx, 8
and ebx, 0xff
sub ecx, dword [ebx*4 + 0x51a4c8]
and edx, 0xff
add ecx, dword [edx*4 + 0x51a8c8]
mov edx, dword [esp + 0x90]
mov ebx, ecx
mov ecx, dword [esp + 0x54]
xor ecx, ebx
xor edx, ecx
mov dword [esp + 0x54], ecx
movzx ecx, byte [esp + 0xb4]
rol edx, cl
mov ecx, edx
mov ebx, ecx
shr ebx, 8
shr edx, 0x10
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x51a4c8]
and edx, 0xff
sub ebx, dword [edx*4 + 0x51a0c8]
mov edx, ecx
and ecx, 0xff
shr edx, 0x18
add ebx, dword [edx*4 + 0x519cc8]
mov edx, dword [esp + 0x94]
xor ebx, dword [ecx*4 + 0x51a8c8]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x40]
xor dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x74], edx
add edx, 0x76cf5d08
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x94], edx
mov edx, 0x76cf5d08
mov dword [esp + 0x78], ebx
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x4c]
add ebx, edx
add dword [esp + 0x2c], edx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x48], ebx
add dword [esp + 0x38], edx
add dword [esp + 0x1c], edx
add dword [esp + 0x34], edx
add dword [esp + 0x24], edx
add dword [esp + 0x3c], edx
mov edx, 0x88
add dword [esp + 0x44], edx
add dword [esp + 0x30], edx
add dword [esp + 0x40], edx
add dword [esp + 0x28], edx
add dword [esp + 0x14], edx
add dword [esp + 0x18], edx
add dword [esp + 0x20], edx
add ecx, edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x74]
add edx, ecx
movzx ecx, byte [esp + 0x98]
rol edx, cl
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x51a0c8]
mov ebx, edx
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x519cc8]
mov ebx, edx
shr ebx, 8
and ebx, 0xff
sub ecx, dword [ebx*4 + 0x51a4c8]
and edx, 0xff
add ecx, dword [edx*4 + 0x51a8c8]
mov edx, dword [esp + 0x78]
xor esi, ecx
movzx ecx, byte [esp + 0x9c]
xor edx, esi
rol edx, cl
mov ecx, edx
mov ebx, ecx
shr ebx, 8
shr edx, 0x10
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x51a4c8]
and edx, 0xff
sub ebx, dword [edx*4 + 0x51a0c8]
mov edx, ecx
shr edx, 0x18
add ebx, dword [edx*4 + 0x519cc8]
mov edx, dword [esp + 0x7c]
and ecx, 0xff
xor ebx, dword [ecx*4 + 0x51a8c8]
movzx ecx, byte [esp + 0xa0]
xor edi, ebx
sub edx, edi
rol edx, cl
mov ecx, edx
shr edx, 0x10
mov ebx, ecx
and edx, 0xff
mov edx, dword [edx*4 + 0x51a0c8]
shr ebx, 0x18
add edx, dword [ebx*4 + 0x519cc8]
mov ebx, ecx
shr ebx, 8
and ecx, 0xff
and ebx, 0xff
xor edx, dword [ebx*4 + 0x51a4c8]
sub edx, dword [ecx*4 + 0x51a8c8]
mov ecx, dword [esp + 0x80]
xor ebp, edx
lea edx, [ecx + ebp]
movzx ecx, byte [esp + 0xa4]
rol edx, cl
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x51a0c8]
mov ebx, edx
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x519cc8]
mov ebx, edx
shr ebx, 8
and ebx, 0xff
sub ecx, dword [ebx*4 + 0x51a4c8]
and edx, 0xff
add ecx, dword [edx*4 + 0x51a8c8]
mov edx, dword [esp + 0x84]
mov ebx, ecx
mov ecx, dword [esp + 0x60]
xor ecx, ebx
xor edx, ecx
mov dword [esp + 0x60], ecx
movzx ecx, byte [esp + 0xa8]
rol edx, cl
mov ecx, edx
mov ebx, ecx
shr ebx, 8
shr edx, 0x10
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x51a4c8]
and edx, 0xff
sub ebx, dword [edx*4 + 0x51a0c8]
mov edx, ecx
and ecx, 0xff
shr edx, 0x18
add ebx, dword [edx*4 + 0x519cc8]
mov edx, dword [esp + 0x88]
xor ebx, dword [ecx*4 + 0x51a8c8]
mov ecx, dword [esp + 0x5c]
xor ecx, ebx
sub edx, ecx
mov dword [esp + 0x5c], ecx
movzx ecx, byte [esp + 0xac]
rol edx, cl
mov ecx, edx
shr edx, 0x10
mov ebx, ecx
and edx, 0xff
mov edx, dword [edx*4 + 0x51a0c8]
shr ebx, 0x18
add edx, dword [ebx*4 + 0x519cc8]
mov ebx, ecx
and ecx, 0xff
shr ebx, 8
and ebx, 0xff
xor edx, dword [ebx*4 + 0x51a4c8]
sub edx, dword [ecx*4 + 0x51a8c8]
mov ecx, dword [esp + 0x58]
xor ecx, edx
mov edx, dword [esp + 0x8c]
add edx, ecx
mov dword [esp + 0x58], ecx
movzx ecx, byte [esp + 0xb0]
rol edx, cl
mov ecx, edx
shr ecx, 0x10
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x51a0c8]
mov ebx, edx
shr ebx, 0x18
xor ecx, dword [ebx*4 + 0x519cc8]
mov ebx, edx
shr ebx, 8
and ebx, 0xff
sub ecx, dword [ebx*4 + 0x51a4c8]
and edx, 0xff
add ecx, dword [edx*4 + 0x51a8c8]
mov edx, dword [esp + 0x90]
mov ebx, ecx
mov ecx, dword [esp + 0x54]
xor ecx, ebx
xor edx, ecx
mov dword [esp + 0x54], ecx
movzx ecx, byte [esp + 0xb4]
rol edx, cl
mov ecx, edx
shr edx, 0x10
and edx, 0xff
mov ebx, ecx
shr ebx, 8
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x51a4c8]
sub ebx, dword [edx*4 + 0x51a0c8]
mov edx, ecx
and ecx, 0xff
shr edx, 0x18
add ebx, dword [edx*4 + 0x519cc8]
mov edx, dword [esp + 0x70]
xor ebx, dword [ecx*4 + 0x51a8c8]
mov ecx, dword [esp + 0x54]
and ecx, 0x1f
mov dword [eax - 4], ecx
mov ecx, dword [esp + 0x5c]
and ecx, 0x1f
mov dword [eax], ecx
mov ecx, ebp
and ecx, 0x1f
mov dword [eax + 4], ecx
mov ecx, esi
and ecx, 0x1f
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x60]
xor edx, ebx
mov dword [eax + 0xc4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 0xbc], edx
mov dword [eax + 0xc0], edi
mov dword [eax + 0xc8], ecx
add eax, 0x10
sub dword [esp + 0x50], 1
mov dword [esp + 0x70], edx
jne 0x40eee5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret 4