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

Disassembly:
sub esp, 0x90
mov eax, dword [0x856918]
xor eax, esp
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x94]
push ebx
push ebp
push esi
push edi
xor edi, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa8]
mov ebx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x10], edi
cmp eax, edi
je 0x5fd10f
cmp byte [eax], 0
je 0x5fd10f
xor esi, esi
jmp 0x5fd114
mov esi, 1
cmp eax, edi
je 0x5fd149
mov ecx, str.:memory:
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5fd140
test dl, dl
je 0x5fd13c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5fd140
add eax, 2
add ecx, 2
test dl, dl
jne 0x5fd120
xor eax, eax
jmp 0x5fd145
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x5fd167
cmp esi, edi
je 0x5fd158
mov ecx, ebx
call fcn.005d4860
test eax, eax
jne 0x5fd167
mov eax, dword [esp + 0xb0]
test al, al
js 0x5fd16e
xor ebp, ebp
jmp 0x5fd17b
mov eax, dword [esp + 0xb0]
or dword [esp + 0xac], 2
mov ebp, 1
mov dword [esp + 0x2c], ebp
test eax, 0x100
je 0x5fd19f
cmp ebp, edi
jne 0x5fd18e
cmp esi, edi
je 0x5fd19f
and eax, 0xfffffeff
or eax, 0x200
mov dword [esp + 0xb0], eax
mov edi, 0x2c
call fcn.005d5250
mov ebx, eax
mov dword [esp + 0x14], ebx
test ebx, ebx
je 0x5fd216
mov edx, dword [esp + 0x18]
mov byte [ebx + 8], 0
mov dword [ebx], edx
mov dword [ebx + 0x1c], ebx
mov dword [ebx + 0x20], 1
test esi, esi
jne 0x5fd346
test ebp, ebp
je 0x5fd1e1
test byte [esp + 0xb0], 0x40
je 0x5fd346
test dword [esp + 0xb0], 0x20000
je 0x5fd346
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 8]
inc edi
push edi
call fcn.005d4f10
mov esi, eax
add esp, 4
mov byte [ebx + 9], 1
test esi, esi
jne 0x5fd220
push ebx
call fcn.005ca910
add esp, 4
mov eax, 7
jmp 0x5fd61f
test ebp, ebp
je 0x5fd2a1
mov ecx, dword [esp + 0x20]
call fcn.005cabe0
inc eax
push eax
push ecx
push esi
call fcn.00564f70
add esp, 0xc
push 4
call fcn.005ca580
push eax
mov dword [esp + 0x30], eax
call fcn.005ca5c0
push 2
call fcn.005ca580
push eax
mov dword [esp + 0x44], eax
call fcn.005ca5c0
mov ebp, dword [0x86b178]
add esp, 0x10
test ebp, ebp
je 0x5fd32b
mov edi, esi
mov edi, edi
mov esi, dword [ebp]
push 0
mov eax, esi
call fcn.005ce100
add esp, 4
mov ecx, edi
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x5fd2d2
test dl, dl
je 0x5fd29d
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x5fd2d2
add ecx, 2
add eax, 2
test dl, dl
jne 0x5fd281
xor eax, eax
jmp 0x5fd2d7
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push edi
call fcn.005ca3b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x5fd239
push esi
call fcn.005ca910
push ebx
call fcn.005ca910
add esp, 8
jmp 0x5fd61b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x5fd2e8
mov eax, esi
call fcn.005ce120
cmp eax, dword [esp + 0x1c]
je 0x5fd2f1
mov ebp, dword [ebp + 0x44]
test ebp, ebp
jne 0x5fd270
jmp 0x5fd329
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x14]
sub eax, 1
js 0x5fd323
mov ecx, dword [ecx + 0x10]
mov edx, eax
shl edx, 4
lea ecx, [ecx + edx + 4]
lea esp, [esp]
mov edx, dword [ecx]
test edx, edx
je 0x5fd31b
cmp dword [edx + 4], ebp
je 0x5fd363
dec eax
sub ecx, 0x10
test eax, eax
jge 0x5fd310
mov dword [ebx + 4], ebp
inc dword [ebp + 0x40]
mov esi, edi
mov ecx, dword [esp + 0x34]
push ecx
call fcn.005ca600
push esi
call fcn.005ca910
add esp, 8
test ebp, ebp
jne 0x5fd526
mov edi, 0x54
call fcn.005d5250
mov ebp, eax
test ebp, ebp
jne 0x5fd390
mov dword [esp + 0x10], 7
jmp 0x5fd5bc
mov edx, dword [esp + 0x34]
push edx
call fcn.005ca600
mov eax, dword [esp + 0x2c]
push eax
call fcn.005ca600
push edi
call fcn.005ca910
push ebx
call fcn.005ca910
add esp, 0x10
mov eax, 0x13
jmp 0x5fd61f
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push 0x5e4580
push edx
mov edx, dword [esp + 0xb4]
push 0x4c
push eax
push ebp
push ecx
call fcn.005f95a0
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x5fd5bc
mov edx, dword [ebp]
push edx
lea esi, [esp + 0x3c]
lea edi, [eax + 0x64]
call fcn.005cdef0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x5fd5bc
mov al, byte [esp + 0xac]
mov ecx, dword [esp + 0x18]
mov byte [ebp + 0x10], al
mov eax, dword [ebp]
mov dword [ebp + 4], ecx
push ebp
mov ecx, fcn.005d7960
call fcn.005cde90
mov dword [ebx + 4], ebp
mov eax, dword [ebp]
xor ecx, ecx
add esp, 4
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], ecx
call fcn.005ce060
test al, al
je 0x5fd422
or word [ebp + 0x16], 1
movzx eax, byte [esp + 0x49]
movzx edx, byte [esp + 0x48]
shl eax, 8
or eax, edx
shl eax, 8
lea esi, [ebp + 0x20]
mov dword [esi], eax
cmp eax, 0x200
jb 0x5fd47b
cmp eax, 0x10000
ja 0x5fd47b
lea edx, [eax - 1]
test eax, edx
jne 0x5fd47b
mov bl, byte [esp + 0x4c]
or word [ebp + 0x16], 2
lea ecx, [esp + 0x6c]
call fcn.005cb890
test eax, eax
setne al
lea ecx, [esp + 0x78]
mov byte [ebp + 0x11], al
call fcn.005cb890
test eax, eax
setne cl
mov byte [ebp + 0x12], cl
jmp 0x5fd491
mov dword [esi], ecx
cmp dword [esp + 0x20], ecx
je 0x5fd48f
cmp dword [esp + 0x2c], ecx
jne 0x5fd48f
mov byte [ebp + 0x11], cl
mov byte [ebp + 0x12], cl
xor bl, bl
mov eax, dword [ebp]
movzx edi, bl
push edi
push esi
push eax
call fcn.005d6940
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x5fd5b8
mov edx, dword [esi]
sub edx, edi
mov edi, dword [esp + 0x14]
mov dword [ebp + 0x24], edx
cmp byte [edi + 9], al
je 0x5fd5ab
push 2
mov dword [ebp + 0x40], 1
call fcn.005ca580
add esp, 4
cmp dword [0x85b20c], 0
mov esi, eax
je 0x5fd506
push 0
call fcn.005ca580
add esp, 4
mov dword [ebp + 0x38], eax
test eax, eax
jne 0x5fd506
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], 7
mov byte [eax + 0x38], 0
mov ebx, edi
jmp 0x5fd5bc
push esi
call fcn.005ca5c0
mov ecx, dword [0x86b178]
push esi
mov dword [ebp + 0x44], ecx
mov dword [0x86b178], ebp
call fcn.005ca600
add esp, 8
jmp 0x5fd528
mov edi, ebx
cmp byte [edi + 9], 0
je 0x5fd5ab
mov esi, dword [esp + 0x18]
xor edx, edx
cmp dword [esi + 0x14], edx
jle 0x5fd5ab
mov ecx, dword [esi + 0x10]
add ecx, 4
nop
mov eax, dword [ecx]
test eax, eax
je 0x5fd54c
cmp byte [eax + 9], 0
jne 0x5fd557
inc edx
add ecx, 0x10
cmp edx, dword [esi + 0x14]
jl 0x5fd540
jmp 0x5fd5ab
cmp dword [eax + 0x18], 0
je 0x5fd569
lea ecx, [ecx]
mov eax, dword [eax + 0x18]
cmp dword [eax + 0x18], 0
jne 0x5fd560
mov edx, dword [edi + 4]
cmp edx, dword [eax + 4]
jae 0x5fd580
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], 0
mov dword [eax + 0x18], edi
jmp 0x5fd5ab
cmp dword [eax + 0x14], 0
je 0x5fd596
mov ecx, dword [eax + 0x14]
cmp dword [ecx + 4], edx
jae 0x5fd596
mov eax, ecx
cmp dword [eax + 0x14], 0
jne 0x5fd586
mov edx, dword [eax + 0x14]
mov ecx, edx
mov dword [edi + 0x14], edx
mov dword [edi + 0x18], eax
test ecx, ecx
je 0x5fd5a8
mov dword [ecx + 0x18], edi
mov dword [eax + 0x14], edi
cmp dword [esp + 0x10], 0
mov eax, dword [esp + 0x30]
mov dword [eax], edi
je 0x5fd5e7
mov ebx, dword [esp + 0x14]
test ebp, ebp
je 0x5fd5cc
mov edi, dword [ebp]
test edi, edi
je 0x5fd5cc
call fcn.005fce20
push ebp
call fcn.005ca910
push ebx
call fcn.005ca910
mov ecx, dword [esp + 0x38]
add esp, 8
mov dword [ecx], 0
jmp 0x5fd60a
mov ebx, dword [esp + 0x14]
push 0
push 0
call fcn.005de3f0
add esp, 8
test eax, eax
jne 0x5fd60a
mov edx, dword [ebx + 4]
mov ecx, dword [edx]
mov eax, 0x7d0
call fcn.005cddd0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x5fd61b
push eax
call fcn.005ca600
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00564b24
add esp, 0x90