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

Disassembly:
mov ecx, dword [0x5efcb0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x58]
cmp eax, dword [ecx + 8]
jbe 0x4efcda
sub esp, 0xd8
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov eax, dword [esp + 0xdc]
test byte [eax], al
cmp dword [eax + 0x2000c], 0x7ffe0001
jge 0x4ef466
jmp 0x4ef477
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
call fcn.004f0300
jmp 0x4ef479
jmp 0x4ef479
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xa4], eax
cmp eax, 0x11
jl 0x4ef491
jmp 0x4ef558
mov eax, dword [esp + 0xdc]
test byte [eax], al
mov ecx, dword [esp + 0xdc]
test byte [ecx], al
mov ecx, dword [ecx + 0x2000c]
add ecx, 0xffff
mov dword [eax + 0x2000c], ecx
mov eax, dword [esp + 0xdc]
test byte [eax], al
jmp 0x4ef4c0
jmp 0x4ef4c2
mov eax, dword [esp + 0xdc]
test byte [eax], al
mov dword [eax + 0x20004], 0
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0xe4]
mov ebp, dword [esp + 0xf4]
mov esi, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebp
call fcn.004efcf0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], edx
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], edx
add esp, 0xd8
ret
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xa4], eax
add eax, 0xfffffff1
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.004ef000
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], eax
mov dword [esp], eax
call fcn.004ef2c0
mov eax, dword [esp + 4]
mov dword [esp + 0x54], eax
jmp 0x4ef5c4
jmp 0x4ef5c6
mov dword [esp + 0x34], 0x20
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
jmp 0x4ef5e8
jmp 0x4ef5ea
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x3c], ebx
mov ebp, dword [esp + 0x34]
sar ebp, 5
mov dword [esp + 0x70], ebp
add ebx, ebp
mov dword [esp + 0x50], ebx
add dword [esp + 0x34], ebp
cmp dword [esp + 0x38], ebx
jl 0x4ef60f
jmp 0x4ef614
jmp 0x4ef8f2
mov eax, dword [esp + 0xdc]
test byte [eax], al
mov ecx, dword [esp + 0x54]
and ecx, 0x3fff
lea eax, [eax + ecx*8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.004ef000
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x54]
and eax, 0x3fff
mov dword [esp + 0x9c], eax
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xdc]
test byte [ecx], al
add eax, dword [ecx + 0x2000c]
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x94], ecx
mov edx, dword [esp + 0xdc]
test byte [edx], al
mov ebx, dword [esp + 0x9c]
lea edx, [edx + ebx*8]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.004ef2c0
mov eax, dword [esp + 4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0xdc]
test byte [edx], al
sub ecx, dword [edx + 0x2000c]
sub eax, ecx
mov dword [esp + 0x48], eax
cmp eax, 0x8000
setg al
mov byte [esp + 0x27], al
jg 0x4ef70c
jmp 0x4ef70e
jmp 0x4ef71f
mov ebx, dword [esp + 0x60]
cmp dword [esp + 0x68], ebx
setne bl
mov byte [esp + 0x27], bl
jmp 0x4ef71f
movzx ebx, byte [esp + 0x27]
test bl, bl
jne 0x4ef72a
jmp 0x4ef739
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x60], ebx
jmp 0x4ef734
jmp 0x4ef5e8
jmp 0x4ef73b
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xf4]
mov ebx, dword [esp + 0xec]
cmp ecx, edx
jbe 0x4ef75a
jmp 0x4efcd4
cmp ecx, eax
jae 0x4ef763
jmp 0x4efccf
sub edx, eax
sub ecx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, ebx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], ebp
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
mov esi, dword [esp + 0xe8]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
call fcn.004efcf0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], edx
jmp 0x4ef7db
jmp 0x4ef7dd
mov eax, dword [esp + 0x3c]
add eax, 4
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0xdc]
test byte [edx], al
sub ecx, dword [edx + 0x2000c]
add ecx, 4
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0xec]
mov ebx, dword [esp + 0xf0]
mov ebp, dword [esp + 0xf4]
mov esi, dword [esp + 0xdc]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebp
call fcn.004efe10
mov eax, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
inc eax
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x30]
mov dword [esp], eax
lea eax, [ecx - 1]
mov dword [esp + 4], eax
call fcn.004f94a0
mov eax, dword [esp + 8]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
inc edx
cmp eax, edx
jae 0x4ef881
jmp 0x4ef883
jmp 0x4ef8b3
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x517ae0]
mov dword [esp + 0x10], eax
call fcn.00471230
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
jmp 0x4ef8b3
lea ebx, [ecx + edx*4 - 4]
mov ebp, dword [esp + 0xa0]
mov dword [ebx], ebp
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe8], eax
mov ebx, dword [esp + 0x3c]
add ebx, dword [esp + 0x5c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x58], ebx
cmp dword [esp + 0x38], ebx
jle 0x4ef8f0
jmp 0x4efaef
jmp 0x4ef8f2
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xa4], ebx
cmp dword [esp + 0x58], ebx
jl 0x4ef90b
jmp 0x4ef9a7
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xec]
mov ebx, dword [esp + 0xf4]
jmp 0x4ef926
cmp ecx, eax
jae 0x4ef92f
jmp 0x4efcca
sub ebx, eax
sub ecx, eax
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and eax, ebx
add eax, edx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], ebp
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
mov esi, dword [esp + 0xe8]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
call fcn.004efcf0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], edx
jmp 0x4ef9a9
jmp 0x4ef9a9
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xa4], eax
mov ebx, dword [esp + 0xdc]
test byte [ebx], al
mov ebp, dword [esp + 0xdc]
test byte [ebp], al
mov ebx, dword [ebx + 0x2000c]
add eax, ebx
mov dword [ebp + 0x2000c], eax
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0xa4], ecx
mov eax, dword [esp + 0xdc]
test byte [eax], al
mov edx, dword [eax + 0x20008]
cmp edx, ecx
jae 0x4ef9fe
jmp 0x4efcc5
jmp 0x4efa00
mov eax, dword [esp + 0xdc]
test byte [eax], al
mov dword [eax + 0x20004], ecx
mov eax, dword [esp + 0xdc]
test byte [eax], al
mov ecx, dword [eax + 0x20000]
mov edx, dword [eax + 0x20004]
mov eax, dword [eax + 0x20008]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xf4]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x78], ecx
cmp ecx, eax
jg 0x4efa7a
jmp 0x4efa80
mov dword [esp + 0x78], eax
jmp 0x4efa82
jmp 0x4efa82
mov eax, dword [esp + 0xb4]
cmp dword [esp + 0xa8], eax
jne 0x4efa94
jmp 0x4efabc
mov eax, dword [esp + 0x78]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xb4]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00476100
jmp 0x4efabe
jmp 0x4efabe
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xe8]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], edx
add esp, 0xd8
ret
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
lea eax, [ebx - 1]
mov dword [esp + 0xc], eax
call fcn.004ef110
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov dword [esp], eax
call fcn.004ef2c0
mov eax, dword [esp + 4]
mov dword [esp + 0x40], eax
and eax, 0x3fff
mov dword [esp + 0x90], eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0xdc]
test byte [eax], al
mov eax, dword [eax + 0x2000c]
add eax, dword [esp + 0x3c]
dec eax
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0xdc]
test byte [edx], al
mov ebx, dword [esp + 0x90]
lea edx, [edx + ebx*8]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x2c]
mov ecx, eax
shr eax, 8
shl ecx, 0x18
mov edx, dword [esp + 0x28]
shr edx, 8
or edx, ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
mov dword [esp], edx
call fcn.004ef2c0
mov eax, dword [esp + 4]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0xdc]
test byte [ecx], al
mov edx, eax
and eax, 0x3fff
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
and edx, 0x3fff
mov dword [esp + 0x84], edx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0xdc]
test byte [eax], al
mov eax, dword [eax + 0x2000c]
add eax, dword [esp + 0x3c]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0xdc]
test byte [edx], al
mov ebx, dword [esp + 0x84]
lea edx, [edx + ebx*8]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0xdc]
test byte [edx], al
sub ecx, dword [edx + 0x2000c]
sub eax, ecx
mov dword [esp + 0x44], eax
cmp eax, 0x8000
setg al
mov byte [esp + 0x27], al
jg 0x4efc6f
jmp 0x4efc71
jmp 0x4efc82
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x28], eax
setne al
mov byte [esp + 0x27], al
jmp 0x4efc82
movzx eax, byte [esp + 0x27]
test al, al
jne 0x4efc8d
jmp 0x4efcbe
mov eax, dword [esp + 0x28]
shr eax, 8
mov ecx, dword [esp + 0x2c]
shl ecx, 0x18
or eax, ecx
mov dword [esp + 0x60], eax
mov dword [esp], eax
call fcn.004ef2c0
mov eax, dword [esp + 4]
mov dword [esp + 0x54], eax
inc dword [esp + 0x3c]
jmp 0x4efcb7
jmp 0x4efcb9
jmp 0x4ef5c4
jmp 0x4efcc0
jmp 0x4ef7db
call fcn.00475870
call fcn.00475890
call fcn.00475890
call fcn.00475870
nop
call fcn.004743b0
jmp fcn.004ef410