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

Disassembly:
push 0xffffffffffffffff
push 0x599718
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c
push ebx
push esi
push edi
mov esi, ecx
xor edi, edi
mov dword [esi + 0x221c], edi
call fcn.004bef70
mov ebx, eax
cmp ebx, edi
mov dword [esp + 0x14], ebx
je 0x4bfc36
cmp dword [esi + 0x4c], edi
jne 0x4bf585
mov ecx, esi
call fcn.004bef70
cmp dword [esi + 0x21c0], edi
je 0x4bf575
cmp eax, 1
jle 0x4bfc36
cmp dword [esi + 0x21c4], edi
je 0x4bf585
cmp eax, edi
je 0x4bfc36
cmp dword [esi + 0xa0], edi
je 0x4bfc36
cmp dword [esi + 0x21c0], edi
je 0x4bf5d3
cmp ebx, 1
jg 0x4bf5d3
cmp dword [esi + 0x74], edi
jle 0x4bfc36
mov ebx, dword [0x5e9274]
mov eax, dword [esi + 0x64]
mov ecx, dword [eax + edi*4]
add ecx, 0xc
push ecx
call ebx
mov eax, dword [esi + 0x74]
inc edi
cmp edi, eax
jl 0x4bf5ad
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
add esp, 0x78
ret
cmp dword [esi + 0x110], edi
je 0x4bf5f8
mov edx, dword [esi + 0x16c]
push edx
call dword [0x5e91c4]
cmp eax, edi
jne 0x4bf5f8
mov eax, dword [esi + 0x219c]
mov dword [esi + 0x80], eax
push esi
lea ecx, [esp + 0x68]
call fcn.0055b7ea
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x80], edi
cmp eax, edi
lea eax, [esi + 0x2190]
jne 0x4bf61b
mov eax, 0x603810
push ebp
push eax
lea ecx, [esp + 0x6c]
call fcn.0055b017
mov edx, dword [esi + 0x2150]
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x80]
sub eax, edx
cmp ecx, edi
mov dword [esi + 0x2158], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
jle 0x4bf91e
mov eax, dword [esi + 0x64]
mov ecx, dword [esp + 0x14]
xor ebp, ebp
mov edi, dword [eax + ecx*4]
xor eax, eax
cmp dword [edi + 8], 0xffffffff
je 0x4bf675
mov edx, dword [esi + 0xb4]
mov ebp, dword [esi + 0xb0]
mov dword [esp + 0x28], edx
mov ecx, dword [edi + 0x1c]
xor ebx, ebx
cmp ecx, eax
je 0x4bf765
cmp dword [edi + 0x38], eax
jne 0x4bf6a3
mov eax, dword [edi + 4]
lea edx, [esp + 0x2c]
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [esp + 0x7c]
push eax
call dword [0x5e963c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [0x5fb2b0]
lea edx, [eax + ecx*2]
mov ecx, dword [0x5fb2b4]
add edx, ecx
lea ecx, [edx + ebp]
mov dword [edi + 0x28], ecx
mov eax, dword [esi + 0x48]
test eax, eax
je 0x4bf6ee
mov eax, dword [esi + 0x8c]
mov ebp, dword [esi + 0x84]
sub eax, ebp
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov dword [edi + 0x28], eax
mov eax, dword [esi + 0x8c]
sub eax, dword [esi + 0x84]
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
jmp 0x4bf768
mov eax, dword [esi + 0x40]
test eax, eax
je 0x4bf72a
mov eax, dword [esi + 0x8c]
mov ebp, dword [esi + 0x84]
mov edx, dword [0x5fb2b4]
sub eax, ebp
add ecx, eax
lea eax, [ecx + edx*2]
mov dword [edi + 0x28], eax
mov ebx, dword [esi + 0x8c]
mov edx, dword [esi + 0x84]
mov ecx, dword [0x5fb2b4]
sub ebx, edx
sub ebx, ecx
dec ebx
jmp 0x4bf768
mov eax, dword [esi + 0x44]
test eax, eax
je 0x4bf768
mov edx, dword [esi + 0x8c]
mov eax, dword [esi + 0x84]
mov ebp, dword [0x5fb2b4]
sub edx, eax
sub edx, ebp
add edx, ecx
mov dword [edi + 0x28], edx
mov ebx, dword [esi + 0x8c]
mov edx, dword [esi + 0x84]
mov ecx, dword [0x5fb2b4]
sub ebx, edx
sub ebx, ecx
dec ebx
jmp 0x4bf768
mov dword [edi + 0x28], eax
mov eax, dword [esi + 0x8c]
mov edx, dword [esi + 0x84]
mov ebp, dword [esp + 0x10]
mov ecx, dword [esi + 0x84]
sub eax, edx
mov edx, dword [edi + 0x28]
sub eax, 2
add edx, ebp
add eax, ecx
lea ebp, [edi + 0xc]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x10]
mov edx, ebp
mov dword [edx], eax
mov eax, dword [esp + 0x64]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
mov eax, dword [edi + 0x1c]
test eax, eax
jne 0x4bf7f4
lea ecx, [esi + 0xb8]
test ecx, ecx
je 0x4bf906
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x4bf906
xor eax, eax
lea edx, [esp + 0x38]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x2c]
push edx
push eax
push esi
call fcn.005505b7
jmp 0x4bf906
cmp dword [esi + 0x5c], 1
jne 0x4bf805
push 2
push 0
push ebp
call dword [0x5e91a8]
mov eax, dword [esi + 0x2218]
test eax, eax
je 0x4bf842
mov ecx, dword [esi + 0x88]
mov eax, dword [edi + 0x14]
cmp eax, ecx
jle 0x4bf842
mov eax, dword [esp + 0x14]
mov edx, dword [esi + 0x78]
cmp eax, edx
jne 0x4bf876
test eax, eax
jne 0x4bf876
mov edx, dword [ebp]
mov eax, ecx
sub eax, edx
mov edx, dword [0x5fb2b0]
lea edx, [ebx + edx*2]
cmp eax, edx
jl 0x4bf876
mov dword [edi + 0x14], ecx
lea ecx, [esi + 0xb8]
test ecx, ecx
je 0x4bf8af
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x4bf8af
mov edx, dword [ebp]
mov eax, dword [edi + 0x3c]
cmp edx, dword [esi + 0x80]
jl 0x4bf872
mov edx, dword [edi + 0x14]
cmp edx, dword [esi + 0x88]
jg 0x4bf872
xor edx, edx
cmp eax, edx
je 0x4bf890
mov eax, ebp
jmp 0x4bf8a4
push ebp
mov dword [edi + 0x28], 0
call dword [0x5e9274]
mov dword [esi + 0x221c], 1
jmp 0x4bf906
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], edx
lea eax, [esp + 0x48]
push eax
mov eax, dword [edi + 0x2c]
push eax
push esi
call fcn.005505b7
mov ecx, dword [ebp + 8]
mov eax, dword [ebp]
mov edx, dword [esp + 0x10]
sub ecx, eax
sub ecx, ebx
lea eax, [edx + ecx + 1]
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 0x2158]
mov dword [esp + 0x10], eax
sub ecx, dword [ebp]
inc ecx
add edx, ecx
mov ecx, dword [esp + 0x14]
test ecx, ecx
mov dword [esi + 0x2158], edx
mov eax, edx
jle 0x4bf8ec
sub eax, ebx
mov dword [esi + 0x2158], eax
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x4bf906
mov eax, dword [esi + 0xa0]
mov ecx, dword [edi + 0x14]
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [edi + 0x14], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x74]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x4bf651
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x50]
test ecx, ecx
jne 0x4bfbfa
mov ecx, dword [esi + 0x88]
cmp eax, ecx
jl 0x4bfbfa
mov edi, dword [esi + 0x80]
sub ecx, edi
mov edi, dword [esp + 0x18]
mov eax, ecx
cdq
idiv edi
mov ebp, eax
mov eax, dword [esi + 0x48]
dec ebp
test eax, eax
je 0x4bf9d8
mov edx, dword [esi + 0x8c]
mov eax, dword [esi + 0x84]
sub edx, eax
mov eax, 0x55555556
imul edx
mov eax, edx
mov ebx, dword [esi + 0xb0]
shr eax, 0x1f
add edx, eax
mov eax, ecx
sub eax, edx
cdq
idiv edi
mov edx, dword [esi + 0x84]
mov ebp, eax
mov eax, dword [esi + 0x8c]
sub eax, edx
cdq
sub eax, edx
sar eax, 1
add eax, ebx
cmp eax, ebp
jle 0x4bf9b3
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x84]
sub eax, ecx
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
add ebp, ebx
jmp 0x4bf9d8
mov edx, dword [esi + 0x8c]
mov eax, dword [esi + 0x84]
sub edx, eax
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
sub eax, edx
cdq
idiv edi
mov ebp, eax
mov ebx, dword [esi + 0x74]
xor eax, eax
test ebx, ebx
mov dword [esp + 0x1c], eax
jle 0x4bfa25
mov ecx, dword [esi + 0x64]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov edx, dword [ecx + 0x1c]
test edx, edx
je 0x4bfa0b
mov ecx, dword [ecx + 0x28]
cmp ecx, ebp
jge 0x4bfa0b
mov edx, ebp
sub edx, ecx
add eax, edx
dec edi
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add edx, 4
dec ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
jne 0x4bf9f0
mov dword [esp + 0x1c], eax
test edi, edi
jle 0x4bfc13
cdq
idiv edi
mov dword [esp + 0x14], 0
add ebp, eax
mov eax, dword [esi + 0x80]
test ebx, ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x10], eax
jle 0x4bfc13
mov ecx, dword [esi + 0x64]
mov edx, dword [esp + 0x14]
xor ebx, ebx
mov edi, dword [ecx + edx*4]
cmp dword [edi + 0x1c], ebx
jne 0x4bfa8b
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x48]
push eax
push ecx
push esi
lea ecx, [esi + 0xb8]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
call fcn.005505b7
jmp 0x4bfbe4
mov eax, dword [edi + 8]
xor edx, edx
cmp eax, 0xffffffff
je 0x4bfaa5
mov eax, dword [esi + 0xb4]
mov edx, dword [esi + 0xb0]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x28]
xor ecx, ecx
cmp eax, ebp
setg cl
cmp ecx, ebx
mov dword [esp + 0x2c], ecx
mov ebx, ebp
jne 0x4bfabb
mov ebx, eax
mov ecx, dword [0x5fb2b4]
lea eax, [edx + ecx]
cmp ebp, eax
jge 0x4bfae8
mov ecx, dword [esi + 0x219c]
mov edx, dword [esi + 0x88]
lea eax, [edx + ecx*2]
mov ecx, dword [esi + 0x80]
sub eax, ecx
cdq
idiv dword [esp + 0x18]
mov ebx, eax
jmp 0x4bfb02
mov eax, dword [edi + 4]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x4bfaf9
mov eax, dword [edi + 0x38]
test eax, eax
je 0x4bfb02
mov ecx, dword [0x5fb2b0]
lea ebx, [edx + ecx*2]
mov eax, dword [esi + 0x48]
test eax, eax
je 0x4bfb20
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x84]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
lea ebx, [ebx + eax - 1]
mov eax, dword [esi + 0x8c]
mov edx, dword [esi + 0x84]
sub eax, edx
mov ecx, edx
mov edx, dword [esp + 0x10]
lea ebp, [edi + 0xc]
add ebx, edx
sub eax, 2
mov dword [esp + 0x10], ebx
mov ebx, ebp
add eax, ecx
mov dword [ebx], edx
mov edx, ebp
mov dword [ebx + 4], ecx
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x10]
mov dword [edx + 8], ebx
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x3c]
test eax, eax
jne 0x4bfbac
cmp dword [esi + 0x5c], 1
jne 0x4bfb71
push 2
push 0
push ebp
call dword [0x5e91a8]
lea ecx, [esi + 0xb8]
xor eax, eax
cmp ecx, eax
je 0x4bfbac
cmp dword [ecx + 0x1c], eax
je 0x4bfbac
cmp dword [esp + 0x2c], eax
jne 0x4bfba1
cmp dword [edi + 0x3c], eax
jne 0x4bfba1
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
lea ebp, [esp + 0x38]
mov eax, dword [edi + 0x2c]
push ebp
push eax
push esi
call fcn.005505b7
mov eax, dword [esi + 0x48]
mov dword [esp + 0x10], ebx
test eax, eax
je 0x4bfbd4
mov eax, dword [esi + 0x8c]
mov ebp, dword [esi + 0x84]
sub eax, ebp
mov ecx, ebx
cdq
sub eax, edx
sar eax, 1
neg eax
add ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x4bfbe0
inc dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x74]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x4bfa50
jmp 0x4bfc13
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0x2158]
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov dword [esi + 0x2158], ecx
mov ecx, dword [esp + 0x34]
push ecx
lea ecx, [esp + 0x6c]
call fcn.0055b017
lea ecx, [esp + 0x68]
mov dword [esp + 0x84], 0xffffffff
call fcn.0055b85c
pop ebp
mov ecx, dword [esp + 0x78]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x78
ret