Function at 0x404b90
Capabilities:
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, 0x5c
push esi
mov esi, edx
push ebx
mov ebx, eax
sub esp, 0x14
mov dword [ebp - 0x10], ecx
mov dword [esp + 4], eax
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetTempPathA]
sub esp, 8
mov dword [esp + 4], esi
lea esi, [ebx + 0x104]
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll_strcat]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov word [ebx + eax], di
lea edi, [ebx + 0x323]
mov dword [esp + 4], 0
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
sub esp, 8
mov dword [esp], esi
mov dword [esp + 0xc], str.sxs_dll.dll
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x581385
call fcn.00401020
mov eax, esi
lea esi, [ebx + 0x213]
call fcn.004049e0
mov dword [esp], esi
mov dword [esp + 0xc], str.exe.manifest
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x581385
call fcn.00401020
mov dword [esp + 4], 0
mov ecx, 0xffffffff
mov eax, esi
mov dword [esp], 0
mov edx, str._assembly_xmlns_urn:schemas_microsoft_com:asm.v1__manifestVersion_1.0_____dependency______dependentAssembly________assemblyIdentity_type_win32__name_sxs_dll__version_1.0.0.0__processorArchitecture_x86__publicKeyToken_0000000000000000__language__________dependentAssembly_____dependency___assembly_
call fcn.004025f0
mov dword [esp + 0xc], str.sxs_dll.manifest
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x581385
mov dword [esp], edi
call fcn.00401020
mov dword [esp + 4], 0
mov ecx, 0xffffffff
mov eax, edi
mov dword [esp], 0
mov edx, str._assembly_xmlns_urn:schemas_microsoft_com:asm.v3__manifestVersion_1.0_____assemblyIdentity_type_win32__name_sxs_dll__version_1.0.0.0__processorArchitecture_x86__publicKeyToken_0000000000000000______file_name_sxs_dll.dll____file___assembly_
call fcn.004025f0
lea eax, [ebx + 0x438]
mov dword [ebx + 0x440], esi
mov dword [ebx + 0x438], 0x20
mov dword [ebx + 0x448], ebx
mov dword [ebx + 0x43c], 4
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CreateActCtxA]
mov dword [ebx + 0x45c], eax
sub esp, 4
mov esi, dword fs:[0x18]
call fcn.0057d110
mov edx, 1
mov dword [eax], 0x58109f
mov dword [eax + 4], 0xdfe
mov eax, dword [ebx + 0x45c]
mov ecx, dword [esi + 0x34]
sub eax, 1
cmp eax, 0xfffffffd
jbe 0x404d12
mov esi, dword [0x8f0770]
cmp ecx, 0x36b1
sete al
xor edx, edx
test esi, esi
sete dl
and edx, eax
mov dword [esp + 8], ecx
mov dword [esp + 4], str.CreateActCtxA_failed:__ld_n
mov dword [esp], edx
mov esi, dword fs:[0x18]
call fcn.00401dd0
cmp dword [esi + 0x34], 0x36b1
je 0x404e38
mov edi, dword [ebp - 0x10]
test edi, edi
jne 0x404d50
lea esp, [ebp - 0xc]
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebx + 0x458]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x45c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ActivateActCtx]
sub esp, 8
mov edi, eax
mov eax, 0xe0a
call fcn.004012e0
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.ActivateActCtx_failed:__ld_n
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.00401dd0
mov dword [esp], str.sxs_dll.dll
call dword [sym.imp.kernel32.dll_LoadLibraryA]
mov dword [ebx + 0x460], eax
sub esp, 4
mov eax, 0xe0d
call fcn.004012e0
mov dword [esp + 4], str.LoadLibrary_failed_n
xor eax, eax
mov edx, dword [ebx + 0x460]
test edx, edx
setne al
mov dword [esp], eax
call fcn.00401dd0
mov dword [esp + 4], 0x581b14
mov eax, dword [ebx + 0x460]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [ebx + 0x464], eax
sub esp, 8
mov eax, 0xe10
call fcn.004012e0
mov dword [esp + 4], str.GetProcAddress_failed_n
xor eax, eax
mov ecx, dword [ebx + 0x464]
test ecx, ecx
setne al
mov dword [esp], eax
call fcn.00401dd0
mov eax, dword [ebx + 0x458]
mov dword [esp], 0
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_DeactivateActCtx]
sub esp, 8
jmp 0x404d41
mov eax, 0xe03
call fcn.004012e0
mov dword [esp], str.Failed_to_create_activation_context._n
call fcn.00401860
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret