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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x4b5979
sub esp, 0x88
mov eax, dword [esp + 0x8c]
movzx ecx, byte [eax + 0x3d]
test cl, cl
jne 0x4b596a
mov byte [eax + 0x3c], 1
mov ecx, dword [eax + 0x2c]
mov ebx, dword [eax + 0x28]
cmp ecx, ebx
jg 0x4b52fb
mov ebp, dword [eax + 0x30]
test ebp, ebp
jne 0x4b52fb
mov ecx, dword [eax + 0x30]
test ecx, ecx
jne 0x4b53f6
mov ecx, dword [eax + 0x28]
test ecx, ecx
jle 0x4b513a
mov edx, dword [eax + 0x24]
mov ebx, dword [eax + 0x20]
mov dword [esp + 0x40], ebx
mov ebp, dword [eax + 0x1c]
mov esi, dword [eax + 0x2c]
cmp ebx, esi
jne 0x4b5950
cmp ecx, esi
ja 0x4b5949
cmp esi, edx
ja 0x4b5949
sub esi, ecx
sub edx, ecx
dec edx
sar edx, 0x1f
xor edx, 0xffffffff
and ecx, edx
add ecx, ebp
cmp ebx, esi
jle 0x4b5942
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.0044aa80
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x28]
sub ecx, edx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x28], 0
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x2c]
cmp ecx, edx
jne 0x4b593b
mov edx, dword [eax + 0xc]
cmp ecx, edx
jge 0x4b58a5
cmp ecx, 0x3fffffff
jg 0x4b58a5
shl ecx, 1
test ecx, ecx
jne 0x4b516a
mov ecx, 0x1000
cmp ecx, edx
jle 0x4b589e
lea ecx, [0x6b4b60]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.00437440
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x34], edx
mov ebx, dword [esp + 0x8c]
mov ebp, dword [ebx + 0x28]
mov esi, dword [ebx + 0x2c]
mov edi, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x24]
cmp ebp, esi
ja 0x4b5897
cmp esi, edx
ja 0x4b5897
sub esi, ebp
sub edx, ebp
dec edx
sar edx, 0x1f
xor edx, 0xffffffff
and ebp, edx
lea edx, [ebp + edi]
cmp ecx, esi
jle 0x4b5890
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
call fcn.0044aa80
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x24], eax
mov eax, dword [0x884700]
lea edx, [ecx + 0x1c]
test eax, eax
jne 0x4b5874
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x1c], eax
mov eax, dword [ecx + 0x2c]
mov edx, dword [ecx + 0x28]
sub eax, edx
mov dword [ecx + 0x2c], eax
mov dword [ecx + 0x28], 0
xor eax, eax
mov dword [esp + 0x3c], eax
mov edx, dword [ecx + 0x2c]
mov ebx, dword [ecx + 0x1c]
mov ebp, dword [ecx + 0x20]
mov esi, dword [ecx + 0x24]
cmp edx, ebp
ja 0x4b586d
cmp ebp, esi
ja 0x4b586d
sub esi, edx
lea edi, [esi - 1]
sar edi, 0x1f
xor edi, 0xffffffff
and edi, edx
add ebx, edi
mov edi, dword [ecx]
mov edi, dword [edi + 0x14]
mov eax, dword [ecx + 4]
mov dword [esp + 4], ebx
sub ebp, edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
mov dword [esp], eax
call edi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x70], edx
mov ebx, dword [esp + 0x8c]
mov ebp, dword [ebx + 0x2c]
add ebp, eax
mov dword [ebx + 0x2c], ebp
test ecx, ecx
jne 0x4b57dd
test eax, eax
jg 0x4b57d1
mov eax, dword [esp + 0x3c]
inc eax
cmp eax, 0x64
jg 0x4b52bb
mov ecx, ebx
jmp 0x4b522d
mov eax, dword [0x8729f0]
mov dword [esp + 0x58], eax
mov ecx, dword [0x8729f4]
mov dword [esp + 0x78], ecx
mov ebp, dword [ebx + 0x30]
mov esi, dword [ebx + 0x34]
test ebp, ebp
je 0x4b5783
mov edi, dword [0x8729e0]
cmp ebp, edi
je 0x4b575a
mov eax, ebx
mov ecx, dword [eax + 0x2c]
mov ebx, dword [eax + 0x28]
cmp ecx, ebx
jle 0x4b50b5
mov ebp, dword [eax + 0x24]
mov esi, dword [eax + 0x1c]
cmp ebx, ecx
ja 0x4b5753
cmp ecx, ebp
ja 0x4b5753
mov edx, dword [eax + 8]
mov edi, dword [eax + 0x30]
test edi, edi
xchg edi, ebx
setne bl
xchg edi, ebx
xchg edi, eax
mov byte [esp + 0xc], al
xchg edi, eax
sub ebp, ebx
lea edi, [ebp - 1]
sar edi, 0x1f
xor edi, 0xffffffff
and edi, ebx
add esi, edi
mov dword [esp], esi
sub ecx, ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov ecx, dword [edx]
call ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x74], ecx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x5c], ebx
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x2c], ebp
mov esi, dword [esp + 0x18]
mov dword [esp + 0x28], esi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x44], edi
test ebx, ebx
jne 0x4b5631
test eax, eax
jge 0x4b5549
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x34]
mov dword [esp + 0x7c], edx
mov ebx, dword [ecx + 0x30]
mov eax, dword [0x87264c]
mov dword [esp + 0x6c], eax
mov edx, dword [0x872648]
mov dword [esp + 0x50], edx
test ebx, ebx
je 0x4b54e5
mov eax, dword [0x8729e0]
cmp ebx, eax
je 0x4b54b8
xor eax, eax
test al, al
je 0x4b54a9
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x18], ebp
mov eax, dword [0x884700]
lea edx, [ecx + 0x10]
test eax, eax
jne 0x4b548d
mov dword [ecx + 0x10], edi
test edi, edi
jne 0x4b5413
mov eax, ecx
mov ecx, dword [eax + 0x30]
test ecx, ecx
je 0x4b50cb
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
mov byte [esp + 0x90], 0
add esp, 0x88
ret
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x4b5422
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x4b5438
mov dword [ecx + 0x38], 0
mov byte [esp + 0x90], 1
add esp, 0x88
ret
mov eax, dword [ecx + 0x38]
inc eax
mov dword [ecx + 0x38], eax
cmp eax, 0x64
jg 0x4b5446
jmp 0x4b5429
lea eax, [0x714efc]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0x30
lea eax, [0x6b4960]
mov dword [esp], eax
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
call fcn.0040a880
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004254e0
ud2
mov dword [esp], edx
mov dword [esp + 4], edi
call fcn.0040d5a0
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0x44]
jmp 0x4b53e5
mov byte [esp + 0x90], 0
add esp, 0x88
ret
mov dword [esp], ebx
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [0x8729e4]
mov ebx, dword [0x8729e0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.004022c0
movzx eax, byte [esp + 0x10]
test al, al
je 0x4b5531
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x884700]
lea edx, [ecx + 0x34]
test eax, eax
jne 0x4b5518
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x34], eax
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x44]
jmp 0x4b53c1
mov dword [esp], edx
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x8c]
jmp 0x4b5507
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x44]
jmp 0x4b53c1
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [ecx + 0x28]
sub edx, ebx
cmp eax, edx
jle 0x4b5621
mov edx, dword [ecx + 0x34]
mov dword [esp + 0x7c], edx
mov ebx, dword [0x872620]
mov dword [esp + 0x60], ebx
mov eax, dword [ecx + 0x30]
mov edx, dword [0x872624]
mov dword [esp + 0x64], edx
test eax, eax
je 0x4b55c0
mov edx, dword [0x8729e0]
cmp eax, edx
je 0x4b5593
xor eax, eax
jmp 0x4b53c3
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [0x8729e4]
mov edx, dword [0x8729e0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call fcn.004022c0
movzx eax, byte [esp + 0x10]
test al, al
je 0x4b5609
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x884700]
lea edx, [ecx + 0x34]
test eax, eax
jne 0x4b55f0
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x34], eax
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x44]
jmp 0x4b558c
mov dword [esp], edx
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x8c]
jmp 0x4b55e2
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x44]
jmp 0x4b558c
lea edx, [eax + ebx]
mov dword [ecx + 0x28], edx
mov eax, 1
jmp 0x4b53c3
mov eax, dword [0x872630]
cmp ebx, eax
je 0x4b56c8
mov eax, dword [esp + 0x8c]
mov edx, dword [eax + 0x34]
mov ebp, dword [eax + 0x30]
test ebp, ebp
je 0x4b5692
mov esi, dword [0x8729e0]
cmp ebp, esi
je 0x4b5669
mov byte [esp + 0x90], 0
add esp, 0x88
ret
mov dword [esp], ebp
mov dword [esp + 4], edx
mov edx, dword [0x8729e4]
mov ebp, dword [0x8729e0]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
call fcn.004022c0
movzx eax, byte [esp + 0x10]
test al, al
je 0x4b565a
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x884700]
lea edx, [ecx + 0x34]
test eax, eax
jne 0x4b56b6
mov eax, dword [esp + 0x74]
mov dword [ecx + 0x34], eax
jmp 0x4b565a
mov dword [esp], edx
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
call fcn.0040d5a0
jmp 0x4b565a
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov eax, dword [0x872634]
mov edx, dword [0x872630]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call fcn.004022c0
movzx eax, byte [esp + 0x10]
test al, al
je 0x4b5746
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x18], eax
mov eax, dword [0x884700]
lea edx, [ecx + 0x10]
test eax, eax
jne 0x4b572d
mov eax, dword [esp + 0x44]
mov dword [ecx + 0x10], eax
mov byte [ecx + 0x3d], 1
mov byte [esp + 0x90], 1
add esp, 0x88
ret
mov dword [esp], edx
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x8c]
jmp 0x4b571a
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x5c]
jmp 0x4b563f
call fcn.004246e0
ud2
mov dword [esp], ebp
mov dword [esp + 4], esi
mov edx, dword [0x8729e0]
mov ebp, dword [0x8729e4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
call fcn.004022c0
movzx eax, byte [esp + 0x10]
test al, al
je 0x4b57c5
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x884700]
lea ebx, [ecx + 0x34]
test eax, eax
jne 0x4b57ac
mov eax, dword [esp + 0x78]
mov dword [ecx + 0x34], eax
mov ebx, ecx
jmp 0x4b52eb
mov dword [esp], ebx
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x8c]
jmp 0x4b57a5
mov ebx, dword [esp + 0x8c]
jmp 0x4b52eb
mov dword [ebx + 0x38], 0
jmp 0x4b52eb
mov eax, dword [ebx + 0x30]
mov ebp, dword [ebx + 0x34]
test eax, eax
je 0x4b581f
mov esi, dword [0x8729e0]
cmp eax, esi
je 0x4b57f6
jmp 0x4b52eb
mov dword [esp], eax
mov dword [esp + 4], ebp
mov eax, dword [0x8729e0]
mov ebp, dword [0x8729e4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
call fcn.004022c0
movzx eax, byte [esp + 0x10]
test al, al
je 0x4b5861
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x884700]
lea ebx, [ecx + 0x34]
test eax, eax
jne 0x4b5848
mov eax, dword [esp + 0x70]
mov dword [ecx + 0x34], eax
mov ebx, ecx
jmp 0x4b52eb
mov dword [esp], ebx
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x8c]
jmp 0x4b5841
mov ebx, dword [esp + 0x8c]
jmp 0x4b52eb
call fcn.004246e0
ud2
mov dword [esp], edx
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
call fcn.0040d5a0
mov ecx, dword [esp + 0x8c]
jmp 0x4b5219
mov esi, ecx
jmp 0x4b51dc
call fcn.004246e0
ud2
mov edx, ecx
jmp 0x4b5172
mov ecx, dword [0x872658]
mov dword [esp + 0x54], ecx
mov edx, dword [eax + 0x34]
mov ebx, dword [eax + 0x30]
mov ebp, dword [0x87265c]
mov dword [esp + 0x68], ebp
test ebx, ebx
je 0x4b5905
mov esi, dword [0x8729e0]
cmp ebx, esi
je 0x4b58dc
mov byte [esp + 0x90], 0
add esp, 0x88
ret
mov dword [esp], ebx
mov dword [esp + 4], edx
mov edx, dword [0x8729e0]
mov ebx, dword [0x8729e4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.004022c0
movzx eax, byte [esp + 0x10]
test al, al
je 0x4b58cd
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x884700]
lea edx, [ecx + 0x34]
test eax, eax
jne 0x4b5929
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x34], eax
jmp 0x4b58cd
mov dword [esp], edx
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
call fcn.0040d5a0
jmp 0x4b58cd
mov ecx, eax
jmp 0x4b522b
mov esi, ebx
jmp 0x4b5111
call fcn.004246e0
ud2
mov edi, ebx
sar ebx, 0x1f
sub edi, ebx
sar edi, 1
cmp ecx, edi
jle 0x4b513a
mov ebx, dword [esp + 0x40]
jmp 0x4b50ea
mov byte [esp + 0x90], 0
add esp, 0x88
ret
call fcn.004486b0
jmp fcn.004b5070