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

Disassembly:
push 0xffffffffffffffff
push 0x4bec70
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x502344]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x502344]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x88]
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x9c]
push eax
mov dword [esp + 0x38], ecx
call fcn.0052c7e7
add esp, 4
mov esi, eax
lea edx, [esp + 0x58]
push edx
mov ecx, esi
call fcn.0052b1e7
xor ebx, ebx
mov dword [esp + 0x80], ebx
cmp dword [esp + 0x6c], ebx
jne 0x52f8d0
mov dword [esp + 0x38], ebx
jmp 0x52f8e0
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
movzx eax, ax
mov dword [esp + 0x38], eax
add edi, 8
push edi
lea ecx, [esp + 0x20]
push ecx
push 1
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x28], 0x30
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x44], edi
call fcn.0058806e
mov ecx, dword [esp + 0x40]
add esp, 0x14
mov dword [esp + 0x20], ecx
cmp byte [ebp + 4], bl
jne 0x52f922
mov ecx, ebp
call fcn.00531327
mov esi, dword [esp + 0x34]
cmp byte [esi + 4], bl
jne 0x52f932
mov ecx, esi
call fcn.00531327
cmp dword [ebp], ebx
jne 0x52f941
cmp dword [esi], ebx
je 0x52f9e1
jmp 0x52f949
cmp dword [esi], ebx
jne 0x52f9e1
cmp byte [ebp + 4], bl
jne 0x52f955
mov ecx, ebp
call fcn.00531327
movzx esi, word [ebp + 6]
push edi
lea edx, [esp + 0x2c]
push edx
push 1
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x28], 0x2b
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], ebx
call fcn.0058806e
add esp, 0x14
cmp si, word [esp + 0x1c]
jne 0x52f990
mov eax, dword [esp + 0x2c]
mov byte [eax], 0x2b
jmp 0x52f9d5
cmp byte [ebp + 4], bl
jne 0x52f99c
mov ecx, ebp
call fcn.00531327
movzx esi, word [ebp + 6]
push edi
lea edx, [esp + 0x2c]
push edx
push 1
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x28], 0x2d
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], ebx
call fcn.0058806e
add esp, 0x14
cmp si, word [esp + 0x1c]
jne 0x52f9e1
mov eax, dword [esp + 0x2c]
mov byte [eax], 0x2d
inc eax
mov ecx, ebp
mov dword [esp + 0x20], eax
call fcn.005312c7
mov eax, dword [esp + 0x98]
and eax, 0xe00
cmp eax, 0x400
jne 0x52f9ff
mov edi, 8
mov dword [esp + 0x1c], edi
jmp 0x52fa1e
cmp eax, 0x800
jne 0x52fa11
mov edi, 0x10
mov dword [esp + 0x1c], edi
jmp 0x52fa1e
neg eax
sbb eax, eax
and eax, 0xa
mov edi, eax
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x34]
push esi
push ebp
mov byte [esp + 0x22], bl
mov byte [esp + 0x23], bl
call fcn.00531a87
add esp, 8
test al, al
je 0x52fb0a
cmp byte [ebp + 4], bl
jne 0x52fa48
mov ecx, ebp
call fcn.00531327
movzx eax, word [ebp + 6]
cmp ax, word [esp + 0x24]
jne 0x52fb0a
mov ecx, ebp
mov byte [esp + 0x1a], 1
call fcn.005312c7
push esi
push ebp
call fcn.00531a87
add esp, 8
test al, al
je 0x52fafb
cmp byte [ebp + 4], bl
jne 0x52fa81
mov ecx, ebp
call fcn.00531327
mov edx, dword [esp + 0x30]
movzx esi, word [ebp + 6]
push edx
lea eax, [esp + 0x2c]
push eax
push 1
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x34]
push edx
mov byte [esp + 0x28], 0x78
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.0058806e
add esp, 0x14
cmp si, word [esp + 0x24]
je 0x52fadc
cmp byte [ebp + 4], bl
jne 0x52fac3
mov ecx, ebp
call fcn.00531327
mov eax, dword [esp + 0x30]
movzx esi, word [ebp + 6]
push eax
push ebx
push 0x58
call fcn.00533257
add esp, 0xc
cmp si, ax
jne 0x52fafb
cmp edi, ebx
je 0x52fae5
cmp edi, 0x10
jne 0x52fafb
mov edi, 0x10
mov ecx, ebp
mov dword [esp + 0x1c], edi
mov byte [esp + 0x1a], bl
call fcn.005312c7
jmp 0x52fb13
cmp edi, ebx
jne 0x52fb0e
mov edi, 8
mov dword [esp + 0x1c], edi
jmp 0x52fb13
cmp edi, ebx
je 0x52fb28
cmp edi, 0xa
je 0x52fb28
mov eax, edi
sub eax, 8
neg eax
sbb eax, eax
and eax, 0xe
add eax, 8
mov dword [esp + 0x24], eax
jmp 0x52fb30
mov dword [esp + 0x24], 0xa
mov cl, byte [esp + 0x1a]
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
mov dword [esp + 0x54], 0xf
mov byte [esp + 0x40], cl
mov dword [esp + 0x50], 1
mov byte [esp + 0x41], bl
mov byte [esp + 0x80], 1
mov esi, dword [esp + 0x34]
xor edi, edi
jmp 0x52fb67
cmp byte [ebp + 4], bl
jne 0x52fbac
mov ecx, dword [ebp]
cmp ecx, ebx
je 0x52fba5
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x52fb88
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x52fb88
mov eax, dword [eax]
movzx eax, word [eax]
jmp 0x52fb92
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x52fba5
mov word [ebp + 6], ax
jmp 0x52fba8
mov dword [ebp], ebx
mov byte [ebp + 4], 1
cmp byte [esi + 4], bl
jne 0x52fbef
mov ecx, dword [esi]
cmp ecx, ebx
je 0x52fbe9
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x52fbcc
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x52fbcc
mov eax, dword [eax]
movzx eax, word [eax]
jmp 0x52fbd6
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x52fbe9
mov word [esi + 6], ax
jmp 0x52fbeb
mov dword [esi], ebx
mov byte [esi + 4], 1
mov ecx, dword [ebp]
cmp ecx, ebx
jne 0x52fc2b
cmp dword [esi], ebx
jne 0x52fc2f
cmp edi, ebx
je 0x52fe4b
cmp edi, dword [esp + 0x50]
jbe 0x52fc0d
call fcn.005890e1
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x52fc1c
lea eax, [esp + 0x40]
cmp byte [eax + edi], bl
jle 0x52fe47
inc edi
jmp 0x52fe4b
cmp dword [esi], ebx
jne 0x52fbfa
cmp byte [ebp + 4], bl
jne 0x52fc71
cmp ecx, ebx
je 0x52fc6a
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x52fc4d
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x52fc4d
mov eax, dword [eax]
movzx eax, word [eax]
jmp 0x52fc57
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x52fc6a
mov word [ebp + 6], ax
jmp 0x52fc6d
mov dword [ebp], ebx
mov byte [ebp + 4], 1
mov edx, dword [esp + 0x30]
movzx eax, word [ebp + 6]
push edx
lea ecx, [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x24], bl
mov dword [esp + 0x38], ebx
call fcn.005881e2
mov al, byte [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [ecx], al
movsx eax, al
push edx
push eax
push 0x4da418
call fcn.0058c1d7
add esp, 0x1c
test eax, eax
je 0x52fd26
cmp byte [esp + 0x1b], bl
jne 0x52fcc5
mov ecx, dword [esp + 0x20]
cmp byte [ecx], 0x30
je 0x52fcdb
mov eax, dword [esp + 0x2c]
add eax, 0x1f
cmp dword [esp + 0x20], eax
jae 0x52fcdb
inc dword [esp + 0x20]
mov byte [esp + 0x1b], 1
mov byte [esp + 0x1a], 1
cmp edi, dword [esp + 0x50]
jbe 0x52fceb
call fcn.005890e1
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x52fcfa
lea eax, [esp + 0x40]
cmp byte [eax + edi], 0x7f
je 0x52fdde
cmp edi, dword [esp + 0x50]
jbe 0x52fd0f
call fcn.005890e1
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x52fd1e
lea eax, [esp + 0x40]
inc byte [eax + edi]
jmp 0x52fdde
cmp edi, dword [esp + 0x50]
jbe 0x52fd31
call fcn.005890e1
cmp dword [esp + 0x54], 0x10
mov eax, dword [esp + 0x40]
jae 0x52fd40
lea eax, [esp + 0x40]
cmp byte [eax + edi], bl
je 0x52fbfa
mov esi, dword [esp + 0x38]
cmp si, bx
je 0x52fbfa
cmp byte [ebp + 4], bl
jne 0x52fd62
mov ecx, ebp
call fcn.00531327
movzx eax, word [ebp + 6]
cmp ax, si
jne 0x52fbfa
or edx, 0xffffffff
sub edx, dword [esp + 0x50]
cmp edx, 1
ja 0x52fd80
call fcn.00587a60
mov esi, dword [esp + 0x50]
inc esi
cmp esi, 0xfffffffe
jbe 0x52fd8f
call fcn.00587a60
mov eax, dword [esp + 0x54]
cmp eax, esi
jae 0x52fe06
mov eax, dword [esp + 0x50]
push eax
push esi
lea ecx, [esp + 0x44]
call fcn.004f0d43
cmp esi, ebx
jbe 0x52fdd9
mov eax, dword [esp + 0x40]
mov ecx, 0x10
cmp dword [esp + 0x54], ecx
jae 0x52fdbd
lea eax, [esp + 0x40]
mov edx, dword [esp + 0x50]
mov byte [eax + edx], bl
mov eax, dword [esp + 0x40]
mov dword [esp + 0x50], esi
cmp dword [esp + 0x54], ecx
jae 0x52fdd6
lea eax, [esp + 0x40]
mov byte [eax + esi], bl
mov esi, dword [esp + 0x34]
inc edi
mov ecx, dword [ebp]
cmp ecx, ebx
je 0x52fe3b
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x52fe1f
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x52fe1f
mov eax, edx
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 2]
mov dword [ecx], edx
movzx eax, word [eax]
jmp 0x52fe29
cmp esi, ebx
jne 0x52fda8
cmp eax, 0x10
mov eax, dword [esp + 0x40]
mov dword [esp + 0x50], ebx
jae 0x52fe1b
lea eax, [esp + 0x40]
mov byte [eax], bl
jmp 0x52fdd9
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x52fe3b
mov byte [ebp + 4], bl
jmp 0x52fb67
mov dword [ebp], ebx
mov byte [ebp + 4], 1
jmp 0x52fb67
mov byte [esp + 0x1a], bl
cmp dword [esp + 0x70], 0x10
mov esi, dword [esp + 0x5c]
jae 0x52fe5a
lea esi, [esp + 0x5c]
mov ebp, 0x10
cmp byte [esp + 0x1a], bl
je 0x52fed1
mov edi, edi
cmp edi, ebx
jbe 0x52fec1
cmp byte [esi], 0x7f
je 0x52fec1
sub edi, 1
je 0x52fe95
cmp edi, dword [esp + 0x50]
jbe 0x52fe80
call fcn.005890e1
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], ebp
jae 0x52fe8e
lea eax, [esp + 0x40]
mov dl, byte [esi]
cmp dl, byte [eax + edi]
jne 0x52fed1
cmp edi, ebx
jne 0x52feb9
cmp edi, dword [esp + 0x50]
jbe 0x52fea4
call fcn.005890e1
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x54], ebp
jae 0x52feb2
lea eax, [esp + 0x40]
mov cl, byte [esi]
cmp cl, byte [eax + edi]
jl 0x52fed1
cmp byte [esi + 1], bl
jle 0x52fe67
inc esi
jmp 0x52fe67
mov eax, dword [esp + 0x20]
cmp byte [esp + 0x1b], bl
jne 0x52fed5
mov byte [eax], 0x30
inc eax
jmp 0x52fed5
mov eax, dword [esp + 0x2c]
mov byte [eax], bl
mov byte [esp + 0x80], bl
cmp dword [esp + 0x54], ebp
jb 0x52fef1
mov edx, dword [esp + 0x40]
push edx
call fcn.00588b77
add esp, 4
mov esi, 0xf
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
mov dword [esp + 0x80], 0xffffffff
cmp dword [esp + 0x70], ebp
jb 0x52ff20
mov eax, dword [esp + 0x5c]
push eax
call fcn.00588b77
add esp, 4
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00588b82
add esp, 0x70
ret