Function at 0x10033680
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100deea1
mov eax, dword fs:[0]
push eax
sub esp, 0x458
mov eax, dword [0x101279d8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi]
mov ebx, dword [eax - 0xc]
xor eax, eax
mov dword [ebp - 0x450], eax
mov dword [ebp - 4], eax
cmp ebx, eax
je 0x100339a2
mov eax, ebx
and eax, 3
mov dword [ebp - 0x44c], eax
cmp eax, 1
je 0x100339a2
push ebx
lea ecx, [ebp - 0x450]
call fcn.1000f800
test al, al
je 0x100339a2
mov eax, dword [esi]
mov edi, dword [ebp - 0x450]
lea esi, [eax + ebx*2]
mov ecx, edi
cmp eax, esi
jae 0x10033710
mov dl, byte [eax]
sub dl, 0x21
mov byte [ecx], dl
add eax, 2
inc ecx
cmp eax, esi
jb 0x10033701
mov ecx, ebx
and ecx, 0xfffffffc
jle 0x1003377b
lea edx, [ecx - 1]
shr edx, 2
lea esi, [edi + 1]
inc edx
mov eax, esi
mov dword [ebp - 0x448], edx
lea esp, [esp]
movzx edx, byte [eax - 1]
movzx ebx, byte [eax]
add dl, dl
add dl, dl
shr bl, 4
and bl, 3
or dl, bl
mov byte [esi - 1], dl
movzx edx, byte [eax + 1]
movzx ebx, byte [eax]
shr dl, 2
and dl, 0xf
shl bl, 4
or dl, bl
mov byte [esi], dl
movzx edx, byte [eax + 2]
movzx ebx, byte [eax + 1]
and dl, 0x3f
shl bl, 6
or dl, bl
mov byte [esi + 1], dl
add eax, 4
add esi, 3
dec dword [ebp - 0x448]
jne 0x10033730
lea eax, [ecx + ecx*2]
cdq
and edx, 3
lea esi, [edx + eax]
mov eax, dword [ebp - 0x44c]
sar esi, 2
cmp eax, 2
jne 0x100337ab
mov al, byte [ecx + edi + 1]
mov cl, byte [ecx + edi]
shr al, 4
add cl, cl
and al, 3
add cl, cl
or al, cl
mov byte [esi + edi], al
inc esi
jmp 0x100337e4
cmp eax, 3
jne 0x100337e4
mov bl, byte [ecx + edi]
movzx edx, byte [ecx + edi + 1]
lea eax, [ecx + edi + 1]
shr dl, 4
and dl, 3
add bl, bl
add bl, bl
or dl, bl
mov byte [esi + edi], dl
mov cl, byte [ecx + edi + 2]
movzx edx, byte [eax]
shr cl, 2
and cl, 0xf
shl dl, 4
or cl, dl
mov byte [esi + edi + 1], cl
add esi, 2
push str.GDI32.DLL
mov dword [ebp - 0x448], 0xffffffff
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x10033836
push str.AddFontMemResourceEx
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x10033822
lea ecx, [ebp - 0x448]
push ecx
push 0
push esi
push edi
call eax
mov dword [ebp - 0x448], eax
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp dword [ebp - 0x448], 0xffffffff
jne 0x10033995
lea edx, [ebp - 0x218]
push edx
xor ebx, ebx
push 0x104
mov dword [ebp - 0x448], ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov ecx, esi
xor eax, eax
sar ecx, 2
mov dword [ebp - 0x44c], eax
cmp ecx, 2
jl 0x10033879
mov edx, dword [edi + eax*4 + 4]
add ebx, dword [edi + eax*4]
add dword [ebp - 0x448], edx
add eax, 2
lea edx, [ecx - 1]
cmp eax, edx
jl 0x10033862
cmp eax, ecx
jge 0x10033886
mov eax, dword [edi + eax*4]
mov dword [ebp - 0x44c], eax
add ebx, dword [ebp - 0x448]
add dword [ebp - 0x44c], ebx
call fcn.10095170
xor ecx, ecx
xor ebx, ebx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x100338ae
push 0x80004005
call fcn.10001150
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x448], eax
mov ecx, dword [ebp - 0x44c]
push ecx
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x448]
push str._sfont_08x.ttf
push eax
mov byte [ebp - 4], 1
call fcn.10003590
lea ecx, [ebp - 0x444]
mov dword [ebp - 0x444], ebx
mov dword [ebp - 0x440], ebx
mov dword [ebp - 0x43c], ebx
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x430], ebx
mov ebx, dword [ebp - 0x448]
push ecx
push ebx
call fcn.10029000
add esp, 0x18
test eax, eax
jne 0x1003396e
lea ecx, [ebp - 0x464]
call fcn.1009e81f
push 0
push 0x9041
push ebx
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 2
call fcn.1009ec5e
test eax, eax
je 0x1003395f
push esi
push edi
lea ecx, [ebp - 0x464]
call fcn.1009e556
lea ecx, [ebp - 0x464]
call fcn.1009e7ba
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 1
call fcn.1009e91e
push ebx
call dword [sym.imp.GDI32.dll_AddFontResourceW]
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10033995
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
call fcn.1008e660
add esp, 4
mov al, 1
jmp 0x100339b3
mov ecx, dword [ebp - 0x450]
push ecx
call fcn.1008e660
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100a6f5d
mov esp, ebp
pop ebp
ret