Function at 0x404040
Capabilities:
Get common file path
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42a434
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push eax
mov esi, ecx
push 0x66
mov dword [esp + 0x18], esi
call fcn.0041e759
mov dword [esp + 0x12c], 0
mov dword [esi], method.CDialog.virtual_0
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x174], eax
mov byte [esp + 0x12c], 1
lea ebx, [esi + 0x178]
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x12c], 2
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x17c], eax
mov byte [esp + 0x12c], 3
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x180], eax
mov byte [esp + 0x12c], 4
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x184], eax
mov byte [esp + 0x12c], 5
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x188], eax
mov byte [esp + 0x12c], 6
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x18c], eax
mov byte [esp + 0x12c], 7
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x190], eax
mov byte [esp + 0x12c], 8
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x194], eax
mov byte [esp + 0x12c], 9
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x198], eax
mov byte [esp + 0x12c], 0xa
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x19c], eax
lea ecx, [esi + 0x1a0]
mov byte [esp + 0x12c], 0xb
call fcn.00404eb0
lea ecx, [esi + 0x258]
mov byte [esp + 0x12c], 0xc
call fcn.00404eb0
lea ecx, [esi + 0x310]
mov byte [esp + 0x12c], 0xd
call fcn.00404eb0
lea ecx, [esi + 0x3c8]
mov byte [esp + 0x12c], 0xe
call fcn.00404eb0
lea ecx, [esi + 0x480]
mov byte [esp + 0x12c], 0xf
call fcn.00404eb0
lea ecx, [esi + 0x538]
mov byte [esp + 0x12c], 0x10
call fcn.00404eb0
lea ecx, [esi + 0x5f0]
mov byte [esp + 0x12c], 0x11
call fcn.00404eb0
lea ecx, [esi + 0x6a8]
mov byte [esp + 0x12c], 0x12
call fcn.00404eb0
mov byte [esp + 0x12c], 0x13
lea edi, [esi + 0x760]
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [edi], eax
mov byte [esp + 0x12c], 0x14
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x764], eax
mov byte [esp + 0x12c], 0x15
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x768], eax
mov byte [esp + 0x12c], 0x16
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x76c], eax
mov byte [esp + 0x12c], 0x17
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x770], eax
mov byte [esp + 0x12c], 0x18
call fcn.00422dd4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi + 0x774], eax
push 0
push 0x804
lea ecx, [esi + 0x778]
mov byte [esp + 0x134], 0x19
call fcn.00404950
push 0
push 0x804
lea ecx, [esi + 0x7d0]
mov byte [esp + 0x134], 0x1a
call fcn.00404950
push 0
push 0x804
lea ecx, [esi + 0x828]
mov byte [esp + 0x134], 0x1b
call fcn.00404950
push 0
push 0x804
lea ecx, [esi + 0x880]
mov byte [esp + 0x134], 0x1c
call fcn.00404950
push 0
push 0x804
lea ecx, [esi + 0x8d8]
mov byte [esp + 0x134], 0x1d
call fcn.00404950
push 0
push 0x42c88e
lea ecx, [esi + 0x764]
mov byte [esp + 0x134], 0x1e
call fcn.00401d80
push 0
push 0x42c88e
lea ecx, [esi + 0x774]
call fcn.00401d80
push 0
push 0x42c88e
lea ecx, [esi + 0x76c]
call fcn.00401d80
push 0
push 0x42c88e
lea ecx, [esi + 0x770]
call fcn.00401d80
push 0
push 0x42c88e
lea ecx, [esi + 0x768]
call fcn.00401d80
push 0
push 0x42c88e
mov ecx, edi
call fcn.00401d80
call fcn.00426d16
call fcn.00426d16
mov eax, dword [eax + 0xc]
push 0x80
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [esi + 0x930], eax
xor eax, eax
mov byte [esp + 0x18], 0
mov ecx, 0x40
lea edi, [esp + 0x19]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x104
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [esp + 0x18]
push ecx
push 0x42c830
push ebx
call fcn.00402570
mov edx, dword [ebx]
mov eax, dword [edx - 0xc]
add esp, 0xc
test eax, eax
jne 0x404467
push 0x13
push str.C:WINDOWS_system32
mov ecx, ebx
call fcn.00401d80
lea eax, [esp + 0xc]
push eax
mov ecx, esi
call fcn.00403e90
mov ecx, dword [esp + 0xc]
mov edx, dword [ebx]
push ecx
push edx
push str._s_s_
lea edi, [esi + 0x174]
push edi
mov byte [esp + 0x13c], 0x1f
call fcn.00402570
mov eax, dword [edi]
add esp, 0xc
sub eax, 0x10
mov dword [esp + 0x18], esp
mov ebx, esp
push eax
call fcn.00401a00
add eax, 0x10
add esp, 4
mov ecx, esi
mov dword [ebx], eax
call fcn.004038e0
lea ecx, [esi + 0x184]
call fcn.00401940
lea ecx, [esi + 0x17c]
call fcn.00401940
lea ecx, [esi + 0x180]
call fcn.00401940
lea ecx, [esi + 0x18c]
call fcn.00401940
push 0xd
push str.sysconfig.ini
lea ecx, [esi + 0x188]
call fcn.00401d80
lea ecx, [esi + 0x190]
call fcn.00401940
lea ecx, [esi + 0x194]
call fcn.00401940
lea ecx, [esi + 0x198]
call fcn.00401940
lea ecx, [esi + 0x19c]
call fcn.00401940
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov byte [esp + 0x12c], 0x1e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404547
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x124]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4