Function at 0x140002f70
Capabilities:
Get common file path

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov dword [rsp + 8], ecx
sub rsp, 0x88
mov dword [rsp + 0x3c], 0x9b3d
mov dword [rsp + 0x38], 0x876f
mov dword [rsp + 0x34], 0x1459
mov dword [rsp + 0x30], 0x38ea
mov eax, dword [0x140037b08]
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x40], 0xa90c
je 0x14000343e
cmp dword [rsp + 0x40], 0xfb8f
je 0x1400031a3
cmp dword [rsp + 0x40], 0x1359d
je 0x140002fe7
cmp dword [rsp + 0x40], 0x13e2a
je 0x14000389e
jmp 0x1400039ab
imul eax, dword [rsp + 0x3c], 0x5d65
xor edx, edx
div dword [rsp + 0x98]
mov eax, edx
imul eax, dword [rsp + 0x98]
xor edx, edx
div dword [rsp + 0x34]
mov ecx, dword [rsp + 0x98]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x90]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x4c], eax
xor edx, edx
mov eax, dword [rsp + 0x38]
mov ecx, 0xda12
div ecx
mov ecx, dword [rsp + 0x34]
add ecx, eax
mov eax, ecx
movzx ecx, al
mov eax, dword [rsp + 0x4c]
shl eax, cl
mov ecx, dword [rsp + 0x98]
and ecx, eax
mov eax, ecx
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x44], eax
jmp 0x14000306c
mov eax, dword [rsp + 0x44]
dec eax
mov dword [rsp + 0x44], eax
mov eax, dword [0x140037bc8]
cmp dword [rsp + 0x44], eax
jle 0x14000319e
mov eax, dword [rsp + 0x3c]
imul eax, dword [rsp + 0x90]
add eax, dword [rsp + 0xa0]
mov dword [rsp + 0x50], eax
xor edx, edx
mov eax, dword [rsp + 0x34]
div dword [rsp + 0x90]
mov eax, edx
movzx ecx, al
mov eax, dword [rsp + 0x50]
shl eax, cl
mov dword [0x140037ae4], eax
mov eax, dword [rsp + 0x38]
imul eax, dword [rsp + 0x98]
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x38]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
xor edx, edx
mov eax, dword [rsp + 0x38]
div dword [rsp + 0x30]
mov ecx, dword [rsp + 0x30]
sub ecx, eax
mov eax, ecx
movzx ecx, al
mov eax, dword [rsp + 0x90]
shl eax, cl
mov dword [rsp + 0x30], eax
mov dword [0x140037b04], 0x1589f
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0x20], eax
mov r9d, dword [rsp + 0x30]
mov r8d, dword [rsp + 0xa0]
mov edx, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x38]
call fcn.1400025f0
lea rcx, str.colobus_insecurities_wrath_sheeting_graphics
call fcn.1400011a0
xor edx, edx
mov eax, dword [rsp + 0x90]
div dword [rsp + 0x34]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x34]
imul eax, dword [rsp + 0x38]
movzx ecx, al
mov eax, dword [rsp + 0x30]
shr eax, cl
mov dword [0x140037bc4], eax
mov eax, dword [rsp + 0x38]
add eax, 0x5302
movzx ecx, al
mov eax, dword [rsp + 0x3c]
shr eax, cl
mov dword [rsp + 0x54], eax
xor edx, edx
mov eax, 0x13bbb
div dword [rsp + 0x30]
mov eax, edx
sub eax, dword [rsp + 0x30]
movzx ecx, al
mov eax, dword [rsp + 0x54]
shl eax, cl
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0xa0], eax
jmp 0x140003062
jmp 0x140003b0f
mov edx, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov dword [rsp + 0x90], eax
xor edx, edx
mov eax, dword [rsp + 0x38]
div dword [rsp + 0x3c]
xor edx, edx
div dword [rsp + 0xa0]
mov eax, edx
mov ecx, dword [rsp + 0x3c]
add ecx, eax
mov eax, ecx
and eax, 0x10351
mov dword [rsp + 0x30], eax
mov ecx, dword [rsp + 0x38]
call fcn.140001210
mov eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x90]
lea eax, [rax + rcx - 0x1c8f6]
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x30], eax
mov eax, dword [0x140037b08]
cmp dword [rsp + 0x30], eax
jae 0x140003272
mov eax, dword [rsp + 0x90]
cdq
mov ecx, 0x42de
idiv ecx
mov eax, edx
mov ecx, dword [rsp + 0x38]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x34]
mov edx, dword [rsp + 0x90]
add edx, ecx
mov ecx, edx
shl eax, cl
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0xa0]
sub ecx, eax
mov eax, ecx
add eax, dword [rsp + 0x30]
sub eax, dword [rsp + 0x34]
add eax, dword [rsp + 0xa0]
mov dword [rsp + 0x34], eax
jmp 0x140003404
mov eax, dword [rsp + 0xa0]
cmp dword [rsp + 0x34], eax
jb 0x140003299
mov edx, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x3c]
call fcn.1400073f0
cmp eax, dword [rsp + 0x38]
je 0x140003404
mov edx, dword [rsp + 0x30]
mov ecx, dword [rsp + 0xa0]
call fcn.1400012c0
mov eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0xa0]
add ecx, eax
mov eax, ecx
sub eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0x90]
and ecx, eax
mov eax, ecx
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x98]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
xor edx, edx
mov eax, dword [rsp + 0x3c]
div dword [rsp + 0x38]
mov ecx, dword [rsp + 0x58]
and ecx, eax
mov eax, ecx
mov dword [0x140037bc8], eax
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x34]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x34]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x3c], eax
xor edx, edx
mov eax, dword [rsp + 0x38]
div dword [rsp + 0xa0]
mov dword [rsp + 0x98], eax
mov r8d, dword [rsp + 0x90]
mov edx, dword [rsp + 0x34]
mov ecx, dword [rsp + 0xa0]
call qword [sym.imp.GDI32.dll_GetRandomRgn]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x3c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
xor edx, edx
mov eax, dword [rsp + 0x34]
div dword [rsp + 0x90]
mov eax, edx
mov ecx, dword [rsp + 0x3c]
shr eax, cl
mov ecx, dword [rsp + 0x5c]
or ecx, eax
mov eax, ecx
mov dword [rsp + 0xa0], eax
xor edx, edx
mov eax, dword [rsp + 0x38]
div dword [rsp + 0x34]
mov eax, edx
xor edx, edx
div dword [rsp + 0x34]
mov eax, edx
add eax, dword [rsp + 0x98]
add eax, dword [rsp + 0x38]
mov dword [rsp + 0x3c], eax
xor edx, edx
mov eax, dword [rsp + 0x90]
div dword [rsp + 0x30]
mov eax, edx
mov ecx, dword [rsp + 0x38]
lea eax, [rcx + rax - 0x17984]
sub eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x34]
or ecx, eax
mov eax, ecx
mov dword [0x140037c2c], eax
xor edx, edx
mov eax, dword [rsp + 0xa0]
mov ecx, 0x1556
div ecx
mov eax, edx
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x38]
imul eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x98]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x30]
cmp dword [0x140037bc8], eax
ja 0x14000320b
mov eax, dword [rsp + 0x34]
imul eax, dword [rsp + 0x90]
or eax, dword [rsp + 0x98]
mov dword [rsp + 0x34], eax
mov eax, dword [0x140037bc4]
cmp dword [rsp + 0xa0], eax
je 0x1400031a3
mov eax, dword [0x140037bc8]
cmp dword [rsp + 0x30], eax
je 0x14000359d
mov eax, dword [0x140037b00]
cmp dword [rsp + 0x90], eax
jg 0x14000359d
mov edx, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x38]
call fcn.140003f90
cmp dword [0x140037bc4], eax
je 0x1400034c0
mov r9d, dword [rsp + 0xa0]
mov r8d, dword [rsp + 0x30]
mov edx, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x3c]
call fcn.140007540
cmp dword [0x140037ae4], eax
jne 0x1400034c0
mov ecx, dword [rsp + 0x98]
call qword [sym.imp.USER32.dll_GetWindowTextLengthA]
cmp dword [0x140037c2c], eax
jbe 0x1400034c0
mov eax, dword [0x140037bc4]
cmp dword [rsp + 0x98], eax
jb 0x140003598
mov eax, dword [rsp + 0x98]
movzx ecx, al
mov eax, dword [rsp + 0x38]
shr eax, cl
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x98]
imul eax, dword [rsp + 0x34]
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0x34]
imul eax, dword [rsp + 0x3c]
mov dword [rsp + 0x90], eax
xor edx, edx
mov eax, dword [rsp + 0x98]
div dword [rsp + 0x90]
mov eax, edx
imul eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x34]
or ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x38]
mov edx, dword [rsp + 0x90]
sub edx, ecx
mov ecx, edx
or eax, ecx
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x20], eax
mov r9d, dword [rsp + 0x34]
mov r8d, dword [rsp + 0x30]
mov edx, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0x3c]
call fcn.1400075b0
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], 0x156e8
mov eax, dword [rsp + 0x98]
imul eax, dword [rsp + 0x34]
xor edx, edx
div dword [rsp + 0x30]
mov eax, edx
mov dword [rsp + 0x60], eax
xor edx, edx
mov eax, dword [rsp + 0x34]
div dword [rsp + 0xa0]
mov eax, edx
mov ecx, dword [rsp + 0x38]
sub ecx, eax
mov eax, ecx
movzx ecx, al
mov eax, dword [rsp + 0x60]
shl eax, cl
mov dword [rsp + 0x34], eax
jmp 0x140003899
mov eax, dword [0x140037b00]
cmp dword [rsp + 0x98], eax
ja 0x1400036bb
mov edx, dword [rsp + 0x98]
mov ecx, dword [rsp + 0x30]
call fcn.1400022d0
mov eax, 0x121b4
sub eax, dword [rsp + 0x34]
sub eax, dword [rsp + 0x90]
movzx ecx, al
mov eax, dword [rsp + 0x34]
shr eax, cl
mov ecx, dword [rsp + 0x90]
and ecx, eax
mov eax, ecx
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x98]
sub eax, 0x17f51
mov dword [rsp + 0x98], eax
call fcn.140004b10
mov dword [rsp + 0x98], eax
xor edx, edx
mov eax, dword [rsp + 0x3c]
div dword [rsp + 0x30]
sub eax, dword [rsp + 0xa0]
mov dword [rsp + 0x64], eax
xor edx, edx
mov eax, dword [rsp + 0xa0]
div dword [rsp + 0xa0]
mov ecx, dword [rsp + 0x64]
sub ecx, eax
mov eax, ecx
sub eax, dword [rsp + 0xa0]
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x3c]
imul eax, dword [rsp + 0x34]
add eax, dword [rsp + 0x90]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0xa0]
sub ecx, eax
mov eax, ecx
and eax, 0x5f97
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x3c]
imul eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0xa0]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x68], eax
xor edx, edx
mov eax, dword [rsp + 0x38]
div dword [rsp + 0x98]
mov ecx, dword [rsp + 0x68]
sub ecx, eax
mov eax, ecx
mov dword [0x140037c2c], eax
mov eax, dword [0x140037c2c]
cmp dword [rsp + 0xa0], eax
je 0x140003645
jmp 0x140003899
mov edx, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x38]
call fcn.1400022d0
mov eax, dword [rsp + 0x98]
imul eax, dword [rsp + 0x30]
imul eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x98]
add ecx, eax
mov eax, ecx
and eax, dword [rsp + 0x3c]
mov dword [rsp + 0x30], eax
lea rcx, str.fencepost_acrid_verbosity_IgO0fhJv_routinely_sZzvC_5Ga_apprise
call fcn.1400011a0
mov eax, dword [rsp + 0x3c]
mov dword [0x140037b00], eax
mov eax, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x3c]
or ecx, eax
mov eax, ecx
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0x30], eax
imul eax, dword [rsp + 0x90], 0xe3a5
imul eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x38]
imul ecx, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x48], eax
jmp 0x140003753
mov eax, dword [rsp + 0x48]
dec eax
mov dword [rsp + 0x48], eax
mov eax, dword [0x140037c2c]
cmp dword [rsp + 0x48], eax
jl 0x140003868
mov eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0x90]
add ecx, eax
mov eax, ecx
sub eax, dword [rsp + 0x98]
mov ecx, dword [rsp + 0x34]
shr eax, cl
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x34]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x98], eax
mov ecx, dword [rsp + 0x34]
call qword [sym.imp.GDI32.dll_CreateBrushIndirect]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x30]
sub ecx, eax
mov eax, ecx
sub eax, dword [rsp + 0x90]
shl eax, 0x4e
mov dword [rsp + 0x30], eax
xor edx, edx
mov eax, 0x16c0
div dword [rsp + 0x38]
mov eax, edx
sub eax, dword [rsp + 0x90]
sub eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0x3c]
imul ecx, dword [rsp + 0x3c]
sub eax, ecx
mov dword [rsp + 0x30], eax
mov ecx, dword [rsp + 0xa0]
call qword [sym.imp.USER32.dll_GetWindowTextLengthA]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x3c]
imul eax, dword [rsp + 0x30]
sub eax, dword [rsp + 0x3c]
mov dword [0x140037c2c], eax
mov eax, dword [rsp + 0x34]
add eax, 0x89284ff4
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x38]
add eax, 0x692
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0x30]
or ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x98]
add ecx, 0xe1aa
and ecx, dword [rsp + 0x38]
or eax, ecx
mov dword [rsp + 0x90], eax
jmp 0x140003749
mov eax, dword [rsp + 0xa0]
cmp dword [0x140037b04], eax
jb 0x140003702
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0x90], eax
mov eax, dword [0x140037bc8]
cmp dword [rsp + 0x3c], eax
jbe 0x1400036ec
jmp 0x140003b0f
mov eax, dword [rsp + 0xa0]
imul eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0xa0]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x38]
add ecx, eax
mov eax, ecx
add eax, dword [rsp + 0x38]
mov dword [rsp + 0x6c], eax
xor edx, edx
mov eax, dword [rsp + 0x30]
div dword [rsp + 0x38]
mov ecx, dword [rsp + 0x6c]
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x30]
shr eax, cl
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0x98]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x70], eax
xor edx, edx
mov eax, dword [rsp + 0x90]
div dword [rsp + 0x3c]
imul eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0x70]
or ecx, eax
mov eax, ecx
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0x98]
mov dword [0x140037bc4], eax
mov eax, dword [rsp + 0xa0]
sub eax, 0x984b
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0xa0]
sub ecx, eax
mov eax, ecx
imul ecx, dword [rsp + 0xa0], 0x2aa3
imul ecx, dword [rsp + 0x98]
sub eax, ecx
mov dword [rsp + 0x34], eax
imul eax, dword [rsp + 0x98], 0x173e
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x30]
sub ecx, eax
mov eax, ecx
sub eax, dword [rsp + 0xa0]
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0xa0]
add eax, 0xea7
mov dword [0x140037bc4], eax
jmp 0x140003b0f
imul eax, dword [rsp + 0x90], 0x141cb
add eax, dword [rsp + 0xa0]
sub eax, dword [rsp + 0x38]
add eax, dword [rsp + 0x38]
add eax, dword [rsp + 0x30]
mov dword [rsp + 0x98], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x38]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0xa0]
lea eax, [rax + rcx + 0x507d]
add eax, dword [rsp + 0x34]
mov dword [rsp + 0x30], eax
mov edx, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x34]
call fcn.1400022d0
xor edx, edx
mov eax, dword [rsp + 0x34]
div dword [rsp + 0x90]
mov eax, edx
add eax, dword [rsp + 0x98]
add eax, dword [rsp + 0x90]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x38]
imul eax, dword [rsp + 0x38]
imul ecx, dword [rsp + 0x90], 0x61e0
sub eax, ecx
mov dword [rsp + 0xa0], eax
xor edx, edx
mov eax, dword [rsp + 0x30]
div dword [rsp + 0x38]
mov eax, edx
sub eax, 0x4a65
mov dword [rsp + 0x34], eax
xor edx, edx
mov eax, dword [rsp + 0x30]
div dword [rsp + 0x30]
imul eax, dword [rsp + 0x34]
xor edx, edx
div dword [rsp + 0xa0]
mov eax, edx
add eax, dword [rsp + 0x98]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0x38]
sub ecx, eax
mov eax, ecx
add eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x38]
imul ecx, dword [rsp + 0x90]
sub eax, ecx
and eax, dword [rsp + 0xa0]
mov dword [rsp + 0x3c], eax
xor edx, edx
mov ecx, dword [rsp + 0x90]
call qword [sym.imp.ole32.dll_PropStgNameToFmtId]
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x90]
imul eax, dword [rsp + 0x3c]
sub eax, dword [rsp + 0x34]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0xa0], eax
mov eax, dword [rsp + 0x90]
imul eax, dword [rsp + 0x30]
xor edx, edx
mov ecx, 0x39ee
div ecx
add eax, dword [rsp + 0x38]
mov dword [0x140037b00], eax
mov eax, dword [rsp + 0x90]
add rsp, 0x88
ret