Function at 0x5597a0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov edi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov eax, ebx
neg eax
mov dword [ebp - 0x28], eax
test esi, esi
je 0x559956
lea eax, [ebx - 1]
mov dword [ebp - 0x20], eax
xor eax, eax
test edi, edi
setne al
or eax, 2
shl eax, 0xc
mov cl, 1
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x10], eax
and eax, 0x1000
mov dword [ebp - 0x2c], eax
lea eax, [edi - 1]
mov dword [ebp - 0x24], eax
cmp eax, 5
jbe 0x5599b3
xor ebx, ebx
xor ecx, ecx
inc ecx
mov al, byte [0x73ab80]
mov byte [ebp - 0x15], al
mov dword [ebp - 0x14], ecx
push ecx
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x55982b
test bl, bl
je 0x55982b
cmp dword [ebp - 0x2c], 0
je 0x55982b
cmp byte [ebp - 0x15], 0
jne 0x5599de
test edi, edi
je 0x559869
mov eax, dword [ebp + 0xc]
lock add dword [0x73ab84], eax
mov eax, edi
and eax, dword [ebp - 0x20]
cmp eax, dword [ebp + 0x14]
je 0x55994c
push 0x8000
push 0
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
test eax, eax
je 0x5599b0
mov eax, dword [ebp + 0xc]
lock sub dword [0x73ab84], eax
jmp 0x55987f
call dword [sym.imp.KERNEL32.dll_GetLastError]
xchg dword [0x73ab74], eax
xor edi, edi
test esi, esi
je 0x559968
add edi, dword [ebp - 0x20]
and edi, dword [ebp - 0x28]
add edi, dword [ebp + 0x14]
mov esi, edi
test byte [ebp - 0x1c], 1
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x24]
jne 0x5597ea
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
lea edx, [eax + ebx]
add edx, 0xffff0000
cmp edx, eax
jb 0x559c38
mov ecx, edx
lea eax, [ebx - 0x10000]
mov dword [ebp - 0x1c], eax
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x10], edx
sub esp, 8
push esi
mov esi, dword [ebp - 0x10]
push esi
push 0
call fcn.00559420
add esp, 0x14
mov edi, eax
test eax, eax
je 0x55998e
lock add dword [0x73ab84], esi
mov eax, edi
and eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 0x14]
sub ecx, eax
mov eax, 0
cmovb eax, ebx
lea ebx, [ecx + eax]
mov eax, dword [ebp - 0x1c]
sub eax, ebx
or eax, ebx
je 0x55994c
push 0x8000
push 0
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
test eax, eax
je 0x559c35
add ebx, edi
lock sub dword [0x73ab84], esi
sub esp, 8
mov esi, dword [ebp + 0x18]
push esi
push dword [ebp + 0xc]
push ebx
call fcn.00559420
add esp, 0x14
test eax, eax
mov ebx, dword [ebp + 0x10]
je 0x5598c6
mov edi, eax
mov eax, dword [ebp + 0xc]
lock add dword [0x73ab84], eax
mov eax, edi
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00661f80
mov esi, eax
and esi, dword [ebp - 0x28]
add esi, dword [ebp + 0x14]
jmp 0x5597c1
call fcn.006ccc90
sub esp, 8
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push 0
call fcn.00559420
add esp, 0x14
mov edi, eax
test eax, eax
jne 0x55982f
xor edi, edi
jmp 0x55994c
call fcn.006ccc90
sub esp, 8
push dword [ebp + 0x18]
push esi
push 0
call fcn.00559420
add esp, 0x14
mov edi, eax
test eax, eax
jne 0x5598e2
jmp 0x55998a
int3
mov ecx, 2
mov bl, 1
mov eax, dword [ebp - 0x24]
jmp dword [eax*4 + 0x711f44]
mov ecx, 4
jmp 0x5599d7
mov ecx, 0x20
jmp 0x5599d7
mov ecx, 0x40
mov bl, 1
jmp case.0x5599bd.1
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x5599fa
cmp eax, 0x27b
jne 0x559869
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x55982f
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x559a38
cmp eax, 0x27b
jne 0x559869
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x55982f
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x559a76
cmp eax, 0x27b
jne 0x559869
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x55982f
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x559ab4
cmp eax, 0x27b
jne 0x559869
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x55982f
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x559af2
cmp eax, 0x27b
jne 0x559869
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x55982f
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x559b30
cmp eax, 0x27b
jne 0x559869
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x55982f
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x559b6e
cmp eax, 0x27b
jne 0x559869
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x55982f
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x559bac
cmp eax, 0x27b
jne 0x559869
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x55982f
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x559bea
cmp eax, 0x27b
jne 0x559869
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x55982f
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x559c28
cmp eax, 0x27b
jne 0x559869
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x559869
int3
int3