Function at 0x10029390
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008c368
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push esi
push edi
mov eax, dword [0x10126b80]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp - 0x1c]
mov al, 0xfc
mov esi, dword [ebp - 0x1c]
sub al, bl
sub esi, dword [0x1011800c]
movzx ecx, al
sub esi, ebx
movzx eax, word [0x10118008]
push 0x10127628
push 0x545
lea eax, [eax + eax*8]
sub ecx, eax
sub ecx, esi
add ecx, dword [0x1011800c]
mov al, cl
sub al, bl
sub al, 4
mov byte [0x10118004], al
mov eax, esi
imul eax, ebx
imul edx, eax, 0x14a08
imul eax, ecx, 0x55
mov dword [0x1011800c], edx
sub esi, eax
movzx eax, si
lea eax, [eax + eax*8]
mov dword [ebp - 0x1c], eax
sub eax, edx
mov dword [0x10118054], eax
sub eax, edx
add eax, 0xfffffffc
mov dword [ebp - 0x18], eax
mov word [0x10118008], ax
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov ebx, eax
mov dword [ebp - 0x14], ebx
push 0
lea ecx, [ebp - 0x3c]
mov dword [ebp - 4], 0
mov byte [ebp - 0x44], 0
call fcn.100066f0
mov al, byte [0x10118054]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x1c]
sub al, bl
sub esi, dword [0x1011800c]
sub al, 4
movzx ecx, al
sub esi, ebx
movzx eax, word [0x10118008]
movq qword [ebp - 0x2c], xmm0
movsd xmm0, qword [0x100f9560]
movsd qword [ebp - 0x24], xmm0
lea eax, [eax + eax*8]
mov edi, dword [ebp - 0x24]
sub ecx, eax
mov dword [ebp - 4], 1
sub ecx, esi
mov byte [ebp - 0x34], 7
add ecx, dword [0x1011800c]
mov al, cl
sub al, bl
sub al, 4
mov byte [0x10118004], al
mov eax, esi
imul eax, ebx
imul edx, eax, 0x14a08
imul eax, ecx, 0x55
mov dword [0x1011800c], edx
sub esi, eax
movzx eax, si
lea eax, [eax + eax*8]
sub eax, edx
mov dword [0x10118054], eax
sub eax, edx
add eax, 0xfffffffc
mov word [0x10118008], ax
movzx eax, ax
mov dword [section..data], eax
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], esi
push 0x100f55b4
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 2
call fcn.10001950
mov edx, eax
mov byte [ebp - 4], 1
mov bl, byte [edx]
mov byte [edx], 7
mov ecx, dword [edx + 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x2c]
push ebx
mov byte [ebp - 0x34], bl
mov dword [edx + 8], edi
mov dword [edx + 0xc], esi
mov dword [ebp - 0x28], eax
call fcn.10027ba0
push 0
push 6
push 8
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
push 0x118
mov dword [0x101c8bdc], eax
call dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
mov ecx, dword [ebp - 0x18]
xorps xmm0, xmm0
mov ebx, dword [ebp - 0x14]
add cl, 0x5a
add cl, byte [ebp - 0x1c]
mov esi, dword [ebp - 0x1c]
mov al, cl
sub esi, dword [0x1011800c]
shl cl, 3
sub esi, ebx
add al, cl
movq qword [ebp - 0x2c], xmm0
sub al, bl
mov byte [ebp - 0x34], 3
sub al, byte [section..data]
sub al, 4
movzx ecx, al
movzx eax, word [0x10118008]
push 0x1c
lea eax, [eax + eax*8]
sub ecx, eax
sub ecx, esi
add ecx, dword [0x1011800c]
mov al, cl
sub al, bl
sub al, 4
mov byte [0x10118004], al
mov eax, esi
imul eax, ebx
imul edx, eax, 0x14a08
imul eax, ecx, 0x55
mov dword [0x1011800c], edx
sub esi, eax
movzx eax, si
lea eax, [eax + eax*8]
sub eax, edx
mov dword [0x10118054], eax
sub eax, edx
add eax, 0xfffffffc
mov word [0x10118008], ax
movzx eax, ax
mov dword [section..data], eax
call fcn.100021a0
mov edi, eax
add esp, 4
lea eax, [ebp - 0xd]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 3
push 0x100f55c4
mov ecx, edi
call fcn.10005df0
mov dword [ebp - 0x2c], edi
push 0x100f55bc
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.10001950
mov esi, eax
mov eax, dword [ebp - 0x28]
mov bl, byte [esi]
mov byte [esi], 3
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x2c]
push ebx
mov byte [ebp - 0x34], bl
mov dword [esi + 8], edi
mov dword [esi + 0xc], eax
mov dword [ebp - 0x28], edx
call fcn.10027ba0
xorps xmm0, xmm0
mov byte [ebp - 0x34], 5
movq qword [ebp - 0x2c], xmm0
xor esi, esi
mov dword [ebp - 0x2c], 0xa25
mov dword [ebp - 0x28], esi
push 0x100f55cc
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 5
call fcn.10001950
mov bl, byte [eax]
mov byte [eax], 5
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x2c]
push ebx
mov byte [ebp - 0x34], bl
mov dword [eax + 8], 0xa25
mov dword [eax + 0xc], esi
mov dword [ebp - 0x28], edx
call fcn.10027ba0
mov ecx, dword [ebp - 0x14]
mov ebx, dword [0x1011800c]
movzx eax, cl
mov cl, bl
imul eax, eax, 0x2a
neg cl
movzx edx, bx
sub cl, al
mov ax, word [0x10118050]
add ax, word [0x10118008]
add byte [0x10118004], cl
mov cx, dx
movzx eax, ax
imul eax, eax, 0x55
imul edx, edx, 0x1b90
sub cx, ax
mov eax, 0x1d88
add cx, bx
add cx, ax
mov eax, 0xaa
movzx ecx, cx
imul ecx, eax
imul eax, dword [ebp - 0x14], 0xff
sub dx, cx
imul ecx, dword [ebp - 0x14], 0xfffffffd
add dx, ax
mov eax, 0x279
add dx, bx
add dx, ax
imul eax, ebx, 0x53
add dx, dx
mov word [0x10118008], dx
movzx esi, dx
sub ecx, eax
sub ecx, 4
mov dword [0x10118050], ecx
add esi, 0xffffffa2
mov eax, esi
sub eax, dword [ebp - 0x14]
sub eax, 4
push eax
call fcn.10028830
push ebx
call fcn.10028830
mov dword [section..data], eax
mov eax, ebx
sub eax, esi
add ebx, 0xffffffa6
sub eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x14]
imul eax, eax, 0x14a08
add eax, ebx
mov ebx, dword [ebp - 0x14]
push ebx
mov dword [0x10118054], eax
call fcn.10007ea0
movzx eax, byte [0x10118004]
lea ecx, [ebp - 0x3c]
add esp, 0xc
sub ebx, eax
sub ebx, dword [0x10118054]
mov dword [0x10118054], ebx
push dword [ebp - 0x44]
call fcn.10027ba0
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc