Function at 0x4104a8
Capabilities:
Get common file path

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov ebx, eax
mov esi, 0x491d7c
mov eax, esi
mov edx, 0x1e1c
call fcn.00405a9c
mov byte [esi + 0x188c], bl
mov byte [esi + 0x189d], 0xa
mov byte [esi + 0x189e], 1
mov byte [esi + 0x18cb], 1
mov byte [esi + 0x189f], 2
mov byte [esi + 0x18a5], 3
mov byte [esi + 0x18ce], 1
mov byte [esi + 0x18b4], 1
mov byte [esi + 0x18bc], 1
mov byte [esi + 0x18be], 1
mov byte [esi + 0x18f5], 1
mov byte [esi + 0x18e2], 1
mov byte [esi + 0x18e8], 6
mov byte [esi + 0x18a8], 2
mov byte [esi + 0x1885], 1
mov byte [esi + 0x189c], 0x3f
mov byte [esi + 0x18a0], 0x10
mov dword [esi + 0x17b0], 0x200
mov dword [esi + 0x17a8], 0x64
mov byte [esi + 0x18b0], 2
mov byte [esi + 0x18ab], 8
mov byte [esi + 0x1880], 3
mov byte [esi + 0x1881], 3
mov byte [esi + 0x187d], 3
mov dword [esi + 0x17a4], 1
mov byte [esi + 0x18a2], 1
mov byte [esi + 0x1894], 1
mov dword [esi + 0x1790], 0xa00000
mov byte [esi + 0x18d7], 1
mov byte [esi + 0x18ca], 1
mov byte [esi + 0x18e1], 1
mov byte [esi + 0x18e9], 1
mov byte [esi + 0x192c], 1
mov byte [esi + 0x18e5], 1
mov byte [esi + 0x18ea], 1
mov byte [esi + 0x18bd], 1
mov word [esi + 0x1878], 0x28a
mov edx, dword [0x48d4e8]
mov edx, dword [edx]
lea eax, [esi + 0x1dfa]
mov cx, 0x20
call fcn.00405c70
push 0
call sub.user32.dll_GetDC
mov ebx, eax
push 0x68
push ebx
call sub.gdi32.dll_GetDeviceCaps
cmp eax, 0x100
sete byte [0x49481d]
cmp byte [0x49481d], 0
je 0x41062c
mov dword [esi + 0x1720], 0xffff
mov dword [esi + 0x1788], 0xffff00
mov byte [esi + 0x1897], 2
jmp 0x410647
mov dword [esi + 0x1720], 0xdefff4
mov dword [esi + 0x1788], 0xffeded
mov byte [esi + 0x1897], 1
push ebx
push 0
call sub.user32.dll_ReleaseDC
mov dword [esi + 0x1798], 0xe90000
mov byte [esi + 0x192f], 1
mov al, byte [0x49481d]
mov byte [esi + 0x18c5], al
mov dword [esi + 0x181c], 0x64
mov dword [esi + 0x1820], 0x64
mov dword [esi + 0x1824], 0x96
mov dword [esi + 0x1828], 0x12c
cmp byte [0x4947fc], 0
je 0x4106b2
mov dword [esi + 0x17c4], 0x12
mov dword [esi + 0x17cc], 0xaa
jmp 0x4106c6
mov dword [esi + 0x17c4], 0x1e
mov dword [esi + 0x17cc], 0x9e
cmp byte [0x49483a], 2
jbe 0x4106db
mov dword [esi + 0x17c8], 0x22a
jmp 0x4106e9
mov eax, dword [0x4948d4]
sub eax, 0x54
mov dword [esi + 0x17c8], eax
mov byte [esi + 0x18ee], 1
cmp byte [0x49483a], 2
jbe 0x410707
mov byte [esi + 0x193c], 1
mov byte [esi + 0x193d], 1
mov eax, dword [0x4948d0]
sar eax, 1
jns 0x410713
adc eax, 0
sub eax, 0x5a
mov dword [esi + 0x17d4], eax
mov eax, dword [0x4948d4]
sar eax, 1
jns 0x410728
adc eax, 0
sub eax, 0x1e
mov dword [esi + 0x17d8], eax
mov edx, dword [esi + 0x17d4]
add edx, 0xb4
xor eax, eax
mov al, byte [0x4947fc]
add edx, eax
mov dword [esi + 0x17dc], edx
mov edx, dword [esi + 0x17d8]
add edx, 0x31
shl eax, 2
add edx, eax
xor eax, eax
mov al, byte [0x49483d]
add eax, eax
add edx, eax
mov dword [esi + 0x17e0], edx
mov byte [esi + 0x190f], 1
mov byte [esi + 0x1910], 1
mov byte [esi + 0x1912], 1
mov byte [esi + 0x1914], 1
mov byte [esi + 0x1932], 1
mov byte [esi + 0x1933], 1
cmp byte [0x49483a], 3
jae 0x4107a5
mov byte [esi + 0x193b], 1
mov byte [esi + 0x1939], 1
cmp byte [0x49483a], 3
jae 0x4107bc
mov byte [esi + 0x193a], 1
cmp byte [0x49483a], 2
jbe 0x4107cc
mov byte [esi + 0x193c], 1
mov word [esi + 0x17b8], 0x9e
mov word [esi + 0x17ba], 0xc3
xor eax, eax
mov al, byte [0x494830]
add eax, 2
mov dword [esi + 0x17f8], eax
mov eax, dword [0x4948d0]
mov dword [esi + 0x17fc], eax
mov eax, dword [0x4948d0]
sub eax, 0xbe
mov dword [esi + 0x17f4], eax
xor eax, eax
mov al, byte [0x49482e]
mov edx, dword [0x4948d4]
sub edx, eax
xor eax, eax
mov al, byte [0x494838]
sub edx, eax
xor eax, eax
mov al, byte [0x494830]
sub edx, eax
sub edx, 0x1e
mov dword [esi + 0x1800], edx
mov byte [esi + 0x18ab], 8
cmp byte [0x49483a], 6
jae 0x41084e
mov word [0x4948b4], 0x10
jmp 0x410857
mov word [0x4948b4], 0x20
lea eax, [esi + 0x100]
push eax
push 0xff
call sub.kernel32.dll_GetTempPathA
lea eax, [esi + 0x100]
call fcn.0040fb40
mov edx, eax
lea eax, [esi + 0x200]
call fcn.00405c48
mov byte [esi + 0x300], 0x2e
mov edx, dword [0x48dae4]
mov edx, dword [edx]
lea eax, [esi + 0x194b]
call fcn.00405c48
lea eax, [esi + 0x200]
call fcn.00405bdc
cmp eax, 0x11
jge 0x4108bd
lea edx, [esi + 0x200]
lea eax, [esi + 0x400]
call fcn.00405c48
jmp 0x4108d9
xor eax, eax
mov al, byte [esi + 0x188c]
mov edx, dword [0x48d9b8]
mov edx, dword [edx + eax*4]
lea eax, [esi + 0x400]
call fcn.00405c48
lea eax, [esi + 0x400]
call fcn.0040fb68
mov word [esi + 0x19cc], 0x200
mov dword [esi + 0x19d8], 0xf4240
mov al, byte [0x49481d]
add al, 2
mov byte [esi + 0x187e], al
cmp byte [0x49481d], 0
jne 0x41091d
cmp byte [0x49480a], 0
jne 0x41091d
mov byte [esi + 0x187f], 4
mov byte [esi + 0x1931], 0
mov dword [esi + 0x1770], 1
mov edx, 0x410bc8
lea eax, [esi + 0xa30]
call fcn.00405c48
mov byte [esi + 0x188b], 2
mov word [esi + 0x1834], 0xffff
mov word [esi + 0x1836], 0xffff
mov byte [esi + 0x18d5], 1
mov al, byte [0x49483a]
add al, 4
cmp byte [0x4947fc], 0
je 0x410977
cmp byte [0x49483a], 2
je 0x41097b
xor edx, edx
jmp 0x41097d
mov dl, 1
sub al, dl
mov byte [esi + 0x1899], al
mov edi, 0xf
lea eax, [esi + 0x18f8]
mov byte [eax], 1
inc eax
dec edi
jne 0x410990
mov byte [esi + 0x188d], 2
mov byte [esi + 0x18d6], 1
mov word [esi + 0x183a], 0x19
mov word [esi + 0x1872], 0x14
mov word [esi + 0x1876], 0x14
mov edi, 9
lea eax, [esi + 0x1724]
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
add eax, 8
dec edi
jne 0x4109cb
mov byte [esi + 0x1908], 1
mov byte [esi + 0x1909], 1
mov byte [esi + 0x190a], 1
mov byte [esi + 0x190b], 1
mov byte [esi + 0x190c], 1
mov byte [esi + 0x190d], 1
mov byte [esi + 0x190e], 1
mov edi, 3
lea eax, [esi + 0x1940]
mov byte [eax], 1
mov byte [eax + 3], 1
inc eax
dec edi
jne 0x410a1a
mov byte [esi + 0x188f], 2
mov byte [esi + 0x1893], 6
xor edi, edi
mov ebp, 0x48c0b4
lea ebx, [esi + 0x183c]
mov dword [esp], 0x48c0bc
mov dword [esp + 4], 0x48c0c4
xor eax, eax
mov al, byte [ebp]
mov word [ebx], ax
mov eax, dword [esp]
movzx eax, byte [eax]
mov word [ebx + 0xe], ax
cmp byte [0x4947fc], 0
je 0x410a90
fild word [ebx]
fld xword [0x410bd0]
fmulp st(1)
call fcn.004028a0
mov word [ebx], ax
fild word [ebx + 0xe]
fld xword [0x410bd0]
fmulp st(1)
call fcn.004028a0
mov word [ebx + 0xe], ax
cmp edi, 4
jge 0x410abd
mov eax, dword [esp + 4]
mov ax, word [eax]
mov word [ebx + 0x28], ax
cmp byte [0x4947fc], 0
je 0x410abd
fild word [ebx + 0x28]
fld xword [0x410bd0]
fmulp st(1)
call fcn.004028a0
mov word [ebx + 0x28], ax
inc edi
add dword [esp + 4], 2
inc dword [esp]
add ebx, 2
inc ebp
cmp edi, 7
jne 0x410a4f
cmp byte [esi + 0x188c], 1
jne 0x410aef
add word [esi + 0x1840], 4
inc word [esi + 0x1842]
sub word [esi + 0x1846], 5
mov word [esi + 0x1870], 1
mov edx, 0x410bdc
lea eax, [esi + 0x500]
call fcn.00405c48
lea edx, [esi + 0x500]
lea eax, [esi + 0x1c7a]
call fcn.00405c48
mov al, byte [0x4947fc]
mov byte [esi + 0x187a], al
cmp byte [0x49483a], 2
jbe 0x410b54
cmp byte [0x4947fc], 0
je 0x410b54
mov word [esi + 0x186c], 9
mov word [esi + 0x186e], 0x10
mov dword [esi + 0x16a0], 0xfffffff0
jmp 0x410b70
mov word [esi + 0x186c], 8
mov word [esi + 0x186e], 0xd
mov dword [esi + 0x16a0], 0xfffffff3
cmp byte [0x49480b], 0
je 0x410b8b
mov edx, 0x410be8
lea eax, [esi + 0x16bc]
call fcn.00405c48
jmp 0x410b9c
mov edx, dword [0x48da64]
lea eax, [esi + 0x16bc]
call fcn.00405c48
mov dword [esi + 0x16b0], 0x190
mov byte [esi + 0x16bb], 0x31
cmp byte [0x49480b], 0
je 0x410bc1
lea eax, [esi + 0x16a0]
call fcn.00410424
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret