Function at 0x407f50
Capabilities:
Create directory
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4944
call fcn.00418360
mov eax, dword [0x43153c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
push 0x61a
push eax
mov word [ebp - 0x628], ax
lea eax, [ebp - 0x626]
push eax
mov esi, edx
mov dword [ebp - 0x48d0], ecx
xor edi, edi
call fcn.00412190
mov ebx, esi
add esp, 0xc
lea ecx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x407f97
push esi
lea eax, [ebp - 0x628]
sub ebx, ecx
push 0x30e
push eax
sar ebx, 1
call fcn.0040f581
add esp, 0xc
cmp word [esi + ebx*2 - 2], 0x5c
je 0x407ff4
push 0x4292f0
lea eax, [ebp - 0x628]
push 0x30e
push eax
call fcn.0041015f
lea ebx, [ebp - 0x628]
add esp, 0xc
lea ecx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x407fe5
sub ebx, ecx
sar ebx, 1
call fcn.0040b1e0
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push dword [ebp - 0x48d0]
mov dword [ebp - 0x8a0], 0x40b380
mov dword [ebp - 0x89c], 0x40b3a0
mov dword [ebp - 0x8a8], 0x40b380
mov dword [ebp - 0x8a4], 0x40b3a0
mov dword [ebp - 0x63c], 0x408750
mov dword [ebp - 0x638], 0x408770
mov dword [ebp - 0x48c8], 0x40b460
mov dword [ebp - 0x48c4], 0x40b4c0
mov dword [ebp - 0x48c0], 0x40b4d0
mov dword [ebp - 0x48bc], 0x40b520
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x634], eax
cmp eax, 0xffffffff
jne 0x40809c
call esi
test eax, eax
je 0x40809c
mov edi, 0xb
jmp 0x40811f
xorps xmm0, xmm0
lea edx, [ebp - 0x48e8]
lea ecx, [ebp - 0x634]
movlpd qword [ebp - 0x48e8], xmm0
call fcn.00407df0
test eax, eax
jne 0x4080c1
lea edi, [eax + 0xb]
jmp 0x40811f
mov eax, dword [ebp - 0x48e4]
mov ecx, dword [ebp - 0x48e8]
push 0
mov dword [ebp - 0x62c], eax
lea eax, [ebp - 0x62c]
push eax
push ecx
push dword [ebp - 0x634]
mov dword [ebp - 0x630], ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebp - 0x630], eax
cmp eax, 0xffffffff
jne 0x408107
call esi
test eax, eax
je 0x408107
mov edi, 0xb
jmp 0x40811f
lea eax, [ebp - 0x63c]
mov dword [ebp - 0x48b8], eax
mov dword [ebp - 0x48b0], edi
mov dword [ebp - 0x48b4], edi
mov dword [ebp - 0x4940], 0
mov dword [ebp - 0x493c], 0
mov dword [ebp - 0x4938], 0
mov dword [ebp - 0x4934], 0
mov dword [ebp - 0x4930], 0
mov dword [ebp - 0x492c], 0
mov dword [ebp - 0x4928], 0
mov dword [ebp - 0x4924], 0
mov dword [ebp - 0x4910], 0
mov dword [ebp - 0x490c], 0
mov dword [ebp - 0x4908], 0
mov dword [ebp - 0x4904], 0
mov dword [ebp - 0x4900], 0
mov dword [ebp - 0x48fc], 0
mov dword [ebp - 0x48f8], 0
test edi, edi
jne 0x40850c
lea eax, [ebp - 0x8a8]
push eax
lea eax, [ebp - 0x8a0]
push eax
lea edx, [ebp - 0x48c8]
lea ecx, [ebp - 0x4940]
call fcn.0040ab80
mov edi, eax
add esp, 8
test edi, edi
je 0x4081fe
lea edx, [ebp - 0x8a0]
lea ecx, [ebp - 0x4940]
call fcn.00408a00
test edi, edi
jne 0x40850c
xor edx, edx
mov dword [ebp - 0x48e4], 0xffffffff
mov dword [ebp - 0x48dc], 0
mov dword [ebp - 0x62c], 0
mov dword [ebp - 0x48d4], edx
cmp dword [ebp - 0x4924], edx
jbe 0x4084f6
xor ecx, ecx
mov dword [ebp - 0x48d0], ecx
jmp 0x408240
mov eax, dword [ebp - 0x4930]
add eax, ecx
mov dword [ebp - 0x48d8], eax
mov eax, dword [ebp - 0x4900]
mov dword [ebp - 0x48ec], 0
mov ecx, dword [eax + edx*4]
mov edx, dword [eax + edx*4 + 4]
sub edx, ecx
mov dword [ebp - 0x48cc], 0
cmp edx, 0x104
jae 0x4084f1
lea esi, [ebp - 0x628]
lea esi, [esi + ebx*2]
test esi, esi
je 0x4082ba
mov eax, dword [ebp - 0x48fc]
lea esi, [eax + ecx*2]
test edx, edx
je 0x4082b1
lea eax, [ebp - 0x628]
lea eax, [eax + ebx*2]
mov ecx, eax
sub esi, eax
mov ax, word [esi + ecx]
mov word [ecx], ax
lea ecx, [ecx + 2]
dec edx
jne 0x4082a4
lea esi, [ebp - 0x628]
lea esi, [esi + ebx*2]
lea eax, [ebp - 0x8a8]
push eax
lea eax, [ebp - 0x8a0]
push eax
lea eax, [ebp - 0x48cc]
push eax
lea eax, [ebp - 0x48ec]
push eax
lea eax, [ebp - 0x62c]
push eax
lea eax, [ebp - 0x48dc]
push eax
lea eax, [ebp - 0x48e4]
push eax
push dword [ebp - 0x48d4]
lea edx, [ebp - 0x48c8]
lea ecx, [ebp - 0x4940]
call fcn.0040af20
mov edi, eax
add esp, 0x20
mov dword [ebp - 0x48e0], edi
test edi, edi
jne 0x40854d
cmp word [esi], di
je 0x408362
lea eax, [ebp - 0x628]
lea eax, [eax + ebx*2]
cmp word [esi], 0x2f
jne 0x408357
xor eax, eax
push eax
mov word [esi], ax
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x408346
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, 0x5c
mov word [esi], ax
lea eax, [ebp - 0x628]
lea eax, [eax + ebx*2]
inc edi
cmp word [eax + edi*2], 0
lea esi, [eax + edi*2]
jne 0x408323
mov eax, dword [ebp - 0x48d8]
cmp byte [eax + 0x19], 0
je 0x4083bc
push 0
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x408389
call esi
mov edi, dword [ebp - 0x48e0]
mov edx, dword [ebp - 0x48d4]
mov ecx, dword [ebp - 0x48d0]
inc edx
add ecx, 0x20
mov dword [ebp - 0x48d4], edx
mov dword [ebp - 0x48d0], ecx
cmp edx, dword [ebp - 0x4924]
jb 0x408240
jmp 0x4084f6
lea eax, [ebp - 0x898]
push eax
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
jne 0x4084e4
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x48f0], eax
cmp eax, 0xffffffff
jne 0x408413
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jne 0x4084f1
mov ecx, dword [ebp - 0x48dc]
mov edx, dword [ebp - 0x48ec]
mov esi, dword [ebp - 0x48cc]
lea eax, [ebp - 0x48cc]
lea edx, [edx + ecx]
push eax
lea ecx, [ebp - 0x48f0]
mov dword [ebp - 0x48cc], esi
call fcn.00408600
add esp, 4
test eax, eax
jne 0x40844f
cmp dword [ebp - 0x48cc], esi
je 0x408456
mov edi, 0xb
jmp 0x40845c
mov edi, dword [ebp - 0x48e0]
mov ecx, dword [ebp - 0x48d8]
mov esi, dword [ebp - 0x48f0]
cmp byte [ecx + 0x1c], 0
je 0x408491
mov eax, dword [ecx]
mov dword [ebp - 0x644], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x640], eax
lea eax, [ebp - 0x644]
push eax
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
cmp esi, 0xffffffff
je 0x4084ab
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x4084ab
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
jmp 0x4084b3
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
test edi, edi
jne 0x4084f6
test eax, eax
jne 0x4084e0
mov eax, dword [ebp - 0x48d8]
cmp byte [eax + 0x1d], 0
je 0x40838f
push dword [eax + 0x14]
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x40838f
mov edi, eax
jmp 0x4084f6
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, 0xb
push dword [ebp - 0x48dc]
lea eax, [ebp - 0x8a0]
push eax
call dword [ebp - 0x89c]
add esp, 8
lea edx, [ebp - 0x8a0]
lea ecx, [ebp - 0x4940]
call fcn.00408a00
mov eax, dword [ebp - 0x634]
cmp eax, 0xffffffff
je 0x408535
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x408535
call esi
mov ecx, dword [ebp - 4]
xor eax, eax
test edi, edi
pop edi
setne al
pop esi
xor ecx, ebp
pop ebx
call fcn.0040e58c
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4084f6