Function at 0x43e810
Capabilities:
Check if file exists
Create directory
Delete directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46e4c2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x168
mov eax, dword [0x480630]
push ebx
xor eax, ebp
push esi
mov esi, ecx
lea ebx, [esi + 0x70]
mov dword [esp + 0x168], eax
mov eax, dword [ebx]
mov eax, dword [eax - 8]
cmp eax, 0xc8
push edi
mov dword [esp + 0x14], ebx
jg 0x43eacb
cmp eax, 3
jle 0x43eacb
mov eax, dword [ebx]
push 0x47439c
push eax
call fcn.00458b97
xor edi, edi
add esp, 8
cmp eax, edi
je 0x43e886
sub eax, dword [ebx]
mov dword [esp + 0x20], eax
jns 0x43eacb
mov eax, dword [ebx]
cmp dword [eax - 8], edi
jl 0x43e8ab
push 0x474398
push eax
call fcn.00457e8d
add esp, 8
cmp eax, edi
je 0x43e8ab
sub eax, dword [ebx]
mov dword [esp + 0x20], eax
jns 0x43eacb
push 0x474394
mov ecx, ebx
call fcn.004042a0
test eax, eax
jge 0x43eacb
push 0x474390
mov ecx, ebx
call fcn.004042a0
test eax, eax
jge 0x43eacb
push 0x47438c
mov ecx, ebx
call fcn.004042a0
test eax, eax
jge 0x43eacb
mov eax, dword [0x4800d8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x17c], edi
mov dword [esp + 0x1c], eax
add esi, 0x6c
mov ecx, esi
mov byte [esp + 0x17c], 1
call fcn.00437de0
test eax, eax
jle 0x43e971
lea ecx, [esp + 0x1c]
push ecx
push 2
push edi
mov ecx, esi
call fcn.0043e720
lea edx, [esp + 0x18]
push edx
push 3
push edi
mov ecx, esi
call fcn.0043e720
mov eax, dword [esp + 0x18]
push eax
call fcn.004582cb
add esp, 4
test eax, eax
jle 0x43e965
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004582cb
mov edx, dword [esp + 0x1c]
push edx
mov ebx, eax
call fcn.004582cb
add esp, 8
cmp ebx, eax
jle 0x43ea60
mov ebx, dword [esp + 0x14]
mov ecx, esi
inc edi
call fcn.00437de0
cmp edi, eax
jl 0x43e911
push ebx
lea ecx, [esp + 0x14]
call fcn.00405930
push 0x474388
lea ecx, [esp + 0x14]
mov byte [esp + 0x180], 2
call fcn.004042a0
cmp eax, 0xffffffff
jne 0x43eab0
push 0x474380
lea ecx, [esp + 0x14]
call fcn.0043d450
cmp eax, 0xffffffff
jne 0x43eab0
mov edi, dword [esp + 0x10]
cmp byte [edi + 1], 0x3a
jne 0x43eab0
mov al, byte [edi + 2]
cmp al, 0x5c
jne 0x43eab0
push 3
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x18]
xor ebx, ebx
call fcn.0040a900
mov esi, dword [esp + 0x14]
mov eax, dword [esi - 8]
mov ecx, dword [edi - 8]
cmp eax, ecx
mov byte [esp + 0x17c], 3
jge 0x43ea97
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x43ea0a
test al, 0x10
je 0x43eaa7
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov esi, dword [esi - 8]
push esi
push 0x4708a4
lea ecx, [esp + 0x18]
add ebx, eax
call fcn.00403970
test eax, eax
jle 0x43ea79
inc eax
push eax
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x18]
call fcn.0040a900
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x180], 4
call fcn.00404cd0
lea ecx, [esp + 0x24]
mov byte [esp + 0x17c], 3
call fcn.004309a0
jmp 0x43ea87
lea ecx, [esp + 0x1c]
call fcn.004309a0
lea ecx, [esp + 0x18]
call fcn.004309a0
mov eax, 0x6c
jmp 0x43ead0
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x18]
call fcn.00404cd0
mov esi, dword [esp + 0x14]
mov eax, dword [esi - 8]
cmp eax, dword [edi - 8]
jl 0x43e9f6
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x43eaf3
test al, 0x10
jne 0x43eaf3
lea ecx, [esp + 0x14]
call fcn.004309a0
lea ecx, [esp + 0x10]
call fcn.004309a0
lea ecx, [esp + 0x1c]
call fcn.004309a0
lea ecx, [esp + 0x18]
call fcn.004309a0
mov eax, 0x82
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x16c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004570de
mov esp, ebp
pop ebp
ret
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
add ebx, eax
xor eax, eax
mov dword [esp + 0x28], 0
mov ecx, 0x4f
lea edi, [esp + 0x2c]
rep stosd dword es:[edi], eax
push 0x5c
lea ecx, [esp + 0x14]
call fcn.00404b00
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
xor edx, edx
cmp eax, 0xffffffff
sete dl
cmp eax, 0xffffffff
mov dword [esp + 0x20], edx
je 0x43eb46
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
test ebx, ebx
je 0x43eb99
mov edi, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
jmp 0x43eb56
mov esi, dword [esp + 0x14]
push esi
call edi
push 0x5c
lea ecx, [esp + 0x18]
call fcn.00408b50
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x1c]
call fcn.0040a900
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x180], 5
call fcn.00404cd0
lea ecx, [esp + 0x24]
mov byte [esp + 0x17c], 3
call fcn.004309a0
dec ebx
jne 0x43eb52
mov eax, dword [esp + 0x20]
test eax, eax
lea ecx, [esp + 0x14]
jne 0x43eaab
call fcn.004309a0
lea ecx, [esp + 0x10]
call fcn.004309a0
lea ecx, [esp + 0x1c]
call fcn.004309a0
lea ecx, [esp + 0x18]
call fcn.004309a0
xor eax, eax
jmp 0x43ead0