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

Disassembly:
sub esp, 0x84
push ebx
mov ebx, dword [esp + 0x8c]
push ebp
push esi
push edi
xor esi, esi
push 0xffffffffffffffff
push ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
call fcn.0052d1c0
mov ecx, dword [ebx + 0x58]
add esp, 8
cmp ecx, 2
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
jl 0x52f792
cmp dword [ebx + 4], esi
jne 0x52f17f
pop edi
pop esi
pop ebp
mov eax, 0xffffff76
pop ebx
add esp, 0x84
ret
mov edi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
cmp edi, esi
jl 0x52f792
jg 0x52f19f
cmp ecx, esi
jb 0x52f792
cmp edi, edx
jg 0x52f792
jl 0x52f1b1
cmp ecx, eax
ja 0x52f792
mov ecx, dword [ebx + 0x34]
dec ecx
mov dword [esp + 0x28], ecx
js 0x52f1f3
mov ebp, dword [ebx + 0x44]
mov esi, ecx
shl esi, 4
lea esi, [esi + ebp + 8]
mov ebp, dword [esi]
sub eax, ebp
mov ebp, dword [esi + 4]
sbb edx, ebp
cmp edi, edx
jg 0x52f1e7
jl 0x52f1df
cmp dword [esp + 0x9c], eax
jae 0x52f1e7
dec ecx
sub esi, 0x10
test ecx, ecx
jge 0x52f1c7
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], eax
mov esi, dword [ebx + 0x38]
mov edx, dword [esi + ecx*8 + 0xc]
mov eax, dword [esi + ecx*8 + 8]
mov ebp, dword [esi + ecx*8 + 4]
mov dword [esp + 0x1c], edx
mov edx, dword [esi + ecx*8]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x20], edx
shl ecx, 4
add ecx, eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ebp
mov edi, dword [ecx]
mov esi, dword [ecx + 8]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 0xc]
add esi, edi
mov dword [esp + 0x3c], edi
adc ecx, eax
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x50], ecx
mov ecx, edi
mov edi, dword [esp + 0x30]
sub ecx, esi
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x40], eax
sbb eax, edi
add ecx, esi
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xa0]
adc eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
cmp ebp, eax
jg 0x52f529
jl 0x52f280
cmp edx, dword [esp + 0x18]
jae 0x52f529
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
sub ecx, edi
sbb eax, ebp
test eax, eax
jg 0x52f2a6
jl 0x52f29e
cmp ecx, 0x10000
jae 0x52f2a6
mov edi, dword [esp + 0x20]
mov esi, ebp
jmp 0x52f307
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
sub edx, esi
sbb edi, dword [esp + 0x40]
push eax
push ecx
push edi
push edx
call fcn.004cb3c0
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x40]
sub ecx, esi
mov esi, dword [esp + 0x50]
sbb esi, edi
push esi
push ecx
push edx
push eax
call fcn.006817f0
mov ecx, dword [esp + 0x20]
mov edi, eax
mov esi, edx
add edi, ecx
adc esi, ebp
sub edi, 0x10000
sbb esi, 0
cmp esi, ebp
jg 0x52f307
jl 0x52f2fb
mov eax, ecx
cmp edi, eax
ja 0x52f307
mov edi, dword [esp + 0x20]
mov esi, ebp
add edi, 1
adc esi, 0
push esi
push edi
push ebx
call fcn.0066a5a0
cdq
add esp, 0xc
mov dword [esp + 0x10], eax
or eax, edx
jne 0x52f771
mov edx, dword [esp + 0x18]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub edx, eax
mov eax, dword [esp + 0x1c]
sbb eax, ecx
lea ecx, [esp + 0x64]
push eax
push edx
push ecx
push ebx
call fcn.0052d750
add esp, 0x10
cmp eax, 0xffffff80
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
jne 0x52f359
mov eax, edx
cmp eax, 0xffffffff
je 0x52f771
mov eax, dword [esp + 0x14]
test eax, eax
jg 0x52f3cd
jl 0x52f36b
mov eax, dword [esp + 0x10]
test eax, eax
jae 0x52f3cd
mov ecx, dword [esp + 0x20]
mov eax, ebp
add ecx, 1
adc eax, 0
cmp esi, eax
jl 0x52f529
jg 0x52f389
cmp edi, ecx
jbe 0x52f529
mov edx, edi
or edx, esi
je 0x52f771
add edi, 0xffff0000
adc esi, 0xffffffff
cmp esi, ebp
jg 0x52f3ac
jl 0x52f3a8
cmp edi, dword [esp + 0x20]
ja 0x52f3ac
mov edi, ecx
mov esi, eax
push esi
push edi
push ebx
call fcn.0066a5a0
cdq
add esp, 0xc
mov dword [esp + 0x10], eax
or eax, edx
mov dword [esp + 0x14], edx
jne 0x52f771
jmp 0x52f4e0
lea eax, [esp + 0x64]
push eax
call fcn.00668eb0
mov ecx, dword [ebx + 0x40]
mov edx, dword [esp + 0x2c]
add esp, 4
cmp eax, dword [ecx + edx*4]
jne 0x52f4e0
lea eax, [esp + 0x64]
push eax
call fcn.00668dd0
mov ecx, eax
add esp, 4
and ecx, edx
cmp ecx, 0xffffffff
je 0x52f4e0
cmp edx, dword [esp + 0x38]
jg 0x52f45d
jl 0x52f412
cmp eax, dword [esp + 0x34]
jae 0x52f45d
mov ecx, dword [esp + 0x10]
mov edi, dword [ebx + 8]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x34]
mov ebp, dword [ebx + 0xc]
mov dword [esp + 0x3c], eax
sub ecx, eax
mov eax, dword [esp + 0x38]
sbb eax, edx
mov dword [esp + 0x20], edi
test eax, eax
mov dword [esp + 0x40], edx
jg 0x52f50d
jl 0x52f456
cmp ecx, 0xac44
ja 0x52f50d
mov esi, ebp
jmp 0x52f4e0
mov ecx, dword [esp + 0x20]
add ecx, 1
mov dword [esp + 0x54], ecx
mov ecx, ebp
adc ecx, 0
cmp esi, ecx
mov dword [esp + 0x58], ecx
jl 0x52f529
jg 0x52f485
cmp edi, dword [esp + 0x54]
jbe 0x52f529
mov ecx, dword [esp + 0x18]
cmp ecx, dword [ebx + 8]
jne 0x52f4fd
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [ebx + 0xc]
jne 0x52f4fd
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add edi, 0xffff0000
mov dword [esp + 0x18], edx
adc esi, 0xffffffff
mov dword [esp + 0x1c], eax
cmp esi, ebp
jg 0x52f4c4
jl 0x52f4bc
cmp edi, dword [esp + 0x20]
ja 0x52f4c4
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
push esi
push edi
push ebx
call fcn.0066a5a0
cdq
add esp, 0xc
mov dword [esp + 0x10], eax
or eax, edx
mov dword [esp + 0x14], edx
jne 0x52f771
cmp ebp, dword [esp + 0x1c]
jg 0x52f529
jl 0x52f31f
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
cmp eax, ecx
jae 0x52f529
jmp 0x52f31f
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
cmp ebp, dword [esp + 0x1c]
jl 0x52f280
jg 0x52f529
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
cmp eax, edx
jb 0x52f280
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
push ebx
call fcn.0066a5a0
cdq
or edi, 0xffffffff
add esp, 0xc
mov dword [esp + 0x10], eax
mov dword [ebx + 0x50], edi
or eax, edx
mov dword [ebx + 0x54], edi
jne 0x52f771
push edi
lea edx, [esp + 0x58]
push edi
push edx
push ebx
call fcn.0052d750
xor ebp, ebp
add esp, 0x10
cmp edx, ebp
mov dword [esp + 0x10], eax
jl 0x52f771
jg 0x52f57a
cmp eax, ebp
jb 0x52f771
mov esi, dword [esp + 0x28]
mov eax, dword [ebx + 0x60]
cmp esi, eax
je 0x52f5a3
push ebx
call fcn.0066b080
mov eax, dword [ebx + 0x40]
mov dword [ebx + 0x60], esi
add esp, 4
mov ecx, dword [eax + esi*4]
mov dword [ebx + 0x58], 3
mov dword [ebx + 0x5c], ecx
jmp 0x52f5b2
lea edx, [ebx + 0x1e0]
push edx
call fcn.0066d760
add esp, 4
mov eax, dword [ebx + 0x5c]
lea esi, [ebx + 0x78]
push eax
push esi
call fcn.00669860
lea ecx, [esp + 0x5c]
push ecx
push esi
call fcn.006694a0
add esp, 0x10
lea edx, [esp + 0x74]
push edx
push esi
call fcn.006699f0
cdq
mov ecx, eax
add esp, 8
or ecx, edx
je 0x52f61a
cmp edx, ebp
jl 0x52f6c8
jg 0x52f5f4
cmp eax, ebp
jb 0x52f6c8
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov edx, eax
and edx, ecx
cmp edx, edi
jne 0x52f6d5
push ebp
push esi
call fcn.00669890
add esp, 8
jmp 0x52f5cd
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
push eax
push ecx
push ebx
call fcn.0066a5a0
cdq
add esp, 0xc
cmp edx, ebp
mov dword [esp + 0x10], eax
jl 0x52f771
jg 0x52f644
cmp eax, ebp
jb 0x52f771
lea edx, [esp + 0x54]
push edx
push ebx
call fcn.0052da20
mov esi, edx
add esp, 8
mov edi, eax
cmp esi, ebp
mov dword [esp + 0x10], edi
jl 0x52f771
jg 0x52f66c
cmp edi, ebp
jb 0x52f771
lea eax, [esp + 0x54]
push eax
call fcn.00668eb0
mov ecx, dword [ebx + 0x5c]
add esp, 4
cmp eax, ecx
jne 0x52f6aa
lea ecx, [esp + 0x54]
push ecx
call fcn.00668dd0
add esp, 4
cmp edx, 0xffffffff
jg 0x52f6b2
jl 0x52f699
cmp eax, 0xffffffff
ja 0x52f6b2
lea edx, [esp + 0x54]
push edx
call fcn.00668da0
add esp, 4
test eax, eax
je 0x52f6b2
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], esi
jmp 0x52f644
push esi
push edi
push ebx
call fcn.0052e370
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
mov dword [esp + 0x10], 0xffffff78
jmp 0x52f76d
mov edx, dword [ebx + 0x60]
mov esi, dword [ebx + 0x44]
shl edx, 4
add edx, esi
sub eax, dword [edx]
mov esi, dword [edx + 4]
mov dword [ebx + 0x50], eax
sbb ecx, esi
mov eax, ecx
mov dword [ebx + 0x54], ecx
cmp eax, ebp
jg 0x52f700
jl 0x52f6fa
cmp dword [ebx + 0x50], ebp
jae 0x52f700
mov dword [ebx + 0x50], ebp
mov dword [ebx + 0x54], ebp
mov eax, dword [esp + 0x2c]
mov esi, dword [ebx + 0x50]
mov ecx, dword [esp + 0x30]
add esi, eax
mov dword [ebx + 0x50], esi
mov edx, dword [ebx + 0x54]
mov esi, dword [esp + 0xa0]
adc edx, ecx
cmp edx, esi
mov dword [ebx + 0x54], edx
jg 0x52f765
jl 0x52f733
mov eax, dword [ebx + 0x50]
mov ecx, dword [esp + 0x9c]
cmp eax, ecx
ja 0x52f765
push edi
push ebx
call fcn.0052d1c0
add esp, 8
cmp esi, edx
jg 0x52f765
jl 0x52f74c
cmp dword [esp + 0x9c], eax
ja 0x52f765
mov dword [ebx + 0x68], ebp
mov dword [ebx + 0x70], ebp
pop edi
mov dword [ebx + 0x6c], ebp
mov dword [ebx + 0x74], ebp
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret
mov dword [esp + 0x10], 0xffffff7f
mov dword [esp + 0x14], edi
or eax, 0xffffffff
push ebx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
call fcn.0066b080
mov eax, dword [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffff7d
pop ebx
add esp, 0x84
ret