Function at 0x416401
Capabilities:
Create directory
Get session user name

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46157a
mov eax, dword fs:[0]
push eax
sub esp, 0x228
mov eax, dword [0x498d50]
xor eax, esp
mov dword [esp + 0x220], eax
push ebx
push esi
push edi
mov eax, dword [0x498d50]
xor eax, esp
push eax
lea eax, [esp + 0x238]
mov dword fs:[0], eax
mov ebx, ecx
push str.Downloading_Manifest:
lea ecx, [esp + 0x18]
mov dword [esp + 0x24], ebx
call fcn.00402060
xor edi, edi
push edi
lea eax, [esp + 0x18]
push eax
push 2
pop esi
push esi
mov dword [esp + 0x24c], edi
call fcn.00411fb7
or dword [esp + 0x24c], 0xffffffff
mov ecx, dword [esp + 0x20]
add esp, 0xc
add ecx, 0xfffffff0
call fcn.0040253e
push str.___URL:
lea ecx, [esp + 0x18]
call fcn.00402060
push edi
lea eax, [ebx + 0x10]
push eax
lea eax, [esp + 0x1c]
push eax
push esi
mov dword [esp + 0x250], 1
call fcn.00411b31
or dword [esp + 0x250], 0xffffffff
mov ecx, dword [esp + 0x24]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.0040253e
push str.___file:
lea ecx, [esp + 0x18]
call fcn.00402060
push 0
lea edi, [ebx + 4]
push edi
lea eax, [esp + 0x1c]
push eax
push esi
mov dword [esp + 0x250], esi
call fcn.00411b31
or dword [esp + 0x250], 0xffffffff
mov ecx, dword [esp + 0x24]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.0040253e
push edi
push str.UpdateManifestPath
call fcn.00416228
test eax, eax
jne 0x416516
inc eax
jmp 0x4167cc
mov esi, edi
call fcn.00415e33
test eax, eax
jne 0x4165ab
push 0x200
push eax
mov word [esp + 0x2c], ax
lea eax, [esp + 0x2e]
push eax
call fcn.004462a0
add esp, 0xc
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x20], 0x101
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
test eax, eax
je 0x4165ab
lea eax, [esp + 0x24]
lea esi, [ebx + 8]
push eax
mov ecx, esi
call fcn.00409023
mov eax, dword [esi]
push 0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov dword [esp + 0x1c], eax
cmp eax, 0xa1
je 0x4165ed
cmp eax, 3
je 0x4165ed
push 0x5c
mov ecx, esi
call fcn.00419795
push esi
mov ecx, edi
call fcn.00409162
mov eax, dword [ebx + 0x14]
push dword [eax - 0xc]
mov ecx, edi
push eax
call fcn.00401eca
mov esi, edi
call fcn.00415e33
lea esi, [ebx + 0x10]
push dword [esi]
call dword [sym.imp.WININET.dll_DeleteUrlCacheEntryW]
mov eax, dword [0x49d534]
and dword [esp + 0x14], 0
and dword [esp + 0x1c], 0
test eax, eax
je 0x416656
lea eax, [esp + 0x14]
push eax
mov ecx, ebx
call fcn.004167f0
cmp dword [0x49d548], 0
mov dword [esp + 0x1c], eax
je 0x416649
xor eax, eax
jmp 0x4167cc
lea ecx, [esp + 0x13]
push ecx
push eax
mov eax, str.Get_Product_Manifest_Result
mov ebx, 0x49d488
mov byte [esp + 0x1b], 0
call fcn.0040922c
push str.SHCreateDirectoryEx___failed:
lea ecx, [esp + 0x18]
call fcn.00402060
push dword [esp + 0x1c]
lea eax, [esp + 0x18]
push esi
push eax
push 1
mov dword [esp + 0x250], 3
call fcn.00411b31
mov ecx, dword [esp + 0x24]
add esp, 0x10
add ecx, 0xfffffff0
mov esi, eax
call fcn.0040253e
mov eax, esi
jmp 0x4167cc
test eax, eax
jne 0x4167a8
mov eax, dword [0x49d534]
mov ecx, dword [esi]
neg eax
sbb eax, eax
and eax, 0xfff8ad00
add eax, 0x927c0
push eax
lea eax, [esp + 0x18]
push eax
push ecx
push edi
mov dword [esp + 0x24], 1
call fcn.00414c33
add esp, 0x10
lea eax, [esp + 0x13]
push eax
push dword [esp + 0x18]
mov eax, str.BITS_Result
mov ebx, 0x49d488
mov byte [esp + 0x1b], 0
call fcn.0040922c
mov esi, dword [edi]
or ebx, 0xffffffff
call fcn.0041e29e
xor ebx, ebx
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x4166fc
push str.Product_Manifest_download_success_with_BITS:
lea ecx, [esp + 0x1c]
mov dword [esp + 0x20], 1
call fcn.00402060
push ebx
push edi
lea eax, [esp + 0x20]
push eax
push 2
mov dword [esp + 0x250], 4
call fcn.00411b31
or dword [esp + 0x250], 0xffffffff
mov ecx, dword [esp + 0x28]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.0040253e
mov esi, 0x49d488
jmp 0x41671a
lea eax, [esp + 0x13]
push eax
push ebx
push 0x468f88
push str.Signature_Validation_Error
mov esi, 0x49d488
mov byte [esp + 0x23], bl
call fcn.004091c1
cmp dword [0x49d548], ebx
jne 0x4165e6
cmp dword [esp + 0x1c], ebx
jne 0x416797
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x14]
push eax
call fcn.004167f0
mov dword [esp + 0x1c], eax
cmp eax, ebx
je 0x4167c8
lea eax, [esp + 0x13]
push eax
push ebx
push str.OK_BB
push str.Get_Product_Manifest_Result
mov byte [esp + 0x23], bl
call fcn.004091c1
push str.Product_Manifest_download_success_with_Backup_BITS:
lea ecx, [esp + 0x1c]
call fcn.00402060
push ebx
push edi
lea eax, [esp + 0x20]
push eax
push 2
mov dword [esp + 0x250], 5
call fcn.00411b31
mov ecx, dword [esp + 0x28]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.0040253e
jmp 0x4167c8
lea eax, [esp + 0x13]
push eax
push ebx
mov byte [esp + 0x1b], bl
push str.OK_BITS
jmp 0x4167be
lea eax, [esp + 0x13]
push eax
push 0
mov byte [esp + 0x1b], 0
push str.OK_BB
mov esi, 0x49d488
push str.Get_Product_Manifest_Result
call fcn.004091c1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x238]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x220]
xor ecx, esp
call fcn.0044546a
mov esp, ebp
pop ebp
ret