Function at 0x40cfb0
Capabilities:
Get common file path

Disassembly:
mov eax, dword [0x450ed0]
test eax, 0x10000
jne 0x40d0a3
or eax, 0x10000
mov dword [0x450ed0], eax
call fcn.0040ab60
call fcn.00406be0
call fcn.00407f30
call fcn.004021b0
movsd xmm0, qword [0x43e0da]
movsd xmm1, qword [0x43e0d4]
movsd xmm2, qword [str.INPROC_LIB]
movsd qword [0x45f54e], xmm0
movsd qword [0x45f548], xmm1
movsd xmm1, qword [str.RUN_LIB]
movsd qword [0x45f540], xmm2
movsd xmm2, qword [0x43e0ea]
movsd qword [0x45f5c0], xmm1
movsd xmm1, qword [str.CONSOLE_APP]
movsd qword [0x45f5c8], xmm2
movsd xmm2, qword [0x43e0fa]
movsd qword [0x45f640], xmm1
movsd xmm1, qword [0x43e102]
movsd qword [0x45f648], xmm2
movsd xmm2, qword [0x43e112]
movsd qword [0x45f650], xmm1
movsd xmm1, qword [str.GUI_APP]
movsd qword [0x45f6c8], xmm2
movsd xmm2, qword [0x43e122]
movsd qword [0x45f6c0], xmm1
movsd xmm1, qword [str.SERVICE]
movsd qword [0x45f748], xmm2
movsd qword [0x45f740], xmm1
jmp 0x40d0b0
ret
push ebp
push ebx
push edi
push esi
sub esp, 0x220
mov eax, dword [0x464504]
mov dword [esp], eax
mov eax, esp
mov dword [esp + 4], str.Runner.Initialize
mov dword [0x464504], eax
xor eax, eax
cmp byte [0x460464], 0
sete al
xor esi, esi
or eax, 2
mov dword [0x45f7c0], eax
nop word [eax + eax]
push 0x40e2a0
push esi
call fcn.0042b8c5
add esp, 8
inc esi
cmp esi, 0x40
jne 0x40d0f0
push 0x40e320
call sub.KERNEL32.dll_SetUnhandledExceptionFilter
lea esi, [esp + 0x10]
push 0x104
push esi
push 0
call sub.KERNEL32.dll_GetModuleFileNameA
xor edi, edi
jmp 0x40d139
mov word [eax + eax + 0x45fe40], bx
inc edi
cmp edi, 0x104
mov eax, edi
jb 0x40d16b
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x38a
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
cmp byte [esp + eax + 0x10], 0
je 0x40d242
cmp edi, 0x103
ja 0x40d190
movzx ebx, byte [esp + edi + 0x10]
mov eax, edi
mov word [edi + edi + 0x45fa00], bx
jmp 0x40d130
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x38b
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
movzx ebx, byte [esp + 0x10]
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x38b
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
mov word [0x45fa00], bx
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x38c
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
mov bx, word [0x45fa00]
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x38c
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
jmp 0x40d130
cmp edi, 0x104
mov eax, edi
jb 0x40d274
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x38f
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
xor ebx, ebx
test edi, edi
mov word [eax + eax + 0x45fe40], 0
jle 0x40d352
nop dword [eax + eax]
cmp edi, 0x104
mov eax, edi
jb 0x40d2c2
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x390
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
cmp byte [esp + eax + 0x10], 0x5c
je 0x40d34d
cmp edi, 0x104
mov eax, edi
jb 0x40d2ff
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x390
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
cmp byte [esp + eax + 0x10], 0x2f
je 0x40d34d
cmp edi, 0x104
mov eax, edi
jb 0x40d338
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x391
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
cmp byte [esp + eax + 0x10], 0x3a
je 0x40d34d
cmp edi, 1
lea edi, [edi - 1]
jg 0x40d290
jmp 0x40d352
mov ebx, 1
cmp edi, 0x104
mov eax, edi
jb 0x40d384
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x394
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
add edi, ebx
xor ebx, ebx
mov word [eax + eax + 0x45fa00], 0
jmp 0x40d3a9
mov word [eax + eax + 0x45fc20], bp
inc ebx
lea ebp, [edi + ebx]
cmp ebp, 0x104
mov eax, ebp
jb 0x40d3de
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x399
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
cmp byte [esp + eax + 0x10], 0
je 0x40d492
cmp ebp, 0x104
mov eax, ebp
jb 0x40d41b
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x399
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
cmp byte [esp + eax + 0x10], 0x2e
je 0x40d492
cmp ebp, 0x104
jb 0x40d452
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x39a
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor ebp, ebp
movzx ebp, byte [esp + ebp + 0x10]
cmp ebx, 0x104
mov eax, ebx
jb 0x40d3a0
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x39a
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
jmp 0x40d3a0
cmp ebx, 0x104
jb 0x40d4c2
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x39e
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor ebx, ebx
mov word [ebx + ebx + 0x45fc20], 0
push esi
push 0x104
call sub.KERNEL32.dll_GetCurrentDirectoryA
xor esi, esi
jmp 0x40d4ec
movzx ecx, bl
inc esi
mov word [eax + eax + 0x45f7e0], cx
cmp esi, 0x104
mov eax, esi
jb 0x40d51e
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x3a1
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
cmp byte [esp + eax + 0x10], 0
je 0x40d598
cmp esi, 0x103
ja 0x40d540
movzx ebx, byte [esp + esi + 0x10]
mov eax, esi
jmp 0x40d4e0
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x3a2
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
movzx ebx, byte [esp + 0x10]
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x3a2
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor eax, eax
jmp 0x40d4e0
cmp esi, 0x104
jb 0x40d5c8
push 0x464504
push 0xfffffffffffffff9
call fcn.00401380
add esp, 8
push 0x3a5
push str.Runner.c
push 0x43d25a
call fcn.00424f0d
add esp, 0xc
xor esi, esi
mov eax, dword [0x464504]
mov word [esi + esi + 0x45f7e0], 0
lea ecx, [esp + 8]
lea esi, [esp + 0x114]
mov dword [0x464504], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.Runner.ParseArgs
push 0
push 0x451098
push esi
call dword [0x451088]
add esp, 0xc
push pe_nt_image_headers32
push 0x45f3a0
push esi
call fcn.00401d60
add esp, 0xc
cmp byte [esp + 0x21c], 0
jne 0x40d662
nop word cs:[eax + eax]
push 0x43e2dd
push esi
call fcn.00401c40
add esp, 8
test eax, eax
jne 0x40d649
mov byte [0x45d6f8], 1
push 0x451098
push esi
call dword [0x45107c]
add esp, 8
cmp byte [esp + 0x21c], 0
je 0x40d630
mov eax, dword [esp + 0x214]
mov ecx, dword [esp]
inc eax
mov dword [0x464504], ecx
mov dword [0x45f4b0], eax
xor eax, eax
cmp dword [0x45f7c0], 2
sete al
mov dword [0x460048], eax
add esp, 0x220
pop esi
pop edi
pop ebx
pop ebp
ret