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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x4f73e2
sub esp, 0xb4
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xe0]
sub eax, ecx
mov ebx, dword [esp + 0xc0]
test ebx, ebx
jle 0x4f733a
mov ebp, dword [esp + 0xcc]
test ebp, ebp
jle 0x4f732c
lea esi, [ebx - 1]
cmp esi, ebx
jae 0x4f73db
mov esi, dword [esp + 0xb8]
lea edi, [esi + ebx*4 - 4]
lea edx, [ebp - 1]
cmp edx, ebp
jae 0x4f73db
mov edx, dword [esp + 0xc4]
lea edx, [edx + ebp*4 - 4]
cmp edx, edi
sete dl
test dl, dl
je 0x4f725d
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x60], eax
lea esi, [eax + 1]
cmp esi, ebx
jg 0x4f722c
test esi, esi
jl 0x4f73c6
mov dword [esp + 0xb0], edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x34], ebx
lea eax, [ecx + 1]
mov dword [esp], eax
call fcn.004f6850
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov ecx, dword [eax + 8]
mov edx, dword [eax]
mov dword [esp + 0xa0], edx
mov ebx, dword [eax + 4]
mov dword [esp + 0x50], ebx
mov ebp, dword [esp + 0xcc]
test ebp, ebp
jle 0x4f7210
mov esi, dword [esp + 0xd8]
test esi, esi
jle 0x4f71fb
lea edi, [ebp - 1]
cmp edi, ebp
jae 0x4f73bf
mov edi, dword [esp + 0xc4]
lea ebx, [edi + ebp*4 - 4]
lea eax, [esi - 1]
cmp eax, esi
jae 0x4f73bf
mov eax, dword [esp + 0xd0]
lea edx, [eax + esi*4 - 4]
cmp edx, ebx
sete dl
mov dword [esp + 0x54], ecx
test dl, dl
je 0x4f717d
xor edx, edx
xor ebx, ebx
mov ebp, dword [esp + 0xd4]
lea edi, [ebp + 1]
cmp edi, ebx
jg 0x4f7153
test edi, edi
jl 0x4f73b1
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0xac], edx
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
call fcn.004f3250
mov eax, dword [esp + 0xe0]
lea ecx, [eax - 1]
cmp ecx, eax
jae 0x4f73aa
mov edx, dword [esp + 0xdc]
mov ebx, dword [edx + eax*4 - 4]
cmp ebx, 0x10000
jb 0x4f714c
shr ebx, 0x10
mov ebp, 0x10
cmp ebx, 0x100
jb 0x4f6b41
shr ebx, 8
add ebp, 8
cmp ebx, 0x100
jae 0x4f73a3
mov dword [esp + 0x78], ecx
lea esi, [0xa3e500]
movzx ebx, byte [esi + ebx]
lea ebx, [ebx + ebp - 0x20]
neg ebx
mov dword [esp + 0x74], ebx
test ebx, ebx
ja 0x4f70bf
mov ebp, eax
mov esi, dword [esp + 0xe4]
xor edi, edi
mov dword [esp + 0x94], edi
mov dword [esp + 0xe4], esi
mov edi, dword [esp + 0xd4]
mov esi, dword [esp + 0x30]
cmp edi, esi
ja 0x4f739c
mov dword [esp + 0xa8], edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
call fcn.00503eb0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0x2c]
cmp ecx, edx
jae 0x4f7395
mov ebx, dword [esp + 0xac]
mov dword [ebx + ecx*4], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x70]
cmp eax, ecx
jae 0x4f738e
mov eax, dword [esp + 0xe0]
mov ebp, dword [esp + 0xa8]
mov esi, dword [ebp + eax*4 - 4]
mov dword [esp + 0x40], esi
mov edi, dword [esp + 0xe4]
jmp 0x4f6e33
mov dword [esp + 0x6c], eax
mov dword [esp + 0x4c], edi
mov dword [esp], eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ecx
call fcn.00503d90
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0xac]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x5c]
cmp eax, esi
jbe 0x4f6f99
mov eax, 1
test al, al
je 0x4f6f8c
mov eax, dword [esp + 0x58]
dec eax
mov ecx, dword [esp + 0x40]
lea edi, [esi + ecx]
cmp edi, esi
jae 0x4f6c2c
mov ebp, dword [esp + 0x54]
cmp edx, ebp
ja 0x4f736b
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0xc], ebx
mov esi, dword [esp + 0x70]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0xe4]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.00503f50
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x50]
cmp ecx, edx
jae 0x4f7364
mov ebx, dword [esp + 0xa0]
mov dword [ebx + ecx*4], eax
mov eax, dword [esp + 0x60]
lea ebp, [eax + edx]
test ebp, ebp
jl 0x4f735d
cmp eax, ebp
ja 0x4f735d
mov esi, dword [esp + 0x30]
cmp ebp, esi
ja 0x4f735d
sub esi, eax
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
shl eax, 2
sar esi, 0x1f
and esi, eax
mov eax, dword [esp + 0xac]
add esi, eax
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x2c]
cmp ebp, eax
ja 0x4f735d
mov dword [esp + 0x68], edi
mov dword [esp + 0xa4], esi
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
sub eax, ebp
mov dword [esp + 0x64], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x20], edx
call fcn.00503e10
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4f6f05
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x28]
cmp ecx, edx
jae 0x4f734f
mov ebx, dword [esp + 0xb0]
mov dword [ebx + ecx*4], eax
lea eax, [ecx - 1]
mov ecx, dword [esp + 0xac]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0xe4]
mov edi, dword [esp + 0x70]
mov ecx, edi
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0xe4]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xe0]
mov edi, dword [esp + 0x60]
test edi, edi
jl 0x4f6fbc
lea ecx, [eax + edi]
cmp ecx, edx
jae 0x4f7387
mov dword [esp + 0x78], ecx
mov ecx, dword [ebx + ecx*4]
cmp ecx, esi
je 0x4f6fac
lea edi, [edi + eax - 1]
cmp edi, edx
jae 0x4f7380
mov eax, dword [ebx + edi*4]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], esi
call fcn.00503db0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe0]
lea ebx, [edx - 2]
mov ebp, dword [esp + 0x70]
cmp ebx, ebp
jae 0x4f7379
mov dword [esp + 0x58], eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xa8]
mov ebx, dword [ecx + edx*4 - 8]
mov dword [esp + 0x3c], ebx
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.00503d90
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0x60]
lea ebp, [ebx + edx - 2]
mov esi, dword [esp + 0x2c]
cmp ebp, esi
jae 0x4f7372
mov edi, dword [esp + 0xac]
mov ebp, dword [edi + ebp*4]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x8c]
jmp 0x4f6c9c
mov eax, dword [esp + 0x78]
test eax, eax
jl 0x4f7356
mov ecx, dword [esp + 0x60]
cmp ecx, eax
ja 0x4f7356
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
mov ecx, dword [esp + 0xe0]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x68]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x70]
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0x20], ebx
call fcn.00503dd0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xac]
mov edx, dword [ecx + eax*4]
add edx, dword [esp + 0x24]
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0x58]
dec eax
jmp 0x4f6dd6
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x58]
jmp 0x4f6cc9
jne 0x4f6fa5
cmp ecx, ebp
seta al
jmp 0x4f6cad
xor eax, eax
jmp 0x4f6cad
mov ecx, esi
mov edx, eax
mov ebx, edi
mov eax, 0xffffffff
jmp 0x4f6cc9
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x4f70b2
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.004f6950
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
call fcn.004f3290
mov eax, dword [esp + 0x14]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa4], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x70], edx
mov ebx, dword [esp + 0xac]
mov dword [esp], ebx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x30]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x18], edi
call fcn.00503f00
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
call fcn.004f3290
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0xe8], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xfc], eax
add esp, 0xb4
ret
mov dword [esp], eax
call fcn.004f6950
jmp 0x4f6fcb
mov dword [esp], eax
call fcn.004f6850
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [eax + 8]
mov dword [esp + 0x48], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x44], edx
mov ebx, dword [eax]
mov dword [esp + 0x98], ebx
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov ebp, dword [esp + 0xdc]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xe4]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x18], esi
call fcn.00503eb0
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0xe0]
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x94]
jmp 0x4f6b78
xor ebp, ebp
jmp 0x4f6b33
lea eax, [0x7305c0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [ebp + 5]
mov dword [esp + 8], eax
call fcn.00438a70
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
jmp 0x4f6ae3
test ebp, ebp
jle 0x4f71e9
mov edx, dword [esp + 0xe4]
test edx, edx
jle 0x4f71de
lea ebx, [ebp - 1]
cmp ebx, ebp
jae 0x4f73b8
lea ebx, [edi + ebp*4 - 4]
lea ecx, [edx - 1]
cmp ecx, edx
jae 0x4f73b8
mov ecx, dword [esp + 0xdc]
lea esi, [ecx + edx*4 - 4]
cmp esi, ebx
sete bl
test bl, bl
je 0x4f71ca
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0xd8]
jmp 0x4f6ac5
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0xd8]
mov edx, edi
mov ebx, ebp
jmp 0x4f6ac9
mov ecx, dword [esp + 0xdc]
xor ebx, ebx
jmp 0x4f71b6
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xe4]
xor ebx, ebx
jmp 0x4f71b6
mov eax, dword [esp + 0xd0]
mov edi, dword [esp + 0xc4]
xor edx, edx
jmp 0x4f6ab9
mov eax, dword [esp + 0xd0]
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0xc4]
xor edx, edx
jmp 0x4f6ab9
lea ecx, [0x7305c0]
mov dword [esp], ecx
mov dword [esp + 4], esi
lea edx, [eax + 5]
mov dword [esp + 8], edx
call fcn.00438a70
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0xe0]
jmp 0x4f6a32
test ebx, ebx
jle 0x4f731e
mov edx, dword [esp + 0xd8]
test edx, edx
jle 0x4f731a
lea edi, [ebx - 1]
cmp edi, ebx
jae 0x4f73d4
lea edi, [esi + ebx*4 - 4]
lea ebp, [edx - 1]
cmp ebp, edx
jae 0x4f73d4
mov ebp, dword [esp + 0xd0]
lea ebp, [ebp + edx*4 - 4]
cmp ebp, edi
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4f72b4
mov ebp, dword [esp + 0xcc]
jmp 0x4f6a17
test ebx, ebx
jle 0x4f730f
mov ebp, dword [esp + 0xe4]
test ebp, ebp
jle 0x4f730b
lea edi, [ebx - 1]
cmp edi, ebx
jae 0x4f73cd
lea edi, [esi + ebx*4 - 4]
lea edx, [ebp - 1]
cmp edx, ebp
jae 0x4f73cd
mov edx, dword [esp + 0xdc]
lea edx, [edx + ebp*4 - 4]
cmp edx, edi
sete dl
test dl, dl
je 0x4f72fd
mov ebp, dword [esp + 0xcc]
jmp 0x4f6a17
mov ebp, dword [esp + 0xcc]
mov edx, esi
jmp 0x4f6a1b
xor edx, edx
jmp 0x4f72ed
mov ebp, dword [esp + 0xe4]
xor edx, edx
jmp 0x4f72ed
xor ebp, ebp
jmp 0x4f72a2
mov edx, dword [esp + 0xd8]
xor ebp, ebp
jmp 0x4f72a2
mov esi, dword [esp + 0xb8]
xor edx, edx
jmp 0x4f6a0f
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0xb8]
xor edx, edx
jmp 0x4f6a0f
call fcn.004266e0
ud2
call fcn.004267e0
ud2
call fcn.004267e0
ud2
call fcn.004266e0
ud2
call fcn.004267e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004267e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004267e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004267e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.0044b280
jmp fcn.004f6990