Function at 0x43d3f0
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 + 0x14]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
neg eax
mov dword [ebp - 0x20], eax
test esi, esi
je 0x43d4a9
cmp edi, 7
ja 0x43d694
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
lea ebx, [eax - 1]
mov al, 1
lea edx, [edi - 2]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x14], eax
cmp edx, 5
jbe switch.0x0043d697
mov edx, 0x2000
mov dword [ebp - 0x24], 0
xor eax, eax
inc eax
mov bl, byte [0x5047dc]
mov byte [ebp - 0x18], bl
mov dword [ebp - 0x1c], eax
push eax
mov dword [ebp - 0x10], edx
push edx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d483
cmp byte [ebp - 0x24], 0
je 0x43d483
mov eax, dword [ebp - 0x10]
and eax, 0x1000
je 0x43d483
cmp byte [ebp - 0x18], 0
jne 0x43d76b
test edi, edi
je 0x43d4e2
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp + 0xc]
lock add dword [0x5047e0], eax
mov eax, edi
and eax, ebx
cmp eax, esi
jne 0x43d4ba
mov eax, edi
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00457380
mov esi, eax
and esi, dword [ebp - 0x20]
add esi, ebx
jmp 0x43d412
push 0x8000
push 0
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
test eax, eax
je 0x43d691
mov ecx, dword [ebp + 0xc]
lock sub dword [0x5047e0], ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
jmp 0x43d507
call dword [sym.imp.KERNEL32.dll_GetLastError]
xchg dword [0x5047d0], eax
xor edi, edi
test esi, esi
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
je 0x43d6d3
add edi, ebx
and edi, dword [ebp - 0x20]
add edi, esi
mov esi, edi
test al, 1
mov eax, 0
jne 0x43d42f
mov eax, dword [ebp + 0x10]
add eax, 0xffff0000
mov dword [ebp - 0x24], eax
add eax, ecx
jb 0x43d6d0
mov dword [ebp - 0x14], eax
cmp edx, 5
jbe 0x43d734
mov esi, 0x2000
mov dword [ebp - 0x20], 0
xor eax, eax
inc eax
mov bl, byte [0x5047dc]
mov dword [ebp - 0x10], eax
push eax
push esi
push dword [ebp - 0x14]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d57e
cmp byte [ebp - 0x20], 0
je 0x43d57e
mov eax, esi
and eax, 0x1000
je 0x43d57e
test bl, bl
jne 0x43d9c2
test edi, edi
je 0x43d655
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x14]
lock add dword [0x5047e0], ebx
mov eax, edi
and eax, edx
sub ecx, eax
mov eax, 0
cmovb eax, dword [ebp + 0x10]
lea esi, [ecx + eax]
mov eax, dword [ebp - 0x24]
sub eax, esi
or eax, esi
je 0x43d645
push 0x8000
push 0
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
test eax, eax
je 0x43d6cd
lock sub dword [0x5047e0], ebx
cmp dword [ebp + 0x18], 2
mov eax, dword [ebp + 0xc]
jae 0x43d6f7
mov edx, 0x2000
mov dword [ebp - 0x20], 0
xor ecx, ecx
inc ecx
add esi, edi
mov bl, byte [0x5047dc]
mov dword [ebp - 0x18], ecx
push ecx
mov dword [ebp - 0x10], edx
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d624
cmp byte [ebp - 0x20], 0
je 0x43d624
mov eax, dword [ebp - 0x10]
and eax, 0x1000
je 0x43d624
test bl, bl
jne 0x43dc10
test edi, edi
je 0x43d637
mov eax, dword [ebp + 0xc]
lock add dword [0x5047e0], eax
jmp 0x43d49f
call dword [sym.imp.KERNEL32.dll_GetLastError]
xchg dword [0x5047d0], eax
xor edi, edi
test edi, edi
mov edx, dword [ebp - 0x28]
jne 0x43d49f
jmp 0x43d533
call dword [sym.imp.KERNEL32.dll_GetLastError]
xchg dword [0x5047d0], eax
call fcn.004bfa00
sub esp, 8
push dword [ebp + 0x18]
mov ebx, dword [ebp - 0x14]
push ebx
push 0
call fcn.004bf740
add esp, 0x14
mov edi, eax
test eax, eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x2c]
jne 0x43d58f
xor edi, edi
jmp 0x43d49f
int3
int3
jmp dword [edx*4 + 0x4e3880]
mov eax, 4
jmp 0x43d6bb
mov eax, 0x40
jmp 0x43d6bb
mov al, 1
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
jmp 0x43d6c0
mov eax, 0x20
mov cl, 1
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp + 0xc]
mov edx, 0x3000
jmp 0x43d44a
int3
int3
mov edi, ecx
call fcn.004bfa00
sub esp, 8
push dword [ebp + 0x18]
push edi
push 0
call fcn.004bf740
add esp, 0x14
mov edi, eax
test eax, eax
jne 0x43d48d
jmp 0x43d68a
cmp dword [ebp - 0x28], 5
jbe 0x43d700
int3
mov al, 1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
jmp dword [eax*4 + 0x4e38b0]
mov ecx, 0x20
jmp 0x43d727
mov ecx, 4
jmp 0x43d727
mov ecx, 0x40
jmp 0x43d727
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0xc]
mov edx, 0x3000
jmp 0x43d5ee
mov al, 1
mov dword [ebp - 0x20], eax
mov esi, 0x3000
jmp dword [edx*4 + 0x4e3898]
mov eax, dword [ebp + 0x18]
jmp 0x43d54b
mov eax, 4
jmp 0x43d54b
mov eax, 0x20
jmp 0x43d54b
mov eax, 0x40
jmp 0x43d54b
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43d787
cmp eax, 0x27b
jne 0x43d4e2
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x1c]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d487
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43d7c5
cmp eax, 0x27b
jne 0x43d4e2
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x1c]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d487
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43d803
cmp eax, 0x27b
jne 0x43d4e2
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x1c]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d487
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43d841
cmp eax, 0x27b
jne 0x43d4e2
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x1c]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d487
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43d87f
cmp eax, 0x27b
jne 0x43d4e2
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x1c]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d487
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43d8bd
cmp eax, 0x27b
jne 0x43d4e2
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x1c]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d487
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43d8fb
cmp eax, 0x27b
jne 0x43d4e2
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x1c]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d487
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43d939
cmp eax, 0x27b
jne 0x43d4e2
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x1c]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d487
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43d977
cmp eax, 0x27b
jne 0x43d4e2
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x1c]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d487
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43d9b5
cmp eax, 0x27b
jne 0x43d4e2
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x43d4e2
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43d9de
cmp eax, 0x27b
jne 0x43d655
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x10]
push esi
push dword [ebp - 0x14]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d586
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43da1b
cmp eax, 0x27b
jne 0x43d655
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x10]
push esi
push dword [ebp - 0x14]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d586
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43da58
cmp eax, 0x27b
jne 0x43d655
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x10]
push esi
push dword [ebp - 0x14]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d586
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43da95
cmp eax, 0x27b
jne 0x43d655
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x10]
push esi
push dword [ebp - 0x14]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d586
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43dad2
cmp eax, 0x27b
jne 0x43d655
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x10]
push esi
push dword [ebp - 0x14]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d586
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43db0f
cmp eax, 0x27b
jne 0x43d655
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x10]
push esi
push dword [ebp - 0x14]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d586
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43db4c
cmp eax, 0x27b
jne 0x43d655
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x10]
push esi
push dword [ebp - 0x14]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d586
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43db89
cmp eax, 0x27b
jne 0x43d655
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x10]
push esi
push dword [ebp - 0x14]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d586
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43dbc6
cmp eax, 0x27b
jne 0x43d655
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x10]
push esi
push dword [ebp - 0x14]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d586
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43dc03
cmp eax, 0x27b
jne 0x43d655
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x43d655
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43dc2c
cmp eax, 0x27b
jne 0x43d637
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d628
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43dc6a
cmp eax, 0x27b
jne 0x43d637
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d628
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43dca8
cmp eax, 0x27b
jne 0x43d637
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d628
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43dce6
cmp eax, 0x27b
jne 0x43d637
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d628
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43dd24
cmp eax, 0x27b
jne 0x43d637
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d628
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43dd62
cmp eax, 0x27b
jne 0x43d637
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d628
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43dda0
cmp eax, 0x27b
jne 0x43d637
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d628
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43ddde
cmp eax, 0x27b
jne 0x43d637
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d628
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43de1c
cmp eax, 0x27b
jne 0x43d637
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test eax, eax
jne 0x43d628
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 0x5ae]
cmp ecx, 2
jb 0x43de5a
cmp eax, 0x27b
jne 0x43d637
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x43d637