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

Disassembly:
push ebp
lea ebp, [esp - 0x4d0]
sub esp, 0x550
mov eax, dword [0x45636c]
xor eax, ebp
mov dword [ebp + 0x4cc], eax
push ebx
xor ebx, ebx
push esi
push edi
cmp dword [0x45a1a0], ebx
je 0x402ce7
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x104
lea eax, [ebp + 0x19c]
push eax
push ebx
call esi
push 0x104
lea ecx, [ebp - 0x6c]
push ecx
push ebx
call esi
lea edx, [ebp + 0x19c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.update
lea eax, [ebp + 0x19c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push ebx
lea ecx, [ebp + 0x19c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov eax, dword [0x45a1a0]
cmp dword [eax + 8], ebx
je 0x402ce7
mov esi, dword [eax + 8]
lea edx, [ebp - 0x80]
push edx
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x6c]
push ecx
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x80], ebx
call fcn.0040bb40
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
mov ecx, dword [esi + 4]
push edx
mov edx, dword [esi]
push eax
push ecx
push edx
call fcn.0040bbe0
add esp, 0x1c
test eax, eax
jle 0x402ce7
lea eax, [ebp + 0x19c]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x402ac0
sub eax, edx
sar eax, 1
je 0x402b0a
lea eax, [ebp + 0x19c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x402aea
xor eax, eax
jmp 0x402b0f
lea edi, [eax + eax]
mov eax, edi
call fcn.00437d80
mov esi, esp
mov edx, 3
mov ecx, edi
lea eax, [ebp + 0x19c]
call fcn.00401060
jmp 0x402b0f
mov eax, 0x44bf2a
push str.update.exe
push eax
lea ecx, [ebp + 0x3a4]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathCombineA]
push 8
call fcn.0042be1c
add esp, 4
cmp eax, ebx
je 0x402b42
mov dword [eax], vtable.CHttpDownload.0
mov dword [eax + 4], 0xea60
mov dword [ebp - 0x74], eax
jmp 0x402b45
mov dword [ebp - 0x74], ebx
lea eax, [ebp + 0x3a4]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402b50
sub eax, edx
je 0x402b90
lea edx, [ebp + 0x3a4]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jg 0x402b95
lea eax, [edi + edi]
call fcn.00437d80
mov esi, esp
push 3
mov edx, edi
lea eax, [ebp + 0x3a4]
call fcn.00401030
mov ebx, eax
jmp 0x402b95
mov ebx, 0x44bf28
mov esi, dword [ebp - 0x78]
add esi, 0x29
je 0x402bdc
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402ba2
sub eax, edx
je 0x402bdc
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x402bc3
xor eax, eax
jmp 0x402be1
lea eax, [edi + edi]
call fcn.00437d80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00401030
jmp 0x402be1
mov eax, 0x44bf28
mov ecx, dword [ebp - 0x74]
mov edx, dword [ecx]
push 0
push ebx
push eax
mov eax, dword [edx + 4]
call eax
test eax, eax
je 0x402ce7
lea ecx, [ebp + 0x3a4]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x402ce7
lea eax, [ebp + 0x3a4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402c15
sub eax, edx
je 0x402c57
lea edx, [ebp + 0x3a4]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x402c3c
xor eax, eax
jmp 0x402c5c
lea eax, [edi + edi]
call fcn.00437d80
mov esi, esp
push 3
mov edx, edi
lea eax, [ebp + 0x3a4]
call fcn.00401030
jmp 0x402c5c
mov eax, 0x44bf28
lea ecx, [ebp + 0x4a8]
push ecx
push eax
call fcn.0040bc90
add esp, 8
test eax, eax
je 0x402ce7
mov edx, dword [ebp - 0x78]
add edx, 8
push edx
lea eax, [ebp + 0x4a8]
push eax
call fcn.0042ab49
add esp, 8
test eax, eax
jne 0x402ce7
lea eax, [ebp + 0x3a4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402c93
sub eax, edx
je 0x402cd5
lea ecx, [ebp + 0x3a4]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x402cba
xor eax, eax
jmp 0x402cda
lea eax, [edi + edi]
call fcn.00437d80
mov esi, esp
push 3
mov edx, edi
lea eax, [ebp + 0x3a4]
call fcn.00401030
jmp 0x402cda
mov eax, 0x44bf28
lea edx, [ebp - 0x6c]
push edx
push eax
call fcn.0040bda0
add esp, 8
lea esp, [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x4cc]
xor ecx, ebp
call fcn.0042a9a5
add ebp, 0x4d0
mov esp, ebp
pop ebp
ret