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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2cc
mov eax, dword [0x54c384]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
push esi
push edi
cmp dword [ebx + 0x6e8], 0
jne 0x4466c6
lea ecx, [ebp - 0x280]
call fcn.0040eb10
mov esi, eax
mov edx, dword [esi + 0x14]
mov eax, edx
mov ecx, dword [esi + 0x10]
sub eax, ecx
cmp eax, 1
jb 0x445ae7
lea eax, [ecx + 1]
mov edi, esi
mov dword [ebp - 0x264], eax
mov dword [esi + 0x10], eax
cmp edx, 8
jb 0x445ac6
mov edi, dword [esi]
push 2
lea eax, [edi + ecx*2]
push 0x5010bc
push eax
call fcn.004c0040
mov eax, dword [ebp - 0x264]
add esp, 0xc
xor ecx, ecx
mov word [edi + eax*2], cx
jmp 0x445b06
push 1
push 0x5010bc
mov byte [ebp - 0x264], 0
mov ecx, esi
push dword [ebp - 0x264]
push 1
call fcn.00404fc0
mov esi, eax
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x230], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x220], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov edx, dword [ebp - 0x21c]
mov eax, edx
mov ecx, dword [ebp - 0x220]
sub eax, ecx
cmp eax, 9
jb 0x445b7f
cmp edx, 8
lea esi, [ebp - 0x230]
push 0x12
cmovae esi, dword [ebp - 0x230]
lea edi, [ecx + 9]
push 0x50ba50
mov dword [ebp - 0x220], edi
lea eax, [esi + ecx*2]
push eax
call fcn.004c0040
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
lea eax, [ebp - 0x230]
jmp 0x445ba0
push 9
push 0x50ba50
mov byte [ebp - 0x264], 0
lea ecx, [ebp - 0x230]
push dword [ebp - 0x264]
push 9
call fcn.00404fc0
movups xmm0, xmmword [eax]
xor ecx, ecx
movups xmmword [ebp - 0x248], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x238], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov edx, dword [ebp - 0x234]
mov eax, edx
mov ecx, dword [ebp - 0x238]
sub eax, ecx
cmp eax, 1
jb 0x445c19
cmp edx, 8
lea esi, [ebp - 0x248]
push 2
cmovae esi, dword [ebp - 0x248]
lea edi, [ecx + 1]
push 0x5010bc
mov dword [ebp - 0x238], edi
lea eax, [esi + ecx*2]
push eax
call fcn.004c0040
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
lea eax, [ebp - 0x248]
jmp 0x445c3a
push 1
push 0x5010bc
mov byte [ebp - 0x264], 0
lea ecx, [ebp - 0x248]
push dword [ebp - 0x264]
push 1
call fcn.00404fc0
movups xmm0, xmmword [eax]
xor ecx, ecx
movups xmmword [ebp - 0x260], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov edx, dword [ebp - 0x234]
movq qword [ebp - 0x250], xmm0
cmp edx, 8
jb 0x445ca4
mov ecx, dword [ebp - 0x248]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x445c9a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x446776
push edx
push ecx
call fcn.004bdd39
add esp, 8
mov edx, dword [ebp - 0x21c]
xor eax, eax
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 7
mov word [ebp - 0x248], ax
cmp edx, 8
jb 0x445d01
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x445cf7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x446776
push edx
push ecx
call fcn.004bdd39
add esp, 8
mov edx, dword [ebp - 0x26c]
xor eax, eax
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
cmp edx, 8
jb 0x445d5e
mov ecx, dword [ebp - 0x280]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x445d54
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x446776
push edx
push ecx
call fcn.004bdd39
add esp, 8
mov eax, dword [ebx + 0x720]
cmp eax, 2
jne 0x44612b
mov ecx, dword [ebx + 0x7ec]
lea edx, [ebp - 0x98]
push edx
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ecx, eax
call sym.360huabaosetup.exe_public:_wchar_t_const____thiscall_DuiLib::CDuiString::operator_wchar_t_const__void_const
mov edx, eax
mov dword [ebp - 0x238], 0
mov ecx, edx
mov dword [ebp - 0x234], 7
xor eax, eax
mov word [ebp - 0x248], ax
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x445db0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x248]
call fcn.00403e30
lea ecx, [ebp - 0x98]
call sym.360huabaosetup.exe_public:_void___thiscall_DuiLib::CDuiString::destructor_void_
mov eax, dword [ebp - 0x238]
test eax, eax
je 0x4460e8
push eax
dec eax
lea ecx, [ebp - 0x248]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00402c90
cmp dword [ebp - 0x21c], 8
lea esi, [ebp - 0x230]
mov edi, dword [ebp - 0x230]
mov eax, dword [ebp - 0x220]
cmovae esi, edi
cmp eax, 1
jne 0x445e3d
mov ecx, 0x5010bc
mov edx, eax
sub esi, ecx
mov ax, word [ecx + esi]
cmp ax, word [ecx]
jne 0x445e37
add ecx, 2
sub edx, 1
jne 0x445e24
jmp 0x445e71
mov eax, dword [ebp - 0x220]
cmp dword [ebp - 0x21c], 8
lea esi, [ebp - 0x230]
cmovae esi, edi
cmp eax, 1
jne 0x445ed9
mov ecx, 0x5010dc
mov edx, eax
sub esi, ecx
nop
mov ax, word [ecx + esi]
cmp ax, word [ecx]
jne 0x445ed9
add ecx, 2
sub edx, 1
jne 0x445e60
mov eax, dword [ebp - 0x238]
lea ecx, [ebp - 0x248]
dec eax
push eax
push 0
lea eax, [ebp - 0x280]
push eax
call fcn.00402c90
push eax
lea ecx, [ebp - 0x248]
call fcn.00402ed0
mov edx, dword [ebp - 0x26c]
cmp edx, 8
jb 0x445ed9
mov ecx, dword [ebp - 0x280]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x445ecf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44677b
push edx
push ecx
call fcn.004bdd39
add esp, 8
cmp dword [ebp - 0x234], 8
lea ecx, [ebp - 0x248]
mov edx, dword [ebp - 0x238]
cmovae ecx, dword [ebp - 0x248]
push 9
push 0x50ba50
push ecx
call fcn.00404b10
add esp, 0xc
lea edx, [ebp - 0x248]
push 0x5010bc
cmp eax, 0xffffffff
je 0x445f70
lea ecx, [ebp - 0x280]
call fcn.004048c0
add esp, 4
lea ecx, [ebx + 0x6d8]
push eax
call fcn.00402ed0
mov edx, dword [ebp - 0x26c]
cmp edx, 8
jb 0x4460ae
mov ecx, dword [ebp - 0x280]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4460a4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x446780
jmp 0x4460a4
push 0x50ba50
push 0x5010bc
lea ecx, [ebp - 0x2b0]
call fcn.004048c0
add esp, 4
lea ecx, [ebp - 0x280]
mov edx, eax
call fcn.00404850
add esp, 4
lea ecx, [ebp - 0x298]
mov edx, eax
call fcn.00404850
add esp, 4
lea ecx, [ebx + 0x6d8]
push eax
call fcn.00402ed0
mov edx, dword [ebp - 0x284]
cmp edx, 8
jb 0x445ff4
mov ecx, dword [ebp - 0x298]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x445fea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x446785
push edx
push ecx
call fcn.004bdd39
add esp, 8
mov edx, dword [ebp - 0x26c]
xor eax, eax
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 7
mov word [ebp - 0x298], ax
cmp edx, 8
jb 0x446051
mov ecx, dword [ebp - 0x280]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x446047
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x446785
push edx
push ecx
call fcn.004bdd39
add esp, 8
mov edx, dword [ebp - 0x29c]
xor eax, eax
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 7
mov word [ebp - 0x280], ax
cmp edx, 8
jb 0x4460ae
mov ecx, dword [ebp - 0x2b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4460a4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x446785
push edx
push ecx
call fcn.004bdd39
add esp, 8
mov eax, dword [ebp - 0x21c]
cmp eax, 8
jb 0x4460e8
lea ecx, [eax*2 + 2]
mov eax, edi
cmp ecx, 0x1000
jb 0x4460de
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44678a
push ecx
push edi
call fcn.004bdd39
add esp, 8
mov edx, dword [ebp - 0x234]
cmp edx, 8
jb 0x4463e4
mov ecx, dword [ebp - 0x248]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4463da
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44678a
jmp 0x4463da
lea ecx, [ebp - 0x2b0]
cmp eax, 8
jne 0x4463c7
call fcn.00413540
push eax
lea ecx, [ebx + 0x6d8]
call fcn.00402ed0
mov edx, dword [ebp - 0x29c]
cmp edx, 8
jb 0x44618b
mov ecx, dword [ebp - 0x2b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x446181
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44678f
push edx
push ecx
call fcn.004bdd39
add esp, 8
cmp dword [ebx + 0x6e8], 0
jne 0x4463e4
push 0x20a
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004c05c0
lea ecx, [ebx + 0x724]
add esp, 0xc
cmp dword [ecx + 0x14], 8
jb 0x4461bc
mov ecx, dword [ecx]
lea eax, [ebp - 0x218]
mov edx, str.__fromyoo
push 0x104
push eax
call fcn.00410d70
add esp, 8
test eax, eax
je 0x4463e4
lea ecx, [ebp - 0x218]
mov byte [ebx + 0x80d], 1
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4461f0
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebx + 0x6d8]
call fcn.00403e30
push ecx
push 0x50ba50
lea ecx, [ebx + 0x6d8]
lea esi, [ebx + 0x6d8]
call fcn.00402cf0
cmp eax, 0xffffffff
je 0x44628a
mov edx, dword [esi + 0x14]
mov eax, edx
mov ecx, dword [esi + 0x10]
sub eax, ecx
cmp eax, 1
jb 0x446268
lea edi, [ecx + 1]
mov dword [esi + 0x10], edi
cmp edx, 8
jb 0x44624a
mov esi, dword [esi]
push 2
lea eax, [esi + ecx*2]
push 0x5010bc
push eax
call fcn.004c0040
add esp, 0xc
xor eax, eax
mov word [esi + edi*2], ax
jmp 0x4463e4
push 1
push 0x5010bc
mov byte [ebp - 0x264], 0
mov ecx, esi
push dword [ebp - 0x264]
push 1
call fcn.00404fc0
jmp 0x4463e4
push 0x5010bc
push 0x50ba50
push 0x5010bc
mov edx, esi
lea ecx, [ebp - 0x2b0]
call fcn.004048c0
add esp, 4
lea ecx, [ebp - 0x298]
mov edx, eax
call fcn.00404850
add esp, 4
lea ecx, [ebp - 0x280]
mov edx, eax
call fcn.00404850
add esp, 4
lea ecx, [ebx + 0x6d8]
push eax
call fcn.00402ed0
mov edx, dword [ebp - 0x26c]
cmp edx, 8
jb 0x446315
mov ecx, dword [ebp - 0x280]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x44630b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x446794
push edx
push ecx
call fcn.004bdd39
add esp, 8
mov edx, dword [ebp - 0x284]
xor eax, eax
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 7
mov word [ebp - 0x280], ax
cmp edx, 8
jb 0x446372
mov ecx, dword [ebp - 0x298]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x446368
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x446794
push edx
push ecx
call fcn.004bdd39
add esp, 8
xor eax, eax
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 7
mov word [ebp - 0x298], ax
mov edx, dword [ebp - 0x29c]
cmp edx, 8
jb 0x4463e4
mov ecx, dword [ebp - 0x2b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4463da
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x446794
jmp 0x4463da
call fcn.00413540
push eax
lea ecx, [ebx + 0x6d8]
call fcn.00402ed0
jmp 0x44638f
push edx
push ecx
call fcn.004bdd39
add esp, 8
mov eax, dword [ebx + 0x6e8]
test eax, eax
jne 0x446422
lea ecx, [ebx + 0x6d8]
lea eax, [ebp - 0x260]
cmp ecx, eax
je 0x4466bb
cmp dword [ebp - 0x24c], 8
push dword [ebp - 0x250]
cmovae eax, dword [ebp - 0x260]
push eax
call fcn.00403e30
mov eax, dword [ebx + 0x6e8]
cmp eax, 4
jbe 0x4466bb
xor eax, eax
mov dword [ebp - 0x220], 0
lea esi, [ebx + 0x6d8]
mov word [ebp - 0x230], ax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x21c], 7
cmp eax, 1
jb 0x446799
dec eax
mov ecx, 3
cmp eax, ecx
cmovb ecx, eax
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x44646f
mov eax, dword [esi]
push ecx
add eax, 2
lea ecx, [ebp - 0x230]
push eax
call fcn.00403e30
mov eax, dword [ebp - 0x21c]
lea edi, [ebp - 0x230]
mov ecx, dword [ebp - 0x230]
cmp eax, 8
mov edx, dword [ebp - 0x220]
cmovae edi, ecx
cmp edx, 3
jne 0x4464d5
mov ecx, 0x50ba78
sub edi, ecx
nop dword [eax]
mov ax, word [edi + ecx]
cmp ax, word [ecx]
jne 0x4464c3
add ecx, 2
sub edx, 1
jne 0x4464b0
jmp 0x446506
mov eax, dword [ebp - 0x21c]
mov ecx, dword [ebp - 0x230]
mov edx, dword [ebp - 0x220]
cmp eax, 8
lea edi, [ebp - 0x230]
cmovae edi, ecx
cmp edx, 3
jne 0x4466b0
mov ecx, 0x50ba70
sub edi, ecx
mov ax, word [edi + ecx]
cmp ax, word [ecx]
jne 0x4466b0
add ecx, 2
sub edx, 1
jne 0x4464f1
mov edi, dword [ebx + 0x6e8]
xor eax, eax
mov ecx, 1
mov word [ebp - 0x280], ax
cmp dword [esi + 0x10], ecx
mov eax, esi
mov dword [ebp - 0x270], 0
cmovb ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x26c], 7
jb 0x44653f
mov eax, dword [esi]
push ecx
push eax
lea ecx, [ebp - 0x280]
call fcn.00403e30
lea eax, [edi - 4]
mov ecx, esi
push eax
push 4
lea eax, [ebp - 0x2c8]
push eax
call fcn.00402c90
push 0x50bab8
lea edx, [ebp - 0x280]
mov edi, eax
lea ecx, [ebp - 0x2b0]
call fcn.00404850
mov edx, dword [edi + 0x10]
add esp, 4
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x264], ecx
mov ecx, dword [eax + 0x14]
sub ecx, dword [ebp - 0x264]
cmp edx, ecx
jbe 0x4465bb
mov ecx, dword [edi + 0x14]
sub ecx, edx
cmp ecx, dword [ebp - 0x264]
jb 0x4465bb
cmp dword [eax + 0x14], 8
jb 0x4465a9
mov eax, dword [eax]
push dword [ebp - 0x264]
mov ecx, edi
push eax
push 0
call fcn.004057c0
jmp 0x4465cc
cmp dword [edi + 0x14], 8
jb 0x4465c3
mov edi, dword [edi]
push edx
push edi
mov ecx, eax
call fcn.00403f90
movups xmm0, xmmword [eax]
xor ecx, ecx
movups xmmword [ebp - 0x240], xmm0
movups xmmword [ebp - 0x298], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0x298]
movq qword [ebp - 0x288], xmm0
movq qword [ebp - 0x268], xmm0
cmp esi, eax
je 0x44662f
mov ecx, esi
call fcn.00402e70
movups xmm0, xmmword [ebp - 0x240]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x268]
movq qword [esi + 0x10], xmm0
jmp 0x44666f
mov edx, dword [ebp - 0x284]
cmp edx, 8
jb 0x44666f
mov ecx, dword [ebp - 0x298]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x446665
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x446794
push edx
push ecx
call fcn.004bdd39
add esp, 8
lea ecx, [ebp - 0x2b0]
call fcn.00402e70
lea ecx, [ebp - 0x280]
call fcn.00402e70
lea ecx, [ebp - 0x2c8]
call fcn.00402e70
cmp dword [esi + 0x14], 8
jb 0x446698
mov esi, dword [esi]
push esi
push 0xd6
push str.InstallUtil::GetInstallPath
push str.__s__d__repair_m_strUnpackPath:__s
call fcn.0041f720
add esp, 0x10
lea ecx, [ebp - 0x230]
call fcn.00402e70
lea ecx, [ebp - 0x260]
call fcn.00402e70
cmp dword [ebx + 0x6ec], 8
lea esi, [ebx + 0x6d8]
mov eax, esi
jb 0x4466d9
mov eax, dword [esi]
push eax
push 0xda
push str.InstallUtil::GetInstallPath
push str.__s__d___m_strUnpackPath:__s
call fcn.0041f720
add esp, 0x10
mov eax, esi
cmp dword [esi + 0x14], 8
jb 0x4466fb
mov eax, dword [esi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x446745
cmp dword [esi + 0x14], 8
jb 0x44670e
mov esi, dword [esi]
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x446763
push 0xe0
push str.InstallUtil::GetInstallPath
push str.__s__d___CreateDirectory_err_:
call fcn.0041f720
add esp, 0xc
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bdaf8
mov esp, ebp
pop ebp
ret
cmp byte [ebx + 0x80c], 0
je 0x446763
sub esp, 0x18
mov ecx, esp
push esi
call fcn.00402f60
xor cl, cl
call fcn.004110c0
add esp, 0x18
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004bdaf8
mov esp, ebp
pop ebp
ret
call fcn.004c8da3
call fcn.004c8da3
call fcn.004c8da3
call fcn.004c8da3
call fcn.004c8da3
call fcn.004c8da3
call fcn.004c8da3
call fcn.004045a0
int3