Function at 0x404bd0
Capabilities:
Check if file exists
Create directory
Get common file path
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x500170
mov eax, dword fs:[0]
push eax
sub esp, 0x2a4
mov eax, dword [0x5470bc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004d8530
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push str.InStallLog
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
cmp word [ebp - 0x218], 0
jne 0x404c48
xor ecx, ecx
jmp 0x404c60
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404c51
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
lea ebx, [edi + 8]
push eax
mov ecx, ebx
call fcn.004020c0
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x404c91
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp dword [ebx + 0x14], 8
jb 0x404c9b
mov eax, dword [ebx]
jmp 0x404c9d
mov eax, ebx
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push eax
call esi
push 0x532964
call esi
push 0x532988
lea eax, [ebp - 0x2ac]
push ebx
push eax
call fcn.004086b0
add esp, 0xc
lea ecx, [edi + 0xe0]
mov dword [ebp - 4], 0
push ecx
push eax
lea eax, [ebp - 0x294]
push eax
call fcn.00408810
add esp, 0xc
push str._install.dmp
push eax
lea eax, [ebp - 0x27c]
mov byte [ebp - 4], 1
push eax
call fcn.00408660
mov ecx, eax
lea esi, [edi + 0x20]
add esp, 0xc
mov dword [ebp - 0x264], ecx
cmp esi, ecx
je 0x404d49
cmp dword [esi + 0x14], 8
jb 0x404d22
mov eax, dword [esi + 0x14]
mov ecx, esi
inc eax
push eax
push dword [esi]
call fcn.004024e0
mov ecx, dword [ebp - 0x264]
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x404d3a
mov eax, dword [esi]
jmp 0x404d3c
mov eax, esi
xor edx, edx
push ecx
mov ecx, esi
mov word [eax], dx
call fcn.00407b80
mov eax, dword [ebp - 0x268]
cmp eax, 8
jb 0x404d67
inc eax
lea ecx, [ebp - 0x27c]
push eax
push dword [ebp - 0x27c]
call fcn.004024e0
xor eax, eax
mov dword [ebp - 0x268], 7
mov word [ebp - 0x27c], ax
mov eax, dword [ebp - 0x280]
mov dword [ebp - 0x26c], 0
cmp eax, 8
jb 0x404da2
inc eax
lea ecx, [ebp - 0x294]
push eax
push dword [ebp - 0x294]
call fcn.004024e0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov word [ebp - 0x294], ax
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x280], 7
mov dword [ebp - 0x284], 0
cmp eax, 8
jb 0x404de4
inc eax
lea ecx, [ebp - 0x2ac]
push eax
push dword [ebp - 0x2ac]
call fcn.004024e0
cmp dword [esi + 0x14], 8
jb 0x404dec
mov esi, dword [esi]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
call esi
push 0x532964
call esi
push 0x532988
lea eax, [ebp - 0x2ac]
push ebx
push eax
call fcn.004086b0
add esp, 0xc
lea ecx, [edi + 0xe0]
mov dword [ebp - 4], 3
push ecx
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.00408810
add esp, 0xc
push 0x53298c
push eax
lea eax, [ebp - 0x294]
mov byte [ebp - 4], 4
push eax
call fcn.00408660
mov ecx, eax
lea esi, [edi + 0x38]
add esp, 0xc
mov dword [ebp - 0x264], ecx
cmp esi, ecx
je 0x404e98
cmp dword [esi + 0x14], 8
jb 0x404e71
mov eax, dword [esi + 0x14]
mov ecx, esi
inc eax
push eax
push dword [esi]
call fcn.004024e0
mov ecx, dword [ebp - 0x264]
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x404e89
mov eax, dword [esi]
jmp 0x404e8b
mov eax, esi
xor edx, edx
push ecx
mov ecx, esi
mov word [eax], dx
call fcn.00407b80
mov eax, dword [ebp - 0x280]
cmp eax, 8
jb 0x404eb6
inc eax
lea ecx, [ebp - 0x294]
push eax
push dword [ebp - 0x294]
call fcn.004024e0
xor eax, eax
mov dword [ebp - 0x280], 7
mov word [ebp - 0x294], ax
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x284], 0
cmp eax, 8
jb 0x404ef1
inc eax
lea ecx, [ebp - 0x27c]
push eax
push dword [ebp - 0x27c]
call fcn.004024e0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov word [ebp - 0x27c], ax
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x268], 7
mov dword [ebp - 0x26c], 0
cmp eax, 8
jb 0x404f33
inc eax
lea ecx, [ebp - 0x2ac]
push eax
push dword [ebp - 0x2ac]
call fcn.004024e0
cmp dword [esi + 0x14], 8
jb 0x404f3b
mov esi, dword [esi]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
call esi
push 0x532964
call esi
lea eax, [ebp - 0x248]
mov ecx, edi
push eax
call fcn.00405970
push 0x532988
lea eax, [ebp - 0x260]
mov dword [ebp - 4], 6
push ebx
push eax
call fcn.004086b0
add esp, 0xc
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 7
push ecx
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00408810
add esp, 0xc
push 0x5329c0
push eax
lea eax, [ebp - 0x2ac]
mov byte [ebp - 4], 8
push eax
call fcn.00408660
add esp, 0xc
lea ecx, [edi + 0xe0]
mov byte [ebp - 4], 9
push ecx
push eax
lea eax, [ebp - 0x27c]
push eax
call fcn.00408810
add esp, 0xc
push str._install.7z
push eax
lea eax, [ebp - 0x294]
mov byte [ebp - 4], 0xa
push eax
call fcn.00408660
add esp, 0xc
lea esi, [edi + 0x50]
mov ebx, eax
cmp esi, ebx
je 0x405021
cmp dword [esi + 0x14], 8
jb 0x404ffa
mov eax, dword [esi + 0x14]
mov ecx, esi
inc eax
push eax
push dword [esi]
call fcn.004024e0
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x405012
mov eax, dword [esi]
jmp 0x405014
mov eax, esi
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
push ebx
call fcn.00407b80
mov eax, dword [ebp - 0x280]
cmp eax, 8
jb 0x40503f
inc eax
lea ecx, [ebp - 0x294]
push eax
push dword [ebp - 0x294]
call fcn.004024e0
xor eax, eax
mov dword [ebp - 0x280], 7
mov word [ebp - 0x294], ax
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x284], 0
cmp eax, 8
jb 0x40507a
inc eax
lea ecx, [ebp - 0x27c]
push eax
push dword [ebp - 0x27c]
call fcn.004024e0
xor eax, eax
mov dword [ebp - 0x268], 7
mov word [ebp - 0x27c], ax
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x26c], 0
cmp eax, 8
jb 0x4050b5
inc eax
lea ecx, [ebp - 0x2ac]
push eax
push dword [ebp - 0x2ac]
call fcn.004024e0
xor eax, eax
mov dword [ebp - 0x298], 7
mov word [ebp - 0x2ac], ax
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x29c], 0
cmp eax, 8
jb 0x4050f0
inc eax
lea ecx, [ebp - 0x230]
push eax
push dword [ebp - 0x230]
call fcn.004024e0
xor eax, eax
mov byte [ebp - 4], 6
mov word [ebp - 0x230], ax
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
cmp eax, 8
jb 0x40512f
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.004024e0
cmp dword [esi + 0x14], 8
jb 0x405137
mov esi, dword [esi]
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push esi
call ebx
push 0x532964
call ebx
push 0x23
push str.http:__softdowns.55.la_senderrormsg
lea ecx, [ebp - 0x2ac]
mov dword [ebp - 0x298], 0xf
mov dword [ebp - 0x29c], 0
mov byte [ebp - 0x2ac], 0
call fcn.00402250
lea edx, [ebp - 0x2ac]
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x260]
call fcn.00418750
push ecx
mov edx, eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x230]
call fcn.00417510
add esp, 4
lea esi, [edi + 0x68]
mov ebx, eax
cmp esi, ebx
je 0x4051e2
cmp dword [esi + 0x14], 8
jb 0x4051bb
mov eax, dword [esi + 0x14]
mov ecx, esi
inc eax
push eax
push dword [esi]
call fcn.004024e0
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x4051d3
mov eax, dword [esi]
jmp 0x4051d5
mov eax, esi
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
push ebx
call fcn.00407b80
mov eax, dword [ebp - 0x21c]
cmp eax, 8
jb 0x405200
inc eax
lea ecx, [ebp - 0x230]
push eax
push dword [ebp - 0x230]
call fcn.004024e0
xor eax, eax
mov dword [ebp - 0x21c], 7
lea ecx, [ebp - 0x260]
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
call fcn.004031b0
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 6
call fcn.004031b0
lea ecx, [ebp - 0x260]
call fcn.00418b40
mov ebx, eax
lea esi, [edi + 0x80]
cmp esi, ebx
je 0x405289
cmp dword [esi + 0x14], 8
jb 0x405262
mov eax, dword [esi + 0x14]
mov ecx, esi
inc eax
push eax
push dword [esi]
call fcn.004024e0
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x40527a
mov eax, dword [esi]
jmp 0x40527c
mov eax, esi
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
push ebx
call fcn.00407b80
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x24c]
cmp eax, 8
jb 0x4052ab
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.004024e0
cmp dword [edi + 0xa8], 0
jne 0x405328
lea ecx, [ebp - 0x260]
call fcn.004179d0
mov ebx, eax
lea esi, [edi + 0x98]
cmp esi, ebx
je 0x405306
cmp dword [esi + 0x14], 8
jb 0x4052df
mov eax, dword [esi + 0x14]
mov ecx, esi
inc eax
push eax
push dword [esi]
call fcn.004024e0
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x4052f7
mov eax, dword [esi]
jmp 0x4052f9
mov eax, esi
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
push ebx
call fcn.00407b80
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x24c]
cmp eax, 8
jb 0x405328
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.004024e0
cmp dword [edi + 0xc0], 0
jne 0x4053a5
lea ecx, [ebp - 0x260]
call fcn.00417de0
mov ebx, eax
lea esi, [edi + 0xb0]
cmp esi, ebx
je 0x405383
cmp dword [esi + 0x14], 8
jb 0x40535c
mov eax, dword [esi + 0x14]
mov ecx, esi
inc eax
push eax
push dword [esi]
call fcn.004024e0
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x405374
mov eax, dword [esi]
jmp 0x405376
mov eax, esi
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
push ebx
call fcn.00407b80
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x24c]
cmp eax, 8
jb 0x4053a5
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.004024e0
cmp dword [edi + 0xd8], 0
jne 0x405422
lea ecx, [ebp - 0x260]
call fcn.00417cc0
mov ebx, eax
lea esi, [edi + 0xc8]
cmp esi, ebx
je 0x405400
cmp dword [esi + 0x14], 8
jb 0x4053d9
mov eax, dword [esi + 0x14]
mov ecx, esi
inc eax
push eax
push dword [esi]
call fcn.004024e0
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x4053f1
mov eax, dword [esi]
jmp 0x4053f3
mov eax, esi
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
push ebx
call fcn.00407b80
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x24c]
cmp eax, 8
jb 0x405422
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.004024e0
cmp dword [edi + 0x108], 0
jne 0x40549f
lea ecx, [ebp - 0x260]
call fcn.004176f0
mov ebx, eax
lea esi, [edi + 0xf8]
cmp esi, ebx
je 0x40547d
cmp dword [esi + 0x14], 8
jb 0x405456
mov eax, dword [esi + 0x14]
mov ecx, esi
inc eax
push eax
push dword [esi]
call fcn.004024e0
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x40546e
mov eax, dword [esi]
jmp 0x405470
mov eax, esi
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
push ebx
call fcn.00407b80
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x24c]
cmp eax, 8
jb 0x40549f
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.004024e0
cmp dword [edi + 0x120], 0
jne 0x405561
mov dword [ebp - 0x21c], 0xf
mov dword [ebp - 0x220], 0
mov byte [ebp - 0x230], 0
push 6
push 0x5329e8
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0x14
call fcn.00402250
push ecx
lea edx, [ebp - 0x230]
lea ecx, [ebp - 0x260]
call fcn.00417510
add esp, 4
lea esi, [edi + 0x110]
mov ebx, eax
cmp esi, ebx
je 0x405538
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x405511
inc eax
mov ecx, esi
push eax
push dword [esi]
call fcn.004024e0
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x405529
mov eax, dword [esi]
jmp 0x40552b
mov eax, esi
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
push ebx
call fcn.00407b80
mov eax, dword [ebp - 0x24c]
cmp eax, 8
jb 0x405556
inc eax
lea ecx, [ebp - 0x260]
push eax
push dword [ebp - 0x260]
call fcn.004024e0
lea ecx, [ebp - 0x230]
call fcn.004031b0
mov eax, dword [ebp - 0x234]
cmp eax, 8
jb 0x40557f
inc eax
lea ecx, [ebp - 0x248]
push eax
push dword [ebp - 0x248]
call fcn.004024e0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004264c2
mov esp, ebp
pop ebp
ret