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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x473780
push eax
mov dword fs:[0], esp
sub esp, 0x20
mov ecx, 0x4a475c
push ebx
push esi
push edi
push 9
push 0x47e42c
call fcn.00408f60
push 0
push dword [0x4a475c]
call fcn.004651e0
mov edx, eax
add esp, 8
test edx, edx
jne 0x4047b9
xor ecx, ecx
jmp 0x4047cf
mov ecx, edx
lea esi, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4047c0
sub ecx, esi
sar ecx, 1
push ecx
push edx
mov ecx, 0x4a4760
call fcn.00408f60
push dword [0x4a4760]
call fcn.00404280
add esp, 4
push 0
push dword [0x4a4760]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x47e440
lea eax, [ebp - 0x20]
push 0x4a4760
push eax
call fcn.00402190
push 0
push dword [ebp - 0x20]
mov dword [ebp - 4], 0
push dword [0x4a4768]
call fcn.00468140
mov esi, dword [ebp + 8]
add esp, 0x18
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
or ebx, 0xffffffff
test eax, eax
je 0x404b0c
push 1
push esi
mov ecx, 0x4a40d0
call fcn.0040e990
call fcn.00429930
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x404862
push 0x80004005
call fcn.00402670
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x14], edi
mov byte [ebp - 4], 1
call fcn.00429930
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40488f
push 0x80004005
call fcn.00402670
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 2
call fcn.00429930
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4048bc
push 0x80004005
call fcn.00402670
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x1c], ebx
xor ecx, ecx
mov byte [ebp - 4], 3
mov dword [ebp - 0x10], ecx
cmp dword [0x4a4798], ecx
jle 0x404aa8
mov edi, edi
mov eax, dword [0x4a47b8]
mov edx, dword [0x4a47b4]
sub eax, edx
sar eax, 2
cmp ecx, eax
jb 0x404902
call fcn.0044e19c
mov edx, dword [0x4a47b4]
mov ecx, dword [ebp - 0x10]
lea eax, [ecx*4]
mov ecx, 0x4a478c
push dword [eax + edx]
mov dword [ebp - 0x2c], eax
call fcn.004020b0
mov edx, dword [eax]
lea ecx, [edi - 0x10]
lea eax, [edx - 0x10]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], ecx
cmp eax, ecx
je 0x404979
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
jl 0x40496a
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x40496a
push dword [ebp - 0x24]
call fcn.00402a30
add esp, 4
mov dword [ebp - 0x24], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x404962
mov edi, dword [ebp - 0x28]
push edi
mov ecx, dword [edi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x24]
lea edi, [eax + 0x10]
mov dword [ebp - 0x14], edi
jmp 0x404979
push dword [edx - 0xc]
lea ecx, [ebp - 0x14]
push edx
call fcn.00408f60
mov edi, dword [ebp - 0x14]
mov eax, dword [0x4a47b8]
mov ecx, dword [0x4a47b4]
sub eax, ecx
sar eax, 2
cmp dword [ebp - 0x10], eax
jb 0x404999
call fcn.0044e19c
mov ecx, dword [0x4a47b4]
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx + ecx]
lea ecx, [esi - 0x10]
lea eax, [edx - 0x10]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ecx
cmp eax, ecx
je 0x4049fd
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x4049ee
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4049ee
push dword [ebp - 0x2c]
call fcn.00402a30
add esp, 4
mov dword [ebp - 0x2c], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4049e6
mov esi, dword [ebp - 0x28]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
jmp 0x4049fd
push dword [edx - 0xc]
lea ecx, [ebp - 0x18]
push edx
call fcn.00408f60
mov esi, dword [ebp - 0x18]
cmp dword [esi - 0xc], 0
jl 0x404a6e
push 0x47c2a4
push esi
call fcn.0044cda3
add esp, 8
test eax, eax
je 0x404a1e
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x404a95
cmp dword [esi - 0xc], 0
jl 0x404a6e
push 0x47bb74
push esi
call fcn.0044cda3
add esp, 8
test eax, eax
je 0x404a3f
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x404a95
cmp dword [esi - 0xc], 0
jl 0x404a6e
push 0x47bf64
push esi
call fcn.0044cda3
add esp, 8
test eax, eax
je 0x404a6e
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
je 0x404a6e
push esi
push dword [0x4a4760]
push str._s_s.swf
jmp 0x404a7a
push esi
push dword [0x4a4760]
push str._s_s.png
lea eax, [ebp - 0x1c]
push eax
call fcn.00405230
mov ebx, dword [ebp - 0x1c]
add esp, 0x10
mov ecx, 0x4a40d0
push ebx
push edi
call fcn.0040e200
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0x10], ecx
cmp ecx, dword [0x4a4798]
jl 0x4048e0
mov ecx, 0x4a40d0
call fcn.0040d900
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404ad2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 1
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404aef
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404b0c
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp + 0xc]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push esi
call edi
test eax, eax
je 0x404d7b
push 1
push esi
mov ecx, 0x4a4178
call fcn.0040e990
call fcn.00429930
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x404b49
push 0x80004005
call fcn.00402670
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x1c], edi
mov byte [ebp - 4], 4
call fcn.00429930
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x404b76
push 0x80004005
call fcn.00402670
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 5
call fcn.00429930
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x404ba3
push 0x80004005
call fcn.00402670
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x14], ebx
xor ecx, ecx
mov byte [ebp - 4], 6
mov dword [ebp - 0x10], ecx
cmp dword [0x4a4798], ecx
jle 0x404d11
jmp 0x404bd0
mov eax, dword [0x4a47b8]
mov edx, dword [0x4a47b4]
sub eax, edx
sar eax, 2
cmp ecx, eax
jb 0x404bf2
call fcn.0044e19c
mov edx, dword [0x4a47b4]
mov ecx, dword [ebp - 0x10]
lea eax, [ecx*4]
mov ecx, 0x4a478c
push dword [eax + edx]
mov dword [ebp - 0x28], eax
call fcn.004020b0
mov ecx, dword [eax]
lea ebx, [edi - 0x10]
lea edx, [ecx - 0x10]
cmp edx, ebx
je 0x404c5e
cmp dword [ebx + 0xc], 0
lea edi, [ebx + 0xc]
jl 0x404c4f
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x404c4f
push edx
call fcn.00402a30
add esp, 4
mov dword [ebp - 0x2c], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x404c47
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea edi, [eax + 0x10]
mov dword [ebp - 0x1c], edi
jmp 0x404c5e
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00408f60
mov edi, dword [ebp - 0x1c]
mov eax, dword [0x4a47b8]
mov ecx, dword [0x4a47b4]
sub eax, ecx
sar eax, 2
cmp dword [ebp - 0x10], eax
jb 0x404c7e
call fcn.0044e19c
mov ecx, dword [0x4a47b4]
mov eax, dword [ebp - 0x28]
lea ebx, [esi - 0x10]
mov ecx, dword [eax + ecx]
lea edx, [ecx - 0x10]
cmp edx, ebx
je 0x404cd7
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x404cc8
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x404cc8
push edx
call fcn.00402a30
add esp, 4
mov dword [ebp - 0x2c], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x404cc0
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
jmp 0x404cd7
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x18]
call fcn.00408f60
mov esi, dword [ebp - 0x18]
push esi
push dword [0x4a4760]
lea eax, [ebp - 0x14]
push str._s_s.png
push eax
call fcn.00405230
mov ebx, dword [ebp - 0x14]
add esp, 0x10
mov ecx, 0x4a4178
push ebx
push edi
call fcn.0040e200
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0x10], ecx
cmp ecx, dword [0x4a4798]
jl 0x404bd0
mov ecx, 0x4a4178
call fcn.0040d900
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404d3b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 4
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404d58
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404d75
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x404fe5
push esi
call edi
test eax, eax
je 0x404fe5
push 1
push esi
mov ecx, 0x4a4220
call fcn.0040e990
call fcn.00429930
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x404dba
push 0x80004005
call fcn.00402670
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x1c], edi
mov byte [ebp - 4], 7
call fcn.00429930
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x404de7
push 0x80004005
call fcn.00402670
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 8
call fcn.00429930
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x404e14
push 0x80004005
call fcn.00402670
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x14], ebx
xor ecx, ecx
mov byte [ebp - 4], 9
mov dword [ebp - 0x10], ecx
cmp dword [0x4a4798], ecx
jle 0x404f81
jmp 0x404e40
mov eax, dword [0x4a47b8]
mov edx, dword [0x4a47b4]
sub eax, edx
sar eax, 2
cmp ecx, eax
jb 0x404e62
call fcn.0044e19c
mov edx, dword [0x4a47b4]
mov ecx, dword [ebp - 0x10]
lea eax, [ecx*4]
mov ecx, 0x4a478c
push dword [eax + edx]
mov dword [ebp - 0x28], eax
call fcn.004020b0
mov ecx, dword [eax]
lea ebx, [edi - 0x10]
lea edx, [ecx - 0x10]
cmp edx, ebx
je 0x404ece
cmp dword [ebx + 0xc], 0
lea edi, [ebx + 0xc]
jl 0x404ebf
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x404ebf
push edx
call fcn.00402a30
add esp, 4
mov dword [ebp - 0x2c], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x404eb7
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea edi, [eax + 0x10]
mov dword [ebp - 0x1c], edi
jmp 0x404ece
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00408f60
mov edi, dword [ebp - 0x1c]
mov eax, dword [0x4a47b8]
mov ecx, dword [0x4a47b4]
sub eax, ecx
sar eax, 2
cmp dword [ebp - 0x10], eax
jb 0x404eee
call fcn.0044e19c
mov ecx, dword [0x4a47b4]
mov eax, dword [ebp - 0x28]
lea ebx, [esi - 0x10]
mov ecx, dword [eax + ecx]
lea edx, [ecx - 0x10]
cmp edx, ebx
je 0x404f47
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x404f38
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x404f38
push edx
call fcn.00402a30
add esp, 4
mov dword [ebp - 0x2c], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x404f30
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
jmp 0x404f47
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x18]
call fcn.00408f60
mov esi, dword [ebp - 0x18]
push esi
push dword [0x4a4760]
lea eax, [ebp - 0x14]
push str._s_s.png
push eax
call fcn.00405230
mov ebx, dword [ebp - 0x14]
add esp, 0x10
mov ecx, 0x4a4220
push ebx
push edi
call fcn.0040e200
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0x10], ecx
cmp ecx, dword [0x4a4798]
jl 0x404e40
mov ecx, 0x4a4220
call fcn.0040d900
lea edx, [ebx - 0x10]
or ebx, 0xffffffff
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404fab
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404fc8
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404fe5
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
pop edi
pop esi
test ebx, ebx
pop ebx
jg 0x405009
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret