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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46b8c0
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x4914f4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x48f7c4], 2
je 0x417fd5
mov eax, dword [0x493884]
push 0x2265
push 0
push 0x473bb0
push eax
jmp 0x417fe8
mov ecx, dword [0x493884]
push 0x2266
push 0
push 0x473bb0
push ecx
call fcn.0045b860
mov eax, dword [0x493884]
add eax, 0xfffffff0
add esp, 0x10
push eax
call fcn.00402ba0
add eax, 0x10
add esp, 4
mov dword [ebp - 0x1c], eax
push 0x471d88
xor ebx, ebx
push 0x474a44
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], ebx
call fcn.0040ba10
push 0x471d88
push str..rar
lea ecx, [ebp - 0x1c]
call fcn.0040ba10
mov edi, dword [ebp - 0x1c]
push edi
call fcn.004140c0
add esp, 4
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov esi, dword [0x493884]
lea edx, [ebp - 0x3c]
push edx
push esi
call fcn.0045bdd0
add esp, 8
cmp dword [ebp - 0x3c], ebx
ja 0x418387
cmp eax, 0x3200000
ja 0x418387
push 0x474a44
push esi
mov dword [ebp - 0x38], ebx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x418093
push edi
push esi
call fcn.00416980
add esp, 8
mov dword [ebp - 0x38], eax
cmp eax, ebx
jne 0x418173
call fcn.0042fa4e
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4180ad
push 0x80004005
call fcn.00401350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x10]
push ecx
mov byte [ebp - 4], 1
call fcn.004152c0
mov ebx, dword [ebp - 0x10]
add esp, 4
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4181ad
push edi
lea ecx, [ebp - 0x24]
call fcn.00408390
push esi
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 2
call fcn.00408390
push 0
push 1
push ebx
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 3
call fcn.00416020
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
add esp, 0x14
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418130
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418153
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418173
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418196
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.0042fa4e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4181c7
push 0x80004005
call fcn.00401350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x18]
push ecx
mov byte [ebp - 4], 4
call fcn.00414ee0
mov ebx, dword [ebp - 0x18]
add esp, 4
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x418298
push edi
lea ecx, [ebp - 0x2c]
call fcn.00408390
push esi
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.00408390
push 0
push 2
push ebx
lea edx, [ebp - 0x2c]
push edx
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 6
call fcn.00416020
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
add esp, 0x14
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41824a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41826d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41828d
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
jmp 0x418156
lea ecx, [ebp - 0x14]
call fcn.00403080
lea ecx, [ebp - 0x14]
push ecx
mov byte [ebp - 4], 7
call fcn.004150d0
mov ebx, dword [ebp - 0x14]
add esp, 4
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41831a
push edi
lea ecx, [ebp - 0x34]
call fcn.00408390
push esi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 8
call fcn.00408390
push 0
push 3
push ebx
lea edx, [ebp - 0x34]
push edx
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 9
call fcn.00416020
add esp, 0x14
lea ecx, [ebp - 0x30]
call fcn.00402b30
lea ecx, [ebp - 0x34]
call fcn.00402b30
lea ecx, [ebp - 0x14]
call fcn.00402b30
lea ecx, [ebp - 0x18]
call fcn.00402b30
lea ecx, [ebp - 0x10]
call fcn.00402b30
jmp 0x418173
lea ecx, [ebp - 0x14]
call fcn.00402b30
lea ecx, [ebp - 0x18]
call fcn.00402b30
lea ecx, [ebp - 0x10]
call fcn.00402b30
cmp dword [ebp - 0x38], 0
jne 0x418173
push 0
push 0x474780
push 0x474e20
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea eax, [edi - 0x10]
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x418373
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
push 0x474a7c
push 0x474a50
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x41833c