Function at 0x110a9300
Capabilities:
Get common file path
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x111856a6
mov eax, dword fs:[0]
push eax
sub esp, 0x1d4
mov eax, dword [0x111ec774]
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 ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x148], ebx
xor edi, edi
call fcn.110d1930
lea ecx, [ebp - 0x168]
mov dword [ebp - 4], edi
call fcn.110d1930
lea ecx, [ebp - 0x1b0]
mov byte [ebp - 4], 1
call fcn.110d1930
lea ecx, [ebp - 0x194]
mov byte [ebp - 4], 2
mov dword [ebp - 0x13c], edi
call fcn.110d1930
mov eax, dword [esi]
mov edx, dword [eax + 0x58]
lea ecx, [ebp - 0x184]
push ecx
mov ecx, esi
mov byte [ebp - 4], 3
call edx
mov eax, 0xb4
cmp word [ebp - 0x184], ax
je 0x110a93e1
lea ecx, [ebp - 0x194]
mov byte [ebp - 4], 2
call fcn.110d0a10
lea ecx, [ebp - 0x1b0]
mov byte [ebp - 4], 1
call fcn.110d0a10
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0
call fcn.110d0a10
lea ecx, [ebp - 0x158]
mov dword [ebp - 4], 0xffffffff
call fcn.110d0a10
xor eax, eax
jmp 0x110aa023
mov edx, dword [esi]
mov edx, dword [edx + 0x60]
lea eax, [ebp - 0x171]
push eax
mov ecx, esi
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x60]
lea ecx, [ebp - 0x179]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x60]
lea ecx, [ebp - 0x135]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x60]
lea ecx, [ebp - 0x141]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0xa0]
lea ecx, [ebp - 0x1b8]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
lea ecx, [ebp - 0x158]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
lea ecx, [ebp - 0x168]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
lea ecx, [ebp - 0x1b0]
push ecx
mov ecx, eax
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x60]
lea ecx, [ebp - 0x13d]
push ecx
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x58]
lea ecx, [ebp - 0x124]
push ecx
mov ecx, esi
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x58]
lea ecx, [ebp - 0x122]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x58]
lea ecx, [ebp - 0x120]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x58]
lea ecx, [ebp - 0x11e]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
lea ecx, [ebp - 0x11c]
push ecx
mov edx, dword [edx + 0x58]
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x58]
lea ecx, [ebp - 0x11a]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x58]
lea ecx, [ebp - 0x118]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x58]
lea ecx, [ebp - 0x116]
push ecx
mov ecx, eax
call edx
test byte [ebp - 0x135], 0x20
je 0x110a950d
mov eax, dword [esi]
mov edx, dword [eax + 0x5c]
lea ecx, [ebp - 0x1e0]
push ecx
mov ecx, esi
call edx
test byte [ebp - 0x135], 0x80
je 0x110a9526
mov eax, dword [esi]
mov edx, dword [eax + 0x5c]
lea ecx, [ebp - 0x1dc]
push ecx
mov ecx, esi
call edx
test byte [ebp - 0x135], 1
je 0x110a956f
mov eax, dword [esi]
mov edx, dword [eax + 0x60]
lea ecx, [ebp - 0x13f]
push ecx
mov ecx, esi
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x60]
lea ecx, [ebp - 0x143]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x60]
lea ecx, [ebp - 0x140]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x60]
lea ecx, [ebp - 0x13e]
push ecx
mov ecx, eax
call edx
test byte [ebp - 0x135], 2
je 0x110a95b8
mov eax, dword [esi]
mov edx, dword [eax + 0x58]
lea ecx, [ebp - 0x19c]
push ecx
mov ecx, esi
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x58]
lea ecx, [ebp - 0x180]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x58]
lea ecx, [ebp - 0x178]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x58]
lea ecx, [ebp - 0x170]
push ecx
mov ecx, eax
call edx
test byte [ebp - 0x135], 4
je 0x110a95d0
push esi
call fcn.110a84e0
add esp, 4
mov dword [ebp - 0x13c], eax
test byte [ebp - 0x135], 8
je 0x110a96e1
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
lea ecx, [ebp - 0x194]
push ecx
mov ecx, esi
call edx
mov eax, dword [ebp - 0x194]
mov edx, dword [eax]
lea ecx, [ebp - 0x194]
call edx
test al, al
jne 0x110a9618
push 0x250
push 0x11195b24
push 0x11195b1c
call fcn.11029a70
add esp, 0xc
mov eax, dword [ebp - 0x188]
push 0x5c
push eax
call fcn.11081e00
add esp, 8
test eax, eax
jne 0x110a96e1
test ebx, ebx
je 0x110a96e1
push ebx
lea ecx, [ebp - 0x134]
call fcn.110d0960
push 0x5c
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 4
call fcn.1101d360
push eax
call fcn.11081e00
add esp, 8
test eax, eax
je 0x110a9696
inc eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x110a9667
sub eax, edx
push 0x11195264
lea ecx, [ebp - 0x134]
mov ebx, eax
call fcn.110094a0
sub eax, ebx
push eax
lea ecx, [ebp - 0x134]
call fcn.110d1100
mov ebx, dword [ebp - 0x148]
lea ecx, [ebp - 0x194]
push ecx
lea edx, [ebp - 0x134]
push edx
lea eax, [ebp - 0x1d8]
push eax
call fcn.110d19a0
add esp, 0xc
push eax
lea ecx, [ebp - 0x194]
mov byte [ebp - 4], 5
call fcn.110d1640
lea ecx, [ebp - 0x1d8]
mov byte [ebp - 4], 4
call fcn.110d0a10
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 3
call fcn.110d0a10
test byte [ebp - 0x135], 0x10
je 0x110a9825
mov edx, dword [esi]
mov edx, dword [edx + 0x60]
lea eax, [ebp - 0x142]
push eax
mov ecx, esi
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x58]
lea ecx, [ebp - 0x16c]
push ecx
mov ecx, eax
call edx
mov edx, dword [eax]
mov edx, dword [edx + 0x58]
lea ecx, [ebp - 0x1a0]
push ecx
mov ecx, eax
call edx
mov al, byte [ebp - 0x142]
dec al
cmp al, 0x63
ja 0x110a9825
mov edx, dword [esi]
mov edx, dword [edx + 0x5c]
lea eax, [ebp - 0x198]
push eax
mov ecx, esi
call edx
cmp dword [ebp - 0x198], 0
je 0x110a9825
mov eax, dword [esi]
mov edx, dword [eax + 0x84]
lea ecx, [ebp - 0x1b4]
push ecx
mov ecx, esi
call edx
lea ecx, [ebp - 0x1d8]
call fcn.110d1930
mov byte [ebp - 4], 6
test ebx, ebx
je 0x110a977a
cmp byte [ebx], 0
je 0x110a977a
mov eax, ebx
jmp 0x110a9784
mov ecx, 0x111efb80
call fcn.1101d360
lea ecx, [ebp - 0x114]
push ecx
push 0
push 0x111a7e30
push eax
call dword [sym.imp.KeRneL32.DLl_GetTempFileNameA]
test eax, eax
je 0x110a9816
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
lea edx, [ebp - 0x114]
push edx
call dword [sym.imp.KeRneL32.DLl_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x110a9816
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp - 0x1b4]
push 0
lea eax, [ebp - 0x148]
push eax
push ecx
push edx
push esi
mov dword [ebp - 0x148], 0
call dword [sym.imp.KeRneL32.DLl_WriteFile]
push esi
call dword [sym.imp.KeRneL32.DLl_CloseHandle]
test eax, eax
je 0x110a9816
mov eax, dword [ebp - 0x148]
cmp eax, dword [ebp - 0x198]
jne 0x110a9816
lea ecx, [ebp - 0x114]
push ecx
lea ecx, [ebp - 0x194]
call fcn.110d16d0
lea ecx, [ebp - 0x1d8]
mov byte [ebp - 4], 3
call fcn.110d0a10
push 0x344
call fcn.11146710
add esp, 4
push eax
lea ecx, [ebp - 0x1c8]
call fcn.110d0960
cmp dword [ebp + 0xc], 0x1e
mov bl, 7
mov byte [ebp - 4], bl
jne 0x110a9862
push 0x345
call fcn.11146710
add esp, 4
push eax
lea ecx, [ebp - 0x1c8]
call fcn.110d16d0
movzx eax, byte [ebp - 0x141]
cmp eax, 0xf
ja case.default.0x110a9872
jmp dword [eax*4 + 0x110aa040]
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 8
test esi, esi
je 0x110a9ec0
lea ecx, [ebp - 0x168]
call fcn.110094d0
lea ecx, [ebp - 0x158]
mov edi, eax
call fcn.110094d0
lea edx, [ebp - 0x124]
push edx
push eax
push edi
mov ecx, esi
call fcn.1101d4a0
mov dword [esi], 0x111990b0
jmp 0x110a9ec2
lea ecx, [ebp - 0x158]
call fcn.1102a800
test al, al
je 0x110a9901
lea ecx, [ebp - 0x1c8]
call fcn.1101d360
push eax
push 0x346
call fcn.11147af0
add esp, 8
push eax
lea ecx, [ebp - 0x158]
call fcn.110d16d0
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 9
test esi, esi
je 0x110a9ec0
lea ecx, [ebp - 0x168]
call fcn.110094d0
lea ecx, [ebp - 0x158]
mov edi, eax
call fcn.110094d0
lea ecx, [ebp - 0x124]
push ecx
push eax
push edi
mov ecx, esi
call fcn.1101d4a0
mov dword [esi], 0x111a6ddc
jmp 0x110a9ec2
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0xa
test esi, esi
je 0x110a999f
lea edx, [ebp - 0x124]
push edx
lea ecx, [ebp - 0x168]
call fcn.110094d0
push eax
lea ecx, [ebp - 0x158]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.110a80c0
mov edi, eax
jmp 0x110a9ec4
xor eax, eax
mov edi, eax
jmp 0x110a9ec4
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0xb
test esi, esi
je 0x110a999f
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x1b0]
call fcn.110094d0
push eax
lea ecx, [ebp - 0x168]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.1109ef70
mov edi, eax
jmp 0x110a9ec4
push 0x190
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0xc
test esi, esi
je 0x110a999f
lea ecx, [ebp - 0x124]
push ecx
push 0x1119f2e8
push 0x111a6e9c
lea ecx, [ebp - 0x1b0]
call fcn.110094d0
push eax
lea ecx, [ebp - 0x168]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.1109f050
mov edi, eax
jmp 0x110a9ec4
lea ecx, [ebp - 0x158]
call fcn.1102a800
test al, al
je 0x110a9a6e
push 0x357
call fcn.11147af0
add esp, 4
push eax
lea ecx, [ebp - 0x158]
call fcn.110d16d0
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0xd
test esi, esi
je 0x110a9ec0
lea ecx, [ebp - 0x168]
call fcn.110094d0
lea ecx, [ebp - 0x158]
mov edi, eax
call fcn.110094d0
lea edx, [ebp - 0x124]
push edx
push eax
push edi
mov ecx, esi
call fcn.1101d4a0
mov dword [esi], 0x111a7c60
jmp 0x110a9ec2
lea ecx, [ebp - 0x158]
call fcn.1102a800
test al, al
je 0x110a9af6
lea ecx, [ebp - 0x1c8]
call fcn.1101d360
push eax
push 0x348
call fcn.11147af0
add esp, 8
push eax
lea ecx, [ebp - 0x158]
call fcn.110d16d0
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0xe
test esi, esi
je 0x110a9ec0
lea ecx, [ebp - 0x168]
call fcn.110094d0
lea ecx, [ebp - 0x158]
mov edi, eax
call fcn.110094d0
lea ecx, [ebp - 0x124]
push ecx
push eax
push edi
mov ecx, esi
call fcn.1101d4a0
mov dword [esi], 0x111a7c9c
jmp 0x110a9ec2
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0xf
test esi, esi
je 0x110a999f
lea edx, [ebp - 0x124]
push edx
lea ecx, [ebp - 0x168]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.110a7f30
mov edi, eax
jmp 0x110a9ec4
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0x10
test esi, esi
je 0x110a999f
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x1b0]
call fcn.110094d0
push eax
lea ecx, [ebp - 0x168]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.110a8020
mov edi, eax
jmp 0x110a9ec4
push 0x190
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0x11
test esi, esi
je 0x110a999f
lea ecx, [ebp - 0x124]
push ecx
push 0x1119f2e8
push 0x111a6e9c
lea ecx, [ebp - 0x1b0]
call fcn.110094d0
push eax
lea ecx, [ebp - 0x168]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.1109f1e0
mov edi, eax
jmp 0x110a9ec4
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0x12
test esi, esi
je 0x110a999f
lea edx, [ebp - 0x124]
push edx
lea ecx, [ebp - 0x1b0]
call fcn.110094d0
push eax
lea ecx, [ebp - 0x168]
call fcn.110094d0
push eax
lea ecx, [ebp - 0x158]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.110a8d20
mov edi, eax
jmp 0x110a9ec4
lea ecx, [ebp - 0x158]
call fcn.1102a800
test al, al
je 0x110a9cc0
lea ecx, [ebp - 0x1c8]
call fcn.1101d360
push eax
push 0x347
call fcn.11147af0
add esp, 8
push eax
lea ecx, [ebp - 0x158]
call fcn.110d16d0
push 0x17c
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x148], esi
mov byte [ebp - 4], 0x13
test esi, esi
je 0x110a999f
mov ecx, dword [ebp - 0x13c]
lea eax, [ebp - 0x124]
push eax
push 0
push ecx
lea ecx, [ebp - 0x168]
call fcn.110094d0
push eax
lea ecx, [ebp - 0x158]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.110a8650
mov edi, eax
jmp 0x110a9ec4
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0x14
test esi, esi
je 0x110a999f
lea edx, [ebp - 0x124]
push edx
lea ecx, [ebp - 0x158]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.110a8130
mov edi, eax
jmp 0x110a9ec4
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0x15
test esi, esi
je 0x110a999f
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x1b0]
call fcn.110094d0
push eax
lea ecx, [ebp - 0x168]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.110a8190
mov edi, eax
jmp 0x110a9ec4
test byte [ebp - 0x135], 1
push 0x178
je 0x110a9e26
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0x16
test esi, esi
je 0x110a999f
movzx edx, byte [ebp - 0x13e]
movzx eax, byte [ebp - 0x140]
shl edx, 8
lea ecx, [ebp - 0x124]
push ecx
movzx ecx, byte [ebp - 0x143]
or edx, eax
shl edx, 8
or edx, ecx
push edx
movzx edx, byte [ebp - 0x13f]
push edx
lea ecx, [ebp - 0x168]
call fcn.110094d0
push eax
lea ecx, [ebp - 0x158]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.110a7ed0
mov edi, eax
jmp 0x110a9ec4
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0x17
test esi, esi
je 0x110a999f
lea eax, [ebp - 0x124]
push eax
push 0xd8d8d8
push 0
lea ecx, [ebp - 0x168]
call fcn.110094d0
push eax
lea ecx, [ebp - 0x158]
call fcn.110094d0
push eax
mov ecx, esi
call fcn.110a7ed0
mov edi, eax
jmp 0x110a9ec4
push 0x170
call fcn.111101b0
mov esi, eax
add esp, 4
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 0x18
test esi, esi
je 0x110a9ec0
lea ecx, [ebp - 0x168]
call fcn.110094d0
lea ecx, [ebp - 0x158]
mov edi, eax
call fcn.110094d0
lea ecx, [ebp - 0x124]
push ecx
push eax
push edi
mov ecx, esi
call fcn.1101d4a0
mov dword [esi], 0x111a7dc8
jmp 0x110a9ec2
xor esi, esi
mov edi, esi
mov byte [ebp - 4], bl
test byte [ebp - 0x135], 2
je 0x110a9f2d
movzx edx, word [ebp - 0x170]
movzx eax, word [ebp - 0x178]
movzx ecx, word [ebp - 0x180]
push edx
movzx edx, word [ebp - 0x19c]
push eax
push ecx
push edx
lea eax, [ebp - 0x134]
push eax
call dword [sym.imp.uSEr32.dll_SetRect]
mov ecx, dword [ebp - 0x134]
mov edx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x12c]
mov dword [edi + 0x15c], ecx
mov ecx, dword [ebp - 0x128]
mov dword [edi + 0x160], edx
mov dword [edi + 0x164], eax
mov dword [edi + 0x168], ecx
test byte [ebp - 0x135], 0x10
je 0x110a9fb3
mov edx, dword [ebp - 0x194]
mov eax, dword [edx]
lea ecx, [ebp - 0x194]
call eax
test al, al
jne 0x110a9f61
push 0x252
push 0x11195b24
push 0x11195b1c
call fcn.11029a70
add esp, 0xc
cmp dword [ebp - 0x18c], 0
je 0x110a9fb3
mov edx, dword [ebp - 0x194]
mov eax, dword [edx]
lea ecx, [ebp - 0x194]
call eax
test al, al
jne 0x110a9f95
push 0x255
push 0x11195b24
push 0x11195b1c
call fcn.11029a70
add esp, 0xc
movzx ecx, word [ebp - 0x1a0]
movzx edx, word [ebp - 0x16c]
mov eax, dword [ebp - 0x188]
push ecx
push edx
push eax
mov ecx, edi
call fcn.110a7e90
test edi, edi
je 0x110a9fd3
mov ecx, dword [ebp - 0x1b8]
mov dword [edi + 0x158], ecx
cmp byte [ebp - 0x13d], 0
setne al
mov byte [edi + 0x16c], al
lea ecx, [ebp - 0x1c8]
mov byte [ebp - 4], 3
call fcn.110d0a10
lea ecx, [ebp - 0x194]
mov byte [ebp - 4], 2
call fcn.110d0a10
lea ecx, [ebp - 0x1b0]
mov byte [ebp - 4], 1
call fcn.110d0a10
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0
call fcn.110d0a10
lea ecx, [ebp - 0x158]
mov dword [ebp - 4], 0xffffffff
call fcn.110d0a10
mov eax, edi
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.11162bb7
mov esp, ebp
pop ebp
ret