Function at 0x410038
Capabilities:
Get common file path

Disassembly:
mov eax, 0x41b36c
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 0x41e0a4
call fcn.0040f024
pop ecx
pop ecx
push eax
call dword [0x6244d0]
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.0040fba5
add esp, 0x18
mov esi, eax
mov byte [ebp - 4], 6
cmp ebx, esi
je 0x410139
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.0040eb68
mov byte [ebp - 4], 7
push eax
lea ecx, [edi + 0x28]
call fcn.00410cc5
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 0x41017a
mov eax, ebx
jmp 0x410181
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.0040eb68
mov byte [ebp - 4], 8
push eax
lea ecx, [edi + 0x58]
call fcn.00410cc5
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 0x624108
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
test eax, eax
jne 0x410667
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.00411b99
mov byte [ebp - 4], 0xb
push ebx
push 1
lea ecx, [ebp - 0x40]
call fcn.004048f0
push 0x4215dc
lea ecx, [ebp - 0x58]
call fcn.004047e0
mov byte [ebp - 4], 0xc
jmp 0x41025e
push ecx
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x28]
call fcn.00410d99
lea ecx, [esi - 1]
cmp eax, ecx
jne 0x410265
cmp dword [ebp - 0x14], 8
mov ecx, dword [ebp - 0x28]
mov eax, ecx
jae 0x410238
lea eax, [ebp - 0x28]
lea eax, [eax + esi*2]
add eax, 0xfffffffe
cmp dword [ebp - 0x14], 8
jae 0x410247
lea ecx, [ebp - 0x28]
test eax, eax
jne 0x41024f
mov eax, ebx
jmp 0x410253
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 0x410216
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 [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4215e4
add esi, 0x2f0
call fcn.0040f266
add esp, 4
mov edx, 0x40fc4f
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4215fc
add esi, 0x2f4
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fc60
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421614
add esi, 0x2f8
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fc71
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x42162c
add esi, 0x2fc
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fc91
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421644
add esi, 0x300
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fcb1
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421660
add esi, 0x304
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fd0d
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
add esi, 0x308
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x42167c
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fd69
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421698
add esi, 0x30c
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fdd0
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4216b4
add esi, 0x310
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fe37
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4216d0
add esi, 0x314
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fe37
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4216ec
add esi, 0x318
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fe3a
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421700
add esi, 0x31c
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fe5d
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421718
add esi, 0x320
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fe97
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x42172c
add esi, 0x324
call fcn.0040f266
add esp, 0xc
mov edx, 0x40fece
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421740
add esi, 0x328
call fcn.0040f266
add esp, 0xc
mov edx, 0x40ff4f
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421764
add esi, 0x32c
call fcn.0040f266
add esp, 0xc
mov edx, 0x40ff54
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421778
add esi, 0x330
call fcn.0040f266
add esp, 0xc
mov edx, 0x40ff76
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421790
add esi, 0x334
call fcn.0040f266
add esp, 0xc
mov edx, 0x40ff98
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4217a8
add esi, 0x338
call fcn.0040f266
add esp, 0xc
mov edx, 0x40ffbe
push esi
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4217c0
add esi, 0x33c
call fcn.0040f266
add esp, 0xc
push esi
mov edx, 0x40ffe4
mov ecx, eax
call fcn.0040500a
mov esi, dword [0x624108]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4217d8
add esi, 0x340
call fcn.0040f266
add esp, 0xc
mov edx, 0x41000e
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