Function at 0x4104ca
Capabilities:
Get common file path

Disassembly:
mov eax, 0x41b84d
call fcn.00403df8
sub esp, 0x4c
push ebx
push esi
push edi
mov edi, ecx
xor edx, edx
mov dword [ebp - 0x10], edi
mov dword [edi], edx
mov dword [edi + 4], edx
mov dword [edi + 8], edx
mov dword [ebp - 4], edx
push 0xf
pop ecx
mov dword [edi + 0x3c], ecx
mov dword [edi + 0x38], edx
mov byte [edi + 0x28], dl
mov byte [ebp - 4], 1
lea ebx, [edi + 0x40]
xor eax, eax
mov dword [ebx + 0x14], 7
mov dword [ebx + 0x10], edx
mov word [ebx], ax
mov byte [ebp - 4], 2
mov dword [edi + 0x6c], ecx
mov dword [edi + 0x68], edx
mov byte [edi + 0x58], dl
mov byte [ebp - 4], 3
xor ecx, ecx
mov dword [edi + 0x84], 7
mov dword [edi + 0x80], edx
mov word [edi + 0x70], cx
mov byte [ebp - 4], 4
mov esi, dword [ebp + 8]
push 0x14
mov eax, dword [esi + 0x14]
mov dword [edi + 0x2e8], eax
pop eax
call fcn.0040171b
push esp
push 0x41d800
call fcn.0040f4b6
pop ecx
pop ecx
push eax
call dword [0x630ee0]
mov dword [edi + 0x2ec], eax
mov eax, dword [esi + 0x2c]
mov dword [edi + 0x2e4], eax
mov eax, dword [esi + 0x14]
mov dword [edi + 0x2d8], eax
mov eax, dword [esi + 0xc]
sub esp, 0x18
mov dword [edi + 0x2e0], eax
mov eax, dword [esi + 0x10]
mov ecx, esp
mov dword [ebp + 8], esp
push dword [ebp + 0xc]
mov dword [edi + 0x2dc], eax
call fcn.004047e0
mov byte [ebp - 4], 5
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
call fcn.00410037
add esp, 0x18
mov esi, eax
mov byte [ebp - 4], 6
cmp ebx, esi
je 0x4105cb
push 0
push 1
mov ecx, ebx
call fcn.004048f0
push esi
mov ecx, ebx
call fcn.00404884
mov byte [ebp - 4], 4
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.004048f0
mov edx, ebx
lea ecx, [ebp - 0x40]
call fcn.0040effa
mov byte [ebp - 4], 7
push eax
lea ecx, [edi + 0x28]
call fcn.00411157
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
call fcn.004047bf
mov esi, dword [ebp + 0x10]
xor ebx, ebx
cmp word [esi], bx
jne 0x41060c
mov eax, ebx
jmp 0x410613
push esi
call fcn.004016dd
pop ecx
push eax
push esi
lea ecx, [edi + 0x70]
call fcn.004049ac
lea edx, [edi + 0x70]
lea ecx, [ebp - 0x40]
call fcn.0040effa
mov byte [ebp - 4], 8
push eax
lea ecx, [edi + 0x58]
call fcn.00411157
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
call fcn.004047bf
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [edi + 0x2d4], eax
lea eax, [edi + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push ebx
push edi
push 0x630108
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
test eax, eax
jne 0x410af9
push dword [ebp + 0xc]
lea ecx, [ebp - 0x40]
call fcn.004047e0
mov byte [ebp - 4], 9
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x28]
call fcn.0041202b
mov byte [ebp - 4], 0xb
push ebx
push 1
lea ecx, [ebp - 0x40]
call fcn.004048f0
push 0x42157c
lea ecx, [ebp - 0x58]
call fcn.004047e0
mov byte [ebp - 4], 0xc
jmp 0x4106f0
push ecx
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x28]
call fcn.0041122b
lea ecx, [esi - 1]
cmp eax, ecx
jne 0x4106f7
cmp dword [ebp - 0x14], 8
mov ecx, dword [ebp - 0x28]
mov eax, ecx
jae 0x4106ca
lea eax, [ebp - 0x28]
lea eax, [eax + esi*2]
add eax, 0xfffffffe
cmp dword [ebp - 0x14], 8
jae 0x4106d9
lea ecx, [ebp - 0x28]
test eax, eax
jne 0x4106e1
mov eax, ebx
jmp 0x4106e5
sub eax, ecx
sar eax, 1
push 1
push eax
lea ecx, [ebp - 0x28]
call fcn.00404e4e
mov esi, dword [ebp - 0x18]
test esi, esi
jne 0x4106a8
push ebx
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov dword [edi + 0xc], eax
lea eax, [edi + 0x88]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421584
add esi, 0x2f0
call fcn.0040f6f8
add esp, 4
mov edx, 0x4100e1
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x42159c
add esi, 0x2f4
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x4100f2
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4215b4
add esi, 0x2f8
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x410103
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4215cc
add esi, 0x2fc
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x410123
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4215e4
add esi, 0x300
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x410143
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421600
add esi, 0x304
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x41019f
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
add esi, 0x308
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x42161c
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x4101fb
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421638
add esi, 0x30c
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x410262
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421654
add esi, 0x310
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x4102c9
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421670
add esi, 0x314
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x4102c9
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x42168c
add esi, 0x318
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x4102cc
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4216a0
add esi, 0x31c
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x4102ef
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4216b8
add esi, 0x320
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x410329
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4216cc
add esi, 0x324
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x410360
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4216e0
add esi, 0x328
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x4103e1
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421704
add esi, 0x32c
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x4103e6
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421718
add esi, 0x330
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x410408
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421730
add esi, 0x334
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x41042a
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421748
add esi, 0x338
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x410450
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421760
add esi, 0x33c
call fcn.0040f6f8
add esp, 0xc
push esi
mov edx, 0x410476
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x630108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421778
add esi, 0x340
call fcn.0040f6f8
add esp, 0xc
mov edx, 0x4104a0
push esi
mov ecx, eax
call fcn.0040500a
pop ecx
pop ecx
mov byte [ebp - 4], 0xb
push ebx
push 1
lea ecx, [ebp - 0x58]
call fcn.004048f0
mov byte [ebp - 4], 4
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.004048f0
or dword [ebp - 4], 0xffffffff
mov eax, edi
lea esp, [ebp - 0x64]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 0x10