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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x52fb2b
sub esp, 0x60
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x24], esi
movzx ebp, byte [eax + 0xf]
mov ebx, ebp
and ebx, 0x1f
movzx ebp, bl
cmp ebp, 0x14
jne 0x52f8da
mov ebp, dword [eax + 0x28]
cmp esi, ebp
jb 0x52f6f6
mov ebx, 0x5f9afb
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], 0x2d
mov dword [esp], 0x5bd2c0
lea ebx, [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040ae60
lea ebx, [esp + 0xc]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
call fcn.004291d0
ud2
mov ebp, esi
mov esi, dword [eax + 0x28]
cmp ebp, esi
jae 0x52f8d3
mov esi, dword [eax + 0x24]
shl ebp, 3
add esi, ebp
mov dword [esp + 0x38], eax
mov dword [esp], eax
cmp dword [esp], 0
je 0x52f8c8
mov dword [esp + 0x44], esi
mov ebp, dword [esi]
mov dword [esp + 4], ebp
call fcn.00526280
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
movzx ebp, byte [eax]
mov ebx, ebp
and ebx, 1
cmp bl, 0
jne 0x52f8be
xor eax, eax
cmp al, 0
jne 0x52f7cd
mov dword [esp], 0
mov ebx, 0x5ef9b3
mov dword [esp + 4], ebx
mov dword [esp + 8], 9
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
mov ebx, 0x5f2ee7
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0x15
call fcn.0043f300
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x50], ebx
mov dword [esp], 0x5bd2c0
lea ebx, [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040ae60
lea ebx, [esp + 0xc]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
call fcn.004291d0
ud2
mov eax, dword [esp + 0x70]
mov ebp, dword [eax]
xor ebx, ebx
cmp ebp, ebx
jne 0x52f853
mov dword [esp], 0
mov ebx, 0x5ef9b3
mov dword [esp + 4], ebx
mov dword [esp + 8], 9
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
mov ebx, 0x5f6fd7
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0x21
call fcn.0043f300
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x50], ebx
mov dword [esp], 0x5bd2c0
lea ebx, [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040ae60
lea ebx, [esp + 0xc]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
call fcn.004291d0
ud2
mov ebp, dword [eax]
mov ebx, dword [ebp + 4]
mov dword [esp + 0x7c], ebx
mov ebp, dword [eax]
cmp ebp, 0
je 0x52f8b9
mov ebx, dword [esp + 0x24]
lea esi, [ebp + 0x14]
cmp ebx, 0x186a0
jae 0x52f8b2
shl ebx, 2
add esi, ebx
mov dword [esp + 0x84], esi
mov ebx, dword [esp + 0x38]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x52f8aa
mov ebx, dword [esp + 0x44]
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
call fcn.005262d0
mov ebx, dword [esp + 8]
mov dword [esp + 0x80], ebx
add esp, 0x60
ret
mov dword [0], eax
jmp 0x52f88b
call fcn.00427bf0
ud2
mov dword [ebp], eax
jmp 0x52f863
mov eax, 1
jmp 0x52f74e
mov dword [0], eax
jmp 0x52f71c
call fcn.00427bf0
ud2
mov dword [esp + 0x7c], eax
mov dword [esp], eax
call fcn.00526350
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 4]
xor ebp, ebp
cmp eax, ebp
je 0x52fae6
movzx ebp, word [eax + 4]
cmp esi, ebp
jae 0x52fae6
xor ebx, ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov ecx, dword [eax + 8]
mov edx, eax
add edx, ecx
movzx ecx, word [eax + 4]
movzx ebp, word [eax + 4]
movzx ebx, cx
mov ecx, ebx
movzx ebx, bp
cmp ebx, 0x10000
ja 0x52fadf
cmp ecx, ebx
ja 0x52fadf
cmp edx, 0
je 0x52fad8
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ebx
lea ebx, [esp + 0x54]
mov ebp, esi
mov esi, dword [ebx + 4]
cmp ebp, esi
jae 0x52fad1
mov esi, dword [ebx]
shl ebp, 4
add esi, ebp
mov eax, dword [esi]
mov ebx, dword [esi + 4]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esi + 8]
mov dword [esp + 0x30], ebx
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 4], eax
call fcn.00526280
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
movzx ebp, byte [eax]
mov ebx, ebp
and ebx, 1
cmp bl, 0
jne 0x52fac7
xor eax, eax
cmp al, 0
jne 0x52fa3b
mov dword [esp], 0
mov ebx, 0x5ef9b3
mov dword [esp + 4], ebx
mov dword [esp + 8], 9
mov ebx, dword [esp + 0x64]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x10], ebx
mov ebx, 0x5f2ee7
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0x15
call fcn.0043f300
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x50], ebx
mov dword [esp], 0x5bd2c0
lea ebx, [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040ae60
lea ebx, [esp + 0xc]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
call fcn.004291d0
ud2
mov dword [esp], 0x5bd540
call fcn.0040dd70
mov ebx, dword [esp + 4]
mov dword [esp + 0x48], ebx
mov ebp, dword [esp + 0x6c]
mov dword [esp], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 4], ebp
call fcn.00526310
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x48]
cmp ebp, 0
je 0x52fac2
cmp byte [0x6cfdd8], 0
jne 0x52fab4
mov dword [ebp], ebx
mov ebx, dword [esp + 0x48]
cmp ebx, 0
je 0x52fab0
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 4], ebx
call fcn.005262d0
mov ebx, dword [esp + 8]
mov dword [esp + 0x80], ebx
jmp 0x52f8a6
mov dword [ebx], eax
jmp 0x52fa85
mov dword [esp], ebp
mov dword [esp + 4], ebx
call fcn.0040e740
jmp 0x52fa7c
mov dword [ebp], eax
jmp 0x52fa70
mov eax, 1
jmp 0x52f9b0
call fcn.00427bf0
ud2
mov dword [edx], eax
jmp 0x52f946
call fcn.00427c60
ud2
mov ebx, 0x5f9afb
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], 0x2d
mov dword [esp], 0x5bd2c0
lea ebx, [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040ae60
lea ebx, [esp + 0xc]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
call fcn.004291d0
ud2
call fcn.004501c0
jmp fcn.0052f670