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

Disassembly:
mov ecx, dword [0x5efcb0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x48]
cmp eax, dword [ecx + 8]
jbe 0x4ba39c
sub esp, 0xc8
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov byte [esp + 0xf4], 0
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call fcn.004b9770
mov eax, dword [esp + 4]
mov dword [esp + 0xcc], eax
test byte [eax], al
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x78], ecx
test ecx, ecx
je 0x4b9c7c
jmp 0x4b9cda
lea eax, [0x526b2a]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], 3
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0x80000000
mov dword [esp + 0xec], 0xffffffff
mov dword [esp + 0xf0], 0x7fffffff
mov byte [esp + 0xf4], 0
add esp, 0xc8
ret
test byte [eax], al
mov edx, dword [eax + 0x38]
mov dword [esp + 0x98], edx
test edx, edx
setne dl
mov byte [esp + 0x3c], dl
jne 0x4b9cf3
jmp 0x4b9d2b
mov edx, dword [esp + 0xcc]
test byte [edx], al
mov ebx, dword [edx + 0x2c]
mov ebp, dword [esp + 0xd4]
mov esi, dword [esp + 0xd0]
cmp dword [edx + 0x28], esi
setbe dl
cmp ebx, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, edx
cmp ebx, ebp
setl dl
or edx, esi
mov byte [esp + 0x3c], dl
jmp 0x4b9d2d
jmp 0x4b9d2d
movzx edx, byte [esp + 0x3c]
mov byte [esp + 0x3d], dl
test dl, dl
jne 0x4b9d3c
jmp 0x4b9d76
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0xcc]
test byte [ebx], al
mov ebp, dword [ebx + 0x34]
mov ebx, dword [ebx + 0x30]
cmp dword [esp + 0xd0], ebx
setb bl
cmp ebp, edx
xchg esi, ebx
setg bl
xchg esi, ebx
cmp ebp, edx
sete dl
and edx, ebx
or esi, edx
xchg esi, eax
mov byte [esp + 0x3d], al
xchg esi, eax
jmp 0x4b9d78
jmp 0x4b9d78
movzx edx, byte [esp + 0x3d]
test dl, dl
jne 0x4b9d86
jmp 0x4b9e0a
mov eax, dword [esp + 0x98]
test byte [eax], al
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x98]
test byte [eax], al
mov eax, dword [eax + 8]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xcc]
test byte [eax], al
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xcc]
test byte [eax], al
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x98]
test byte [eax], al
movzx eax, byte [eax + 0xc]
mov byte [esp + 0xf4], al
add esp, 0xc8
ret
mov edx, dword [esp + 0xcc]
test byte [edx], al
mov edx, dword [edx + 0x18]
mov dword [esp + 0x78], edx
test edx, edx
sete dl
mov byte [esp + 0x3c], dl
je 0x4b9e27
jmp 0x4b9e29
jmp 0x4b9e71
mov edx, dword [esp + 0xd4]
mov ebx, dword [esp + 0xd0]
mov ebp, dword [esp + 0xcc]
test byte [ebp], al
mov ecx, dword [ebp + 0x18]
mov ebp, dword [ebp + 0x14]
test ecx, ecx
ja 0x4b9e50
jmp 0x4ba394
mov esi, dword [ebp + 4]
cmp edx, esi
xchg edi, ebx
sete bl
xchg edi, ebx
cmp edx, esi
setl dl
cmp dword [ebp], ebx
seta bl
and edi, ebx
or edx, edi
mov byte [esp + 0x3c], dl
jmp 0x4b9e71
movzx edx, byte [esp + 0x3c]
test dl, dl
jne 0x4b9e7f
jmp 0x4b9f6f
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call fcn.004ba3b0
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0xcc]
test byte [ecx], al
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, eax
ja 0x4b9eae
jmp 0x4ba38d
shl eax, 4
lea edx, [ecx + eax]
mov dword [esp + 0x94], edx
test byte [edx], al
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x94]
test byte [edx], al
mov edx, dword [edx + 8]
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0x80000000
mov edx, dword [esp + 0xcc]
test byte [edx], al
mov edx, dword [edx + 0x18]
mov dword [esp + 0x78], edx
test edx, edx
jne 0x4b9f0f
jmp 0x4b9f3c
mov edx, dword [esp + 0xcc]
test byte [edx], al
mov ecx, dword [edx + 0x18]
mov edx, dword [edx + 0x14]
test ecx, ecx
ja 0x4b9f27
jmp 0x4ba386
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], ecx
jmp 0x4b9f54
mov dword [esp + 0xec], 0xffffffff
mov dword [esp + 0xf0], 0x7fffffff
jmp 0x4b9f54
mov eax, dword [esp + 0x94]
test byte [eax], al
movzx eax, byte [eax + 0xc]
mov byte [esp + 0xf4], al
add esp, 0xc8
ret
mov edx, dword [esp + 0xcc]
test byte [edx], al
mov ebx, dword [edx + 0x14]
mov ebp, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebp
mov dword [esp + 0xa4], edx
mov dword [esp + 0xec], 0xffffffff
mov dword [esp + 0xf0], 0x7fffffff
mov dword [esp + 0x44], 0
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x50], edx
jmp 0x4b9fc1
mov edx, dword [esp + 0x50]
sub edx, dword [esp + 0x44]
cmp edx, 1
jg 0x4b9fd3
jmp 0x4ba066
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x50]
shr eax, 1
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
cmp ecx, eax
ja 0x4b9ff8
jmp 0x4ba381
lea ebx, [eax + eax*2]
lea ebp, [edx + ebx*4]
mov ebp, dword [ebp + 4]
lea edx, [edx + ebx*4]
mov edx, dword [edx]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ebp
mov ebx, dword [esp + 0xd4]
mov esi, dword [esp + 0xd0]
cmp esi, edx
xchg esi, ebx
setb bl
xchg esi, ebx
cmp ebx, ebp
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, esi
cmp ebx, ebp
setl bl
or ebx, edi
test bl, bl
jne 0x4ba03d
jmp 0x4ba055
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], ebp
mov edx, dword [esp + 0x40]
mov dword [esp + 0x50], edx
jmp 0x4ba05f
mov edx, dword [esp + 0x40]
mov dword [esp + 0x44], edx
jmp 0x4ba05f
jmp 0x4ba061
jmp 0x4b9fc1
mov edx, dword [esp + 0xcc]
test byte [edx], al
mov ecx, dword [edx + 0xc]
mov edx, dword [edx + 8]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
cmp ebx, eax
ja 0x4ba090
jmp 0x4ba37a
lea ebx, [eax + eax*2]
lea ebx, [ebp + ebx*4 + 8]
movzx eax, byte [ebx]
cmp ecx, eax
ja 0x4ba0a3
jmp 0x4ba375
shl eax, 4
add edx, eax
mov dword [esp + 0x90], edx
test byte [edx], al
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x90]
test byte [edx], al
mov edx, dword [edx + 8]
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
cmp ecx, eax
ja 0x4ba0f2
jmp 0x4ba370
lea eax, [eax + eax*2]
lea ecx, [edx + eax*4]
lea eax, [edx + eax*4]
mov eax, dword [eax]
mov ecx, dword [ecx + 4]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
mov eax, dword [esp + 0x90]
test byte [eax], al
movzx eax, byte [eax + 0xc]
mov byte [esp + 0xf4], al
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x78], eax
dec eax
cmp dword [esp + 0x44], eax
sete al
mov byte [esp + 0x3c], al
je 0x4ba13d
jmp 0x4ba154
mov eax, dword [esp + 0xcc]
test byte [eax], al
mov eax, dword [eax + 0x24]
test eax, eax
setne al
mov byte [esp + 0x3c], al
jmp 0x4ba156
jmp 0x4ba156
movzx eax, byte [esp + 0x3c]
test al, al
jne 0x4ba164
jmp 0x4ba367
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0xcc]
test byte [eax], al
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0xd0]
mov ebp, dword [esp + 0xe8]
mov esi, dword [esp + 0xd4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
call fcn.004ba620
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
movzx ebp, byte [esp + 0x34]
xchg ebp, eax
mov byte [esp + 0x3b], al
xchg ebp, eax
movzx esi, byte [esp + 0x35]
xchg esi, eax
mov byte [esp + 0x3a], al
xchg esi, eax
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], esi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebp
movzx eax, byte [esp + 0x3b]
mov byte [esp + 0x3c], al
movzx eax, byte [esp + 0x3a]
mov byte [esp + 0x3d], al
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
movzx eax, byte [esp + 0x3c]
mov byte [esp + 0x3f], al
movzx eax, byte [esp + 0x3d]
mov byte [esp + 0x3e], al
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
movzx eax, byte [esp + 0x3f]
mov byte [esp + 0x39], al
movzx eax, byte [esp + 0x3e]
mov byte [esp + 0x38], al
test al, al
jne 0x4ba2ff
jmp 0x4ba365
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], ecx
movzx eax, byte [esp + 0x39]
mov byte [esp + 0xf4], al
add esp, 0xc8
ret
jmp 0x4ba369
jmp 0x4ba369
add esp, 0xc8
ret
call fcn.00475830
call fcn.00475830
mov ecx, ebx
call fcn.00475830
call fcn.00475830
xor eax, eax
call fcn.00475830
mov ecx, edx
call fcn.00475830
xor eax, eax
call fcn.00475830
nop
call fcn.004743b0
jmp fcn.004b9be0