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

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x4c]
cmp eax, ecx
push edi
jbe 0x5d983b
mov edx, dword [esi + 0x40]
sub eax, ecx
mov edi, eax
je 0x5d9834
push edi
push ecx
push edx
call fcn.00611870
add esp, 0xc
add eax, edi
mov dword [esi + 0x4c], eax
jmp 0x5d9841
mov eax, edx
mov dword [esi + 0x4c], eax
jmp 0x5d9841
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x4c], ecx
mov eax, dword [esi + 0x4c]
mov edx, dword [esi + 0x44]
sub edx, eax
push edx
lea ecx, [esi + 0x20]
push eax
call fcn.005d80e0
test eax, eax
jle 0x5d9972
jmp 0x5d9860
mov edx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x4c]
mov edi, dword [esi + 0x38]
lea ebp, [esp + 0x10]
push ebp
push edx
add ecx, eax
push edi
mov eax, ecx
lea edx, [esp + 0x20]
push edx
push eax
mov eax, dword [esi + 0x40]
mov dword [esi + 0x4c], ecx
mov ecx, dword [esi + 0x74]
mov ebx, dword [ecx]
push eax
lea eax, [esi + 0x54]
push eax
call dword [ebx + 8]
cmp eax, 3
je 0x5d9904
cmp eax, 2
je 0x5d993b
mov eax, dword [esi + 0x38]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
mov edx, dword [esp + 0x14]
je 0x5d98b3
cmp edx, dword [esi + 0x40]
je 0x5d993b
xor ebx, ebx
cmp byte [esi + 0x30], bl
je 0x5d98cb
mov edi, ecx
sub edi, eax
imul edi, dword [esi + 0x78]
mov ebp, edx
sub ebp, dword [esi + 0x40]
cmp edi, ebp
jne 0x5d993d
cmp ecx, eax
jne 0x5d9921
mov ebp, dword [esi + 0x40]
mov edi, edx
sub edi, ebp
cmp edi, dword [esi + 0x7c]
jge 0x5d993d
cmp ecx, eax
jne 0x5d9921
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x44]
sub ecx, eax
push ecx
push eax
lea ecx, [esi + 0x20]
call fcn.005d80e0
cmp eax, ebx
jg 0x5d9860
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 8
ret
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x4c]
pop edi
mov dword [esi + 0x48], ecx
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
movzx eax, byte [eax]
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esi + 0x38]
pop edi
mov dword [esi + 0x48], edx
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
movzx eax, byte [eax]
pop esi
pop ebp
pop ebx
add esp, 8
ret
xor ebx, ebx
mov eax, dword [esi + 0x58]
cmp eax, ebx
je 0x5d995c
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [esi + 0x24]
cmp eax, ebx
je 0x5d9959
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x24], ebx
mov byte [esi + 0x33], bl
mov dword [esi + 0x58], ebx
mov byte [esi + 0x34], bl
mov byte [esi + 0x35], 1
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 8
ret
sub esp, 0x10
push esi
mov esi, dword [esp + 0x18]
mov al, byte [esi + 0x33]
test al, al
jne 0x5d9d72
mov ecx, esi
call fcn.005d97b0
test al, al
jne 0x5d9d9b
or eax, 0xffffffff
pop esi
add esp, 0x10
ret
mov al, byte [esi + 0x36]
test al, al
je 0x5d9d9b
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x70]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x6c]
cmp eax, ecx
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov byte [esi + 0x36], 0
je 0x5d9d9b
movzx eax, byte [eax]
pop esi
add esp, 0x10
ret
mov al, byte [esi + 0x2e]
test al, al
push ebx
push ebp
push edi
je 0x5d9ecc
mov al, byte [esi + 0x31]
test al, al
je 0x5d9ecc
mov ecx, dword [esi + 0x28]
shr ecx, 2
test cl, 1
je 0x5d9ecc
mov eax, dword [esi + 0x58]
xor edi, edi
cmp eax, edi
je 0x5d9ddd
mov edx, dword [esi + 0x64]
mov ecx, dword [esi + 0x60]
push edx
push ecx
push eax
lea ecx, [esi + 0x20]
call fcn.005d7c70
push 2
push edi
lea ebx, [esi + 0x20]
push edi
mov ecx, ebx
mov dword [esi + 0x58], edi
mov dword [esi + 0x60], edi
mov dword [esi + 0x64], edi
call fcn.005d7ba0
mov ecx, ebx
mov edi, eax
mov ebp, edx
call fcn.005d78b0
mov ebx, edx
xor ecx, ecx
cmp ebx, ecx
mov dword [esp + 0x10], eax
jl 0x5d9ec3
jg 0x5d9e19
cmp eax, ecx
jbe 0x5d9ec3
cmp ebp, ecx
jl 0x5d9ec3
jg 0x5d9e2b
cmp edi, ecx
jb 0x5d9ec3
cmp ebp, ebx
jg 0x5d9ec3
jl 0x5d9e3d
cmp edi, eax
jae 0x5d9ec3
mov eax, dword [0x6ba690]
push ecx
push eax
push ebp
push edi
call fcn.00615660
xor ecx, ecx
push ecx
mov ecx, dword [0x6ba690]
push ecx
push edx
push eax
call fcn.00612240
mov ecx, dword [esp + 0x10]
sub edi, eax
sbb ebp, edx
sub ecx, eax
sbb ebx, edx
mov dword [esi + 0x60], ecx
mov ecx, ebx
test ecx, ecx
mov dword [esp + 0x1c], ebp
mov dword [esi + 0x64], ebx
jl 0x5d9e8e
mov ecx, 0x100000
jg 0x5d9e84
cmp dword [esi + 0x60], ecx
jbe 0x5d9e8e
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], 0
mov ecx, dword [esi + 0x64]
push ecx
mov ecx, dword [esi + 0x60]
push ecx
push edx
push eax
lea ecx, [esi + 0x20]
call fcn.005d84a0
test eax, eax
mov dword [esi + 0x58], eax
je 0x5d9ecc
mov edx, dword [esi + 0x60]
lea ecx, [eax + edi]
pop edi
pop ebp
add edx, eax
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
movzx eax, byte [ecx]
pop ebx
pop esi
add esp, 0x10
ret
mov dword [esi + 0x58], ecx
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], ecx
pop edi
pop ebp
pop ebx
mov ecx, esi
pop esi
add esp, 0x10
jmp 0x5d9800