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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6e60e8
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x7cf070]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x20], 0
mov dword [0x7e87b4], 1
call fcn.004b08d6
mov ecx, eax
test ecx, ecx
jne 0x41f520
push 0x80004005
call fcn.00402890
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0
mov dword [0x7e80d4], 0
mov ebx, dword [edi + 0x44]
test ebx, ebx
je 0x41f914
add ebx, 0xffffffff
js 0x41f6d9
mov eax, dword [ebp + 0x10]
lea edx, [ebx + ebx*2]
shl edx, 5
mov dword [ebp - 0x14], edx
nop dword [eax]
cmp ebx, eax
je 0x41f6ca
test ebx, ebx
js 0x41f795
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov eax, dword [edi + 0x40]
cmp dword [eax + edx + 0xc], 7
je 0x41f6c7
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov esi, eax
mov ecx, str.DDGNNNNNZfuuww_3_CR_bdr__66AMOS__lr__5
add esi, dword [ebp - 0x14]
call fcn.0045f920
push eax
lea eax, [esi + 0x3c]
push eax
call fcn.00421260
add esp, 8
test al, al
je 0x41f6c4
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov esi, dword [edi + 0x40]
mov ecx, str.CPSYYYYY__afiiq____ETTcqr_3AGLT_adhlr_
add esi, dword [ebp - 0x14]
call fcn.0045f920
push eax
lea eax, [esi + 0x40]
push eax
call fcn.004046c0
add esp, 8
test al, al
je 0x41f6c4
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov esi, dword [edi + 0x40]
mov ecx, str.ORT_____fsxz__1:_CNQQQW_abmsu_09BOXX_
add esi, dword [ebp - 0x14]
call fcn.0045f920
push eax
lea eax, [esi + 0x44]
push eax
call fcn.004046c0
add esp, 8
test al, al
je 0x41f6c4
push ebx
lea ecx, [edi + 0x3c]
call fcn.00404b40
movsd xmm0, qword [eax + 0x50]
comisd xmm0, xmmword [ebp + 0x18]
jb 0x41f6c4
push ebx
lea ecx, [edi + 0x3c]
call fcn.00404b40
push dword [ebp + 0x10]
lea ecx, [edi + 0x3c]
mov esi, eax
call fcn.00404b40
mov edx, dword [esi]
cmp edx, dword [eax]
jne 0x41f6c4
mov ecx, str.HTUWWWWW_alt._5_CGLYgssw_2__DGLZe
call fcn.0045f920
push eax
push ebx
lea ecx, [edi + 0x3c]
call fcn.00404b40
add eax, 0x3c
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00404720
push dword [ebp + 0xc]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.004047f0
add esp, 0x18
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 6
call fcn.00405050
lea ecx, [ebp - 0x18]
call fcn.004025b0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0
call fcn.004025b0
mov esi, dword [ebp - 0x10]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41f76a
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41f76a
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp + 0x10]
sub edx, 0x60
sub ebx, 1
mov dword [ebp - 0x14], edx
jns 0x41f560
mov dword [0x7e87b4], 2
mov ebx, dword [edi + 0x44]
sub ebx, 1
js 0x41f914
mov eax, dword [ebp + 0x10]
lea ecx, [ebx + ebx*2]
shl ecx, 5
mov dword [ebp - 0x14], ecx
nop dword [eax + eax]
cmp ebx, eax
je 0x41f905
test ebx, ebx
js 0x41f795
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov eax, dword [edi + 0x40]
cmp dword [eax + ecx + 0xc], 7
je 0x41f902
cmp ebx, dword [edi + 0x44]
jge 0x41f795
lea esi, [ecx + eax]
mov ecx, str.LU______birw__4_EGMM_fm06BJQ_iwz_5_
call fcn.0045f920
test eax, eax
je 0x41f516
mov ecx, dword [esi + 0x3c]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x41f79a
test dx, dx
je 0x41f766
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x41f79a
add ecx, 4
add eax, 4
test dx, dx
jne 0x41f744
xor eax, eax
jmp 0x41f79f
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x10]
push eax
call fcn.00405130
lea ecx, [ebp - 0x10]
call fcn.004025b0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
call fcn.004b03fc
sbb eax, eax
or eax, 1
test eax, eax
setne al
test al, al
je 0x41f8ff
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov esi, dword [edi + 0x40]
mov ecx, str.P__aamu__9EOQTWft_3_LMWWWcnz___56
add esi, dword [ebp - 0x14]
call fcn.0045f920
test eax, eax
je 0x41f516
mov ecx, dword [esi + 0x40]
nop dword [eax]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x41f7f6
test dx, dx
je 0x41f7f2
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x41f7f6
add ecx, 4
add eax, 4
test dx, dx
jne 0x41f7d0
xor eax, eax
jmp 0x41f7fb
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x41f8ff
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov esi, dword [edi + 0x40]
mov ecx, str.MNNiv__5BKKYabcgovv__7_FOP_aegq.
add esi, dword [ebp - 0x14]
call fcn.0045f920
push eax
lea eax, [esi + 0x44]
push eax
call fcn.004046c0
add esp, 8
test al, al
je 0x41f8ff
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov eax, dword [edi + 0x40]
mov ecx, dword [ebp - 0x14]
movsd xmm0, qword [eax + ecx + 0x50]
comisd xmm0, xmmword [ebp + 0x18]
jb 0x41f902
cmp ebx, dword [edi + 0x44]
jge 0x41f795
lea esi, [ecx + eax]
mov ecx, str.HIOSSSSSTafr_._HMV__jmz_8_CCHVhp__.
call fcn.0045f920
push eax
lea eax, [esi + 0x3c]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00404720
push dword [ebp + 0xc]
mov byte [ebp - 4], 7
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004047f0
add esp, 0x18
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 8
call fcn.00405050
mov byte [ebp - 4], 7
or esi, 0xffffffff
mov edx, dword [ebp - 0x1c]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41f8b8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41f8d6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x10]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41f9ae
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41f76a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 0x10]
sub ecx, 0x60
sub ebx, 1
mov dword [ebp - 0x14], ecx
jns 0x41f700
mov dword [0x7e80d4], 1
mov ebx, dword [edi + 0x44]
test ebx, ebx
je 0x41fe3d
add ebx, 0xffffffff
js 0x41fbbf
mov eax, dword [ebp + 0x10]
lea edx, [ebx + ebx*2]
shl edx, 5
mov dword [ebp + 0x1c], edx
nop
cmp ebx, eax
je 0x41fbb0
test ebx, ebx
js 0x41f795
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov eax, dword [edi + 0x40]
cmp dword [eax + edx + 0xc], 7
je 0x41fbad
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov ecx, str.IINRRRRRY_joz__39FRTTY_jjw_____08:IUhv
lea esi, [edx + eax]
call fcn.0045f920
test eax, eax
je 0x41f516
mov ecx, dword [esi + 0x3c]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x41f9d9
test dx, dx
je 0x41f9aa
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x41f9d9
add ecx, 4
add eax, 4
test dx, dx
jne 0x41f988
xor eax, eax
jmp 0x41f9de
add esi, 0xfffffff0
push esi
call fcn.004050c0
mov edi, dword [ebp + 8]
add eax, 0x10
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov dword [edi], eax
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jmp 0x41ff30
sbb eax, eax
or eax, 1
test eax, eax
setne al
test al, al
je 0x41fbaa
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov esi, dword [edi + 0x40]
mov ecx, str.JPUhp__15ACIKNV_beq__38__FRTbdg
add esi, dword [ebp + 0x1c]
call fcn.0045f920
test eax, eax
je 0x41f516
mov ecx, dword [esi + 0x40]
nop
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x41fa36
test dx, dx
je 0x41fa32
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x41fa36
add ecx, 4
add eax, 4
test dx, dx
jne 0x41fa10
xor eax, eax
jmp 0x41fa3b
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x41fbaa
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov esi, dword [edi + 0x40]
mov ecx, str.OQUZZZZZ_ceot_059_IVdq__._IOVcimnx_7A
add esi, dword [ebp + 0x1c]
call fcn.0045f920
test eax, eax
je 0x41f516
mov ecx, dword [esi + 0x44]
nop dword [eax]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x41fa96
test dx, dx
je 0x41fa92
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x41fa96
add ecx, 4
add eax, 4
test dx, dx
jne 0x41fa70
xor eax, eax
jmp 0x41fa9b
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x41fbaa
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov eax, dword [edi + 0x40]
mov edx, dword [ebp + 0x1c]
movsd xmm0, qword [eax + edx + 0x50]
comisd xmm0, xmmword [0x7a6940]
jb 0x41fbad
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov ecx, dword [ebp + 0x10]
test ecx, ecx
js 0x41f795
cmp ecx, dword [edi + 0x44]
jge 0x41f795
lea ecx, [ecx + ecx*2]
shl ecx, 5
add ecx, eax
mov eax, dword [eax + edx]
cmp eax, dword [ecx]
jne 0x41fbad
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov esi, dword [edi + 0x40]
mov ecx, str.BBHOOOOOPVY_adr___9_IN_eqt_..2AOOYfk
add esi, edx
call fcn.0045f920
push eax
lea eax, [esi + 0x3c]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00404720
push dword [ebp + 0xc]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004047f0
add esp, 0x18
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0xe
call fcn.00405050
mov byte [ebp - 4], 0xd
or esi, 0xffffffff
mov edx, dword [ebp - 0x1c]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41fb63
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41fb81
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x10]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41f9ae
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41fc56
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x10]
sub edx, 0x60
sub ebx, 1
mov dword [ebp + 0x1c], edx
jns 0x41f940
mov dword [0x7e87b4], 2
mov ebx, dword [edi + 0x44]
sub ebx, 1
js 0x41fe3d
mov eax, dword [ebp + 0x10]
lea ecx, [ebx + ebx*2]
shl ecx, 5
mov dword [ebp + 0x1c], ecx
cmp ebx, eax
je 0x41fe2e
test ebx, ebx
js 0x41f795
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov eax, dword [edi + 0x40]
cmp dword [eax + ecx + 0xc], 7
je 0x41fe2b
cmp ebx, dword [edi + 0x44]
jge 0x41f795
lea esi, [ecx + eax]
mov ecx, str.GJQ_____gr2_AFR_my_9BCDLT_amz6AOR_
call fcn.0045f920
test eax, eax
je 0x41f516
mov ecx, dword [esi + 0x3c]
nop dword [eax]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x41fc88
test dx, dx
je 0x41fc52
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x41fc88
add ecx, 4
add eax, 4
test dx, dx
jne 0x41fc30
xor eax, eax
jmp 0x41fc8d
add esi, 0xfffffff0
push esi
call fcn.004050c0
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x10]
add esp, 4
add eax, 0x10
mov dword [esi], eax
call fcn.004025b0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
sbb eax, eax
or eax, 1
test eax, eax
setne al
test al, al
je 0x41fe28
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov esi, dword [edi + 0x40]
mov ecx, str.LTUUUUUUZgpqz_379GJY_apr_.15_CKTchs_
add esi, dword [ebp + 0x1c]
call fcn.0045f920
test eax, eax
je 0x41f516
mov ecx, dword [esi + 0x40]
nop
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x41fce6
test dx, dx
je 0x41fce2
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x41fce6
add ecx, 4
add eax, 4
test dx, dx
jne 0x41fcc0
xor eax, eax
jmp 0x41fceb
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x41fe28
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov esi, dword [edi + 0x40]
mov ecx, str.LZ______cjt__9DHPV_bhr_..__FNPPghw
add esi, dword [ebp + 0x1c]
call fcn.0045f920
test eax, eax
je 0x41f516
mov ecx, dword [esi + 0x44]
nop dword [eax]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x41fd46
test dx, dx
je 0x41fd42
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x41fd46
add ecx, 4
add eax, 4
test dx, dx
jne 0x41fd20
xor eax, eax
jmp 0x41fd4b
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x41fe28
cmp ebx, dword [edi + 0x44]
jge 0x41f795
mov eax, dword [edi + 0x40]
mov ecx, dword [ebp + 0x1c]
movsd xmm0, qword [eax + ecx + 0x50]
comisd xmm0, xmmword [0x7a6940]
jb 0x41fe2b
cmp ebx, dword [edi + 0x44]
jge 0x41f795
lea esi, [ecx + eax]
mov ecx, str.GGLUUUUUXbgl_7_DMRYapz__8_ES_it_155CM
call fcn.0045f920
push eax
lea eax, [esi + 0x3c]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00404720
push dword [ebp + 0xc]
mov byte [ebp - 4], 0xf
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004047f0
add esp, 0x18
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x10
call fcn.00405050
mov byte [ebp - 4], 0xf
or esi, 0xffffffff
mov edx, dword [ebp - 0x1c]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41fde1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41fdff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x10]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41f9ae
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41f9ae
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x10]
sub ecx, 0x60
sub ebx, 1
mov dword [ebp + 0x1c], ecx
jns 0x41fbe1
mov ecx, str.FUWXXXXXffjsz_04558:_AFPYgu_1_NUZior__
mov dword [0x7e80d4], 0
mov dword [0x7e87b4], 3
call fcn.0045f920
push eax
lea eax, [ebp + 0x1c]
push 0x7e80b8
push eax
call fcn.00404720
push dword [ebp + 0xc]
mov byte [ebp - 4], 0x11
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.004047f0
add esp, 0x18
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x12
call fcn.00405050
mov byte [ebp - 4], 0x11
or ebx, 0xffffffff
mov edx, dword [ebp + 0x10]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41feac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp + 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41feca
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x10]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push esi
call edi
test eax, eax
jne 0x41fee2
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push esi
call edi
test eax, eax
je 0x41feff
add esi, 0xfffffff0
push esi
call fcn.004050c0
mov edi, dword [ebp + 8]
add esp, 4
add eax, 0x10
mov dword [edi], eax
jmp 0x41ff21
mov ecx, str.BKKLLLLLTbpx2_DS_aijx48_FPUdlox__:IIM_
mov dword [0x7e87b4], 0
call fcn.0045f920
mov edi, dword [ebp + 8]
mov ecx, edi
push eax
call fcn.00404e10
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x41ff3a
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18