Function at 0x4f12e0
Capabilities:
Check if file exists
Create directory

Disassembly:
sub esp, 0x420
push ebx
push ebp
mov ebp, dword [esp + 0x42c]
push esi
mov esi, ecx
push edi
test ebp, ebp
mov dword [esp + 0x10], esi
je 0x4f1624
call fcn.004f1050
push ebp
mov ecx, esi
call fcn.004f1790
test eax, eax
je 0x4f1624
mov ecx, esi
call fcn.004f0fb0
mov ebx, eax
test ebx, ebx
je 0x4f1624
push ebx
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
test eax, eax
jbe 0x4f1624
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4f1352
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x4f1624
mov ecx, 0x83
xor eax, eax
lea edi, [esp + 0x1c]
rep stosd dword es:[edi], eax
call fcn.004f1000
push eax
push ebx
mov ebx, dword [sym.imp.MSVCRT.dll__snwprintf]
push str._s_d.dat
lea eax, [esp + 0x28]
push 0x103
push eax
call ebx
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x23e]
mov word [esp + 0x23c], 0
add esp, 0x14
rep stosd dword es:[edi], eax
push ebp
push 0x50f4e4
lea ecx, [esp + 0x230]
push 0x103
push ecx
stosw word es:[edi], ax
call ebx
lea edx, [esp + 0x2c]
push 1
lea eax, [esp + 0x23c]
push edx
push eax
call fcn.0042c990
add esp, 0x1c
test eax, eax
je 0x4f1624
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
call fcn.004f16b0
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
lea ebx, [esi + 4]
mov dword [esp + 0x224], eax
sub edx, ecx
mov eax, 0x3e88cb3d
imul edx
sar edx, 7
mov eax, edx
mov ebp, ecx
shr eax, 0x1f
add edx, eax
cmp edx, 1
jae 0x4f153b
mov esi, dword [ebx + 4]
test esi, esi
je 0x4f142d
mov edx, ecx
mov eax, 0x3e88cb3d
sub edx, esi
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 1
mov edi, edx
ja 0x4f1432
mov edi, 1
test esi, esi
jne 0x4f143a
xor edx, edx
jmp 0x4f144d
sub ecx, esi
mov eax, 0x3e88cb3d
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea eax, [edx + edi]
test eax, eax
mov dword [esp + 0x18], eax
jge 0x4f145a
xor eax, eax
mov edx, eax
shl edx, 6
add edx, eax
lea eax, [eax + edx*2]
shl eax, 2
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, dword [ebx + 4]
add esp, 4
cmp esi, ebp
mov dword [esp + 0x14], eax
mov edi, eax
je 0x4f1497
push esi
push edi
call fcn.004f1920
add esi, 0x20c
add esp, 8
add edi, 0x20c
cmp esi, ebp
jne 0x4f147d
lea ecx, [esp + 0x1c]
push ecx
push 1
push edi
mov ecx, ebx
call fcn.004f18e0
mov edx, dword [ebx + 8]
add edi, 0x20c
push edi
push edx
push ebp
mov ecx, ebx
call fcn.004e1aa0
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
push eax
push ecx
mov ecx, ebx
call fcn.00480b50
mov edx, dword [ebx + 4]
push edx
call fcn.004ba355
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov ecx, eax
add esp, 4
shl ecx, 6
add ecx, eax
lea edx, [eax + ecx*2]
lea eax, [esi + edx*4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 4]
test eax, eax
jne 0x4f14f7
xor edx, edx
jmp 0x4f150d
mov ecx, dword [ebx + 8]
sub ecx, eax
mov eax, 0x3e88cb3d
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea eax, [edx + 1]
mov dword [ebx + 4], esi
mov edx, eax
shl edx, 6
add edx, eax
lea eax, [eax + edx*2]
lea ecx, [esi + eax*4]
mov esi, dword [esp + 0x10]
mov dword [ebx + 8], ecx
mov ecx, esi
call fcn.004f1800
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x420
ret 4
mov edx, ecx
mov eax, 0x3e88cb3d
sub edx, ebp
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 1
jae 0x4f15b2
lea edx, [ebp + 0x20c]
push edx
push ecx
push ebp
mov ecx, ebx
call fcn.004e1aa0
mov edi, dword [ebx + 8]
lea eax, [esp + 0x1c]
mov ecx, edi
push eax
sub ecx, ebp
mov eax, 0x3e88cb3d
imul ecx
sar edx, 7
mov ecx, edx
mov eax, 1
shr ecx, 0x1f
add edx, ecx
mov ecx, ebx
sub eax, edx
push eax
push edi
call fcn.004f18e0
mov eax, dword [ebx + 8]
cmp ebp, eax
je 0x4f1612
mov edi, ebp
add ebp, 0x20c
mov ecx, 0x83
lea esi, [esp + 0x1c]
cmp ebp, eax
rep movsd dword es:[edi], dword [esi]
jne 0x4f1599
jmp 0x4f160e
push ecx
push ecx
add ecx, 0xfffffdf4
push ecx
mov ecx, ebx
call fcn.004e1aa0
mov edx, dword [ebx + 8]
lea eax, [edx - 0x20c]
cmp ebp, eax
je 0x4f15ed
sub eax, 0x20c
sub edx, 0x20c
mov ecx, 0x83
mov esi, eax
mov edi, edx
cmp eax, ebp
rep movsd dword es:[edi], dword [esi]
jne 0x4f15cf
mov esi, dword [esp + 0x10]
lea eax, [ebp + 0x20c]
cmp ebp, eax
je 0x4f1612
mov edi, ebp
add ebp, 0x20c
mov ecx, 0x83
lea esi, [esp + 0x1c]
cmp ebp, eax
rep movsd dword es:[edi], dword [esi]
jne 0x4f15f7
mov esi, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, esi
add eax, 0x20c
mov dword [ebx + 8], eax
call fcn.004f1800
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x420
ret 4