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

Disassembly:
push 0xffffffffffffffff
push 0x630c30
mov eax, dword fs:[0]
push eax
sub esp, 0x48
push ebx
push ebp
push esi
push edi
mov eax, dword [0x685e38]
xor eax, esp
push eax
lea eax, [esp + 0x5c]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x14], ebp
mov ebx, dword [esp + 0x74]
xor edi, edi
cmp ebx, edi
je case.0x5f869f.10
mov ecx, ebx
call fcn.004b4020
test eax, eax
je case.0x5f869f.10
mov esi, dword [esp + 0x78]
cmp dword [esi], edi
jne 0x5f85d7
mov ecx, ebx
call fcn.00475300
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
cmp eax, 0xcd
je 0x5f85cd
mov ecx, ebx
call fcn.00475300
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
cmp eax, 0xce
je 0x5f85cd
lea ecx, [esp + 0x74]
push ecx
mov ecx, ebp
mov dword [esp + 0x78], 9
call fcn.005f75f0
cmp al, 2
jne 0x5f85d7
jmp case.0x5f869f.10
cmp byte [ebp + 0x49], 1
je case.0x5f869f.10
mov edx, dword [ebx]
mov eax, dword [edx + 0x38]
mov ecx, ebx
call eax
cmp eax, 9
je 0x5f8602
mov edx, dword [ebx]
mov eax, dword [edx + 0x38]
mov ecx, ebx
call eax
cmp eax, 0x27
ja case.0x5f869f.10
cmp byte [eax + ebp + 0x40], 1
je case.0x5f869f.10
mov edx, dword [ebx]
mov eax, dword [edx + 0x38]
mov ecx, ebx
call eax
push ebx
mov ecx, ebp
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x28], ebx
call fcn.005f7ad0
cmp dword [esi], edi
jne 0x5f8685
mov edx, dword [ebx]
mov eax, dword [edx + 0x38]
mov ecx, ebx
mov dword [esp + 0x74], edi
call eax
dec eax
cmp eax, 0x1d
ja case.0x5f8637.10
movzx ecx, byte [eax + 0x5f8d08]
jmp dword [ecx*4 + 0x5f8cfc]
mov edx, dword [ebx]
mov edx, dword [edx + 0xcc]
lea eax, [esp + 0x74]
push eax
mov ecx, ebx
call edx
lea eax, [esp + 0x74]
push eax
mov ecx, ebp
call fcn.005f7980
test eax, eax
jne case.0x5f8637.10
jmp case.0x5f869f.10
lea ecx, [esp + 0x74]
push ecx
mov ecx, ebp
mov dword [esp + 0x78], edi
call fcn.005f7980
test eax, eax
je case.0x5f869f.10
mov dx, word [esp + 0x74]
mov word [ebp + 0x38], dx
mov eax, dword [ebx]
mov edx, dword [eax + 0x38]
mov ecx, ebx
call edx
dec eax
cmp eax, 0x1d
ja case.0x5f869f.10
movzx eax, byte [eax + 0x5f8d3c]
jmp dword [eax*4 + 0x5f8d28]
lea ecx, [esp + 0x2c]
call fcn.00517a80
push 0
lea ecx, [esp + 0x30]
mov dword [esp + 0x68], 0
call fcn.00434f60
mov ecx, dword [esp + 0x6c]
push ecx
mov esi, eax
call fcn.005fd2e0
add esp, 4
push 0
lea ecx, [esp + 0x30]
mov dword [esi], eax
call fcn.00434f60
cmp dword [eax], 0
je 0x5f8797
push 0
lea ecx, [esp + 0x30]
call fcn.00434f60
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 0x5c]
call eax
add eax, 0xfffffff9
cmp eax, 0x23
ja case.0x5f870a.8
movzx ecx, byte [eax + 0x5f8d6c]
jmp dword [ecx*4 + 0x5f8d5c]
call fcn.005eed20
cmp eax, 0x201
jne case.0x5f870a.8
push 0
lea ecx, [esp + 0x30]
call fcn.00434f60
mov ecx, dword [eax]
call fcn.0051ad70
jmp case.0x5f870a.8
call fcn.005eed20
cmp eax, 0x201
jne case.0x5f870a.8
push 0
lea ecx, [esp + 0x30]
call fcn.00434f60
mov eax, dword [eax]
cmp dword [eax + 0xc], 0
je case.0x5f870a.8
push 0
lea ecx, [esp + 0x30]
call fcn.00434f60
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
jmp 0x5f877b
call fcn.005eed20
cmp eax, 0x201
jne case.0x5f870a.8
push 0
lea ecx, [esp + 0x30]
call fcn.00434f60
mov ecx, dword [eax]
call fcn.005984c0
mov edx, dword [ebp]
mov edx, dword [edx]
lea eax, [esp + 0x2c]
push eax
mov ecx, ebp
call edx
lea ecx, [esp + 0x2c]
call fcn.00517ad0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x64], 0xffffffff
call fcn.00405850
jmp case.0x5f869f.10
mov ecx, ebx
call fcn.00476a60
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x1c]
push ecx
push eax
mov eax, dword [esp + 0x74]
push edx
push eax
mov ecx, ebp
mov dword [esp + 0x2c], 1
call fcn.005f8530
jmp case.0x5f869f.10
mov ecx, dword [ebp + 0x78]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
push ecx
push edx
push eax
call fcn.005fd540
add esp, 0xc
mov esi, eax
push esi
mov ecx, ebp
call fcn.005f83f0
test esi, esi
je case.0x5f869f.10
mov ecx, esi
call fcn.004bcf90
push esi
jmp 0x5f8cd9
cmp dword [ebp + 0x3c], 1
jne 0x5f8b3c
mov ecx, ebx
call fcn.00470f00
push 0
mov ecx, eax
call fcn.004b9f80
mov dword [esp + 0x74], edi
test eax, eax
je 0x5f884f
lea ecx, [esp + 0x74]
push ecx
mov ecx, eax
call fcn.004cb6b0
lea edx, [esp + 0x74]
push edx
mov ecx, ebp
call fcn.005f7980
test eax, eax
je case.0x5f869f.10
mov ax, word [esp + 0x74]
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x30]
mov word [ebp + 0x38], ax
movzx esi, word [ebx + 0x5c]
movzx eax, word [ebx + 0x5e]
or edi, 0xffffffff
cmp esi, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
jge 0x5f889d
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x20]
movzx ecx, si
push edx
push eax
mov dword [esp + 0x28], ecx
call fcn.005fa3c0
mov edi, eax
add esp, 8
test edi, edi
jge 0x5f889d
movzx ecx, word [ebx + 0x5e]
inc esi
cmp esi, ecx
jl 0x5f8875
movzx esi, word [ebx + 0x5e]
movzx edx, word [ebx + 0x5c]
cmp esi, edx
mov dword [esp + 0x70], 0xffffffff
jle 0x5f88db
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x24]
movzx eax, si
push ecx
push edx
mov dword [esp + 0x2c], eax
call fcn.005fa3c0
add esp, 8
mov dword [esp + 0x70], eax
test eax, eax
jge 0x5f88db
movzx eax, word [ebx + 0x5c]
dec esi
cmp esi, eax
jg 0x5f88b1
test edi, edi
jl case.0x5f869f.10
cmp dword [esp + 0x70], 0
jl case.0x5f869f.10
cmp edi, dword [esp + 0x70]
je case.0x5f869f.10
mov ecx, dword [esp + 0x70]
cmp edi, ecx
jle 0x5f890a
mov eax, edi
mov edi, ecx
mov ecx, eax
mov dword [esp + 0x70], ecx
cmp edi, ecx
mov dword [esp + 0x78], edi
jge case.0x5f869f.10
lea edi, [ebp + 0x14]
lea esp, [esp]
xor esi, esi
cmp dword [edi], esi
jle 0x5f8a60
cmp esi, dword [edi]
jge 0x5f8936
mov ecx, dword [edi + 8]
lea eax, [ecx + esi*4]
jmp 0x5f893e
push esi
mov ecx, edi
call fcn.005f3cc0
mov edx, dword [eax]
mov ecx, dword [edx]
call fcn.004754e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x40]
call eax
cmp eax, 1
jne 0x5f8984
cmp esi, dword [edi]
jge 0x5f8961
mov ecx, dword [edi + 8]
lea eax, [ecx + esi*4]
jmp 0x5f8969
push esi
mov ecx, edi
call fcn.005f3cc0
mov edx, dword [eax]
mov ecx, dword [edx]
call fcn.004754e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
movzx ecx, ax
cmp ecx, dword [esp + 0x78]
je 0x5f898e
inc esi
cmp esi, dword [edi]
jl 0x5f892e
jmp 0x5f8a60
cmp dword [ebp + 0x208], 1
jne 0x5f8a7c
mov ecx, ebx
call fcn.00475300
test eax, eax
je 0x5f8a7c
mov ecx, ebx
call fcn.00475300
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
cmp eax, 0xcd
je 0x5f89dc
mov ecx, ebx
call fcn.00475300
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
cmp eax, 0xce
jne 0x5f8a7c
push esi
mov ecx, edi
call fcn.00434f60
mov eax, dword [eax]
cmp dword [eax + 8], 0
je 0x5f8a7c
push esi
mov ecx, edi
call fcn.00434f60
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x6c]
push eax
call fcn.00431ec0
test eax, eax
jne 0x5f8a7c
mov ecx, ebx
call fcn.00475300
mov ebp, eax
mov edx, dword [ebp]
mov eax, dword [edx + 0x3c]
mov ecx, ebp
call eax
cmp eax, 0xcd
jne 0x5f8a29
mov eax, ebp
jmp 0x5f8a41
mov edx, dword [ebp]
mov eax, dword [edx + 0x3c]
mov ecx, ebp
call eax
cmp eax, 0xce
jne 0x5f8a5c
mov ecx, ebp
call fcn.004a7c40
test eax, eax
je 0x5f8a5c
mov ebp, dword [esp + 0x6c]
mov ecx, ebp
call fcn.00431e70
push eax
mov ecx, ebp
call fcn.00432480
test eax, eax
je 0x5f8a78
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x78]
inc eax
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x78], eax
jl 0x5f8920
jmp case.0x5f869f.10
mov ebp, dword [esp + 0x14]
cmp esi, dword [edi]
jge 0x5f8a88
mov ecx, dword [edi + 8]
lea eax, [ecx + esi*4]
jmp 0x5f8a90
push esi
mov ecx, edi
call fcn.005f3cc0
mov edx, dword [eax]
mov eax, dword [edx]
mov dword [ebp + 0x2c], eax
cmp esi, dword [edi]
jge 0x5f8aa3
mov ecx, dword [edi + 8]
lea eax, [ecx + esi*4]
jmp 0x5f8aab
push esi
mov ecx, edi
call fcn.005f3cc0
mov edx, dword [eax]
mov eax, dword [edx]
mov ecx, dword [ebp + 4]
push 3
mov dword [ebp + 0x30], eax
call fcn.004f3480
mov ecx, eax
call fcn.0043a730
mov ecx, eax
call fcn.004e2900
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x58]
call eax
push 0
push 0
lea ecx, [esp + 0x20]
push ecx
push eax
mov eax, dword [esp + 0x7c]
lea edx, [ebp + 0x1f4]
push edx
push eax
mov dword [esp + 0x30], 0
call fcn.005fcff0
mov ecx, dword [esp + 0x30]
add esp, 0x18
mov esi, eax
test ecx, ecx
je 0x5f8b0d
mov edx, dword [ecx]
mov eax, dword [edx + 0x58]
call eax
mov dword [ebp + 0x30], eax
push esi
mov ecx, ebp
call fcn.005f83f0
test esi, esi
je 0x5f8b29
mov ecx, esi
call fcn.004bcf90
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [ebp + 0x2c], ecx
mov dword [ebp + 0x30], edx
jmp case.0x5f869f.10
mov ecx, dword [ebp + 0x78]
mov esi, dword [esp + 0x6c]
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x74]
push ecx
lea edx, [esp + 0x80]
push edx
push eax
lea ecx, [ebp + 0x1f4]
push ecx
push esi
call fcn.005fcff0
add esp, 0x18
cmp dword [ebp + 0x78], 1
mov edi, eax
mov dword [esp + 0x74], edi
jne 0x5f8c33
cmp dword [esp + 0x14], 1
jne 0x5f8c33
mov edx, dword [ebx]
mov edx, dword [edx + 0x5c]
lea eax, [esp + 0x2c]
push eax
mov ecx, ebx
call edx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x3c]
push esi
push ecx
call fcn.005fd4c0
fld qword [0x6448d8]
mov edx, dword [eax]
mov dword [esp + 0x38], edx
mov eax, dword [eax + 4]
fst qword [esp + 0x60]
lea ecx, [esp + 0x38]
fstp qword [esp + 0x58]
push ecx
lea edx, [esp + 0x5c]
push edx
mov dword [esp + 0x44], eax
call fcn.005fb170
add esp, 0x14
lea eax, [esp + 0x40]
push eax
mov ecx, ebx
call fcn.00470f00
mov ecx, eax
call fcn.004ba180
fld qword [esp + 0x54]
mov eax, dword [eax]
sub esp, 0x10
fstp qword [esp + 8]
mov dword [esp + 0x74], 1
fld qword [esp + 0x5c]
fstp qword [esp]
push eax
push 0xd867
push 0x6a0208
call fcn.005fab40
add esp, 0x1c
lea ecx, [esp + 0x40]
mov dword [esp + 0x64], 0xffffffff
call fcn.005ed430
mov ecx, 0x6a0208
call fcn.005faf50
test edi, edi
je case.0x5f869f.10
mov ecx, dword [esp + 0x78]
test ecx, ecx
jne 0x5f8c54
mov ecx, dword [esp + 0x70]
call fcn.004754e0
mov ecx, dword [esp + 0x78]
mov esi, eax
jmp 0x5f8c56
mov esi, ecx
test esi, esi
je 0x5f8cbb
mov edx, dword [esi]
mov edi, dword [ebx]
mov eax, dword [edx + 0x3c]
lea ecx, [esp + 0x6c]
push ecx
mov ecx, esi
mov dword [esp + 0x70], 0
add edi, 0xc8
call eax
mov edx, dword [esi]
movzx ecx, ax
mov eax, dword [edx + 0x40]
push ecx
mov ecx, esi
call eax
mov edx, dword [edi]
push eax
mov ecx, ebx
call edx
lea eax, [esp + 0x6c]
push eax
mov ecx, ebp
call fcn.005f7980
test eax, eax
jne 0x5f8caa
mov esi, dword [esp + 0x74]
mov ecx, esi
call fcn.004bcf90
push esi
jmp 0x5f8cd9
mov cx, word [esp + 0x6c]
mov edi, dword [esp + 0x74]
mov word [ebp + 0x38], cx
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x5f8cc9
mov edx, dword [ecx]
mov eax, dword [edx + 0x58]
call eax
mov dword [ebp + 0x30], eax
push edi
mov ecx, ebp
call fcn.005f83f0
mov ecx, edi
call fcn.004bcf90
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x10