Function at 0x1021285
Capabilities:
Get common file path

Disassembly:
push 0x2c
mov eax, 0x1087e6f
call fcn.010400ac
mov edx, dword [0x10e5a90]
mov eax, dword [0x10e59d0]
add edx, 0x31f
mov ecx, dword [0x10e59d8]
add eax, edx
mov esi, dword [0x10e59dc]
xor edx, edx
mov edi, dword [0x10e5a00]
cmp edx, esi
mov edx, dword [0x10e5a90]
mov dword [ebp - 0x18], eax
mov eax, ecx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], esi
jb 0x1021316
ja 0x10212d3
cmp edi, eax
jb 0x1021316
imul eax, eax, 0x3d
push 0
sub edi, eax
add edi, 0xfffffd1c
add dword [0x10e5a58], 0xfffffd1c
mov ecx, edi
mov dword [0x10e5a00], edi
adc dword [0x10e5a5c], 0xffffffff
xor esi, esi
sub ecx, dword [ebp - 0x2c]
pop eax
sbb esi, dword [ebp - 0x1c]
add ecx, 0x2e4
mov dword [0x10e59d8], ecx
adc esi, eax
mov dword [0x10e59dc], esi
movzx eax, word [0x10e59e6]
mov dword [ebp - 0x28], eax
mov eax, 0x10e59e6
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], eax
cmp edi, dword [ebp - 0x28]
je 0x1021366
movzx eax, word [eax]
push esi
cdq
push ecx
push edx
push eax
call fcn.010401e0
mov esi, edx
mov ecx, eax
movzx eax, word [0x10e59f0]
lea edx, [edi + 5]
add edx, ecx
mov dword [0x10e59d8], ecx
mov dword [0x10e59dc], esi
mov dword [0x10e5a90], edx
cmp edx, eax
je 0x1021373
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
cmp eax, 0x10e5a44
jl 0x102132b
push 6
pop eax
xor edi, edi
cmp dword [vtable.type_info.0], eax
jne 0x1021390
cmp dword [0x10e5a9c], edi
jne 0x1021390
add ecx, 0x11e05
jmp 0x10213aa
imul eax, dword [ebp - 0x18], 0x3d
add eax, 0x27
sub ecx, eax
mov dword [0x10e59d8], ecx
mov ecx, dword [ebp - 0x18]
sbb esi, edi
mov dword [0x10e59dc], esi
imul eax, edx, 0x3d
push 0x56d
push 0x10fc8d8
sub ecx, eax
sub ecx, 0x2e4
mov dword [0x10e59d0], ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov esi, dword [0x10e5a00]
mov ecx, eax
sub eax, dword [0x10e5a90]
mov edx, edi
add eax, dword [0x10e59d0]
mov edi, 0x10e59e6
mov dword [0x10e5a90], eax
movzx eax, word [0x10e59e6]
mov dword [0x10e59d8], ecx
mov dword [ebp - 0x1c], edx
mov dword [0x10e59dc], edx
cmp esi, eax
je 0x1021449
push dword [ebp - 0x1c]
movzx eax, word [edi]
cdq
push ecx
push edx
push eax
call fcn.010401e0
mov ecx, eax
add esi, 5
mov eax, edx
mov dword [0x10e59d8], ecx
mov dword [ebp - 0x1c], eax
add esi, ecx
mov dword [0x10e59dc], eax
movzx eax, word [0x10e59f0]
mov dword [0x10e5a90], esi
cmp esi, eax
je 0x1021454
mov esi, dword [0x10e5a00]
movzx eax, word [0x10e59e6]
add edi, 2
cmp edi, 0x10e5a44
jl 0x1021401
call fcn.01020d32
push 0x10fc218
push 0x56d
mov dword [0x10e59d0], eax
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov eax, 0x1b47
cmp word [0x10e5a04], ax
jne 0x10214b1
movzx eax, word [0x10e59e6]
mov ecx, dword [0x10e5a90]
add ecx, eax
mov dword [0x10e5a90], ecx
push 0
lea eax, [ecx*2 + 0x3b]
mov ecx, dword [0x10e59d8]
add ecx, eax
pop eax
adc dword [0x10e59dc], eax
mov dword [0x10e59d8], ecx
jmp 0x10214b7
mov ecx, dword [0x10e59d8]
call fcn.01020d32
sub esp, 0x10
mov dword [0x10e59d0], eax
mov ecx, esp
mov dword [ebp - 0x34], esp
xor eax, eax
mov edx, str.6265
mov byte [ecx], al
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
call fcn.01025dab
xor edi, edi
push str.Had_s
mov dword [ebp - 4], edi
call fcn.01024197
or dword [ebp - 4], 0xffffffff
mov ecx, eax
call fcn.01021e10
push 6
pop ecx
cmp word [0x10e5a02], cx
je 0x102151c
imul eax, dword [0x10e5a90], 0x3d
mov ecx, dword [0x10e59d8]
neg ecx
sub ecx, eax
add dword [0x10e59d0], ecx
jmp 0x1021531
mov eax, dword [0x10e59d8]
add eax, 0x11dde
add eax, dword [0x10e59d0]
mov dword [0x10e5a90], eax
push str.cd_Island
call fcn.0106179f
mov esi, dword [0x10e59d0]
pop ecx
push 6
pop eax
lea ecx, [esi - 0x338]
mov dword [0x10e5a90], ecx
cmp word [0x10e5a02], ax
je 0x1021578
mov edx, dword [0x10e59d8]
imul eax, edx, 0x3d
sub ecx, eax
mov eax, dword [0x10e59dc]
sub ecx, dword [0x10e5a00]
mov dword [0x10e5a90], ecx
jmp 0x1021593
mov edx, dword [0x10e5a00]
mov eax, edi
add edx, 0x11dde
mov dword [0x10e59dc], eax
add edx, ecx
mov dword [0x10e59d8], edx
push eax
push edx
push esi
call fcn.01024267
mov ecx, eax
call fcn.010220d9
mov ecx, eax
call fcn.01021ff2
mov edx, 0x10e8150
mov ecx, eax
call fcn.01024401
mov edx, str.part
mov ecx, eax
call fcn.01024401
mov edx, dword [0x10e5a00]
mov ecx, 0x10e5a0e
mov edi, dword [0x10e59dc]
mov esi, dword [0x10e59d8]
movzx eax, word [0x10e59e2]
cmp edx, eax
je 0x10215fc
add word [ecx], dx
lea eax, [edx + 5]
add eax, esi
mov dword [0x10e5a90], eax
add eax, 0x3b
add eax, edx
add esi, eax
push 0
pop eax
adc edi, eax
sub ecx, 4
cmp ecx, 0x10e59e2
jg 0x10215d8
push str.cd_Matter_m
mov dword [0x10e59d8], esi
mov dword [0x10e59dc], edi
call fcn.0106179f
pop ecx
push 6
pop eax
xor ecx, ecx
cmp dword [vtable.type_info.0], eax
jne 0x1021644
cmp dword [0x10e5a9c], ecx
jne 0x1021644
mov eax, dword [0x10e59d8]
add eax, 0x11e05
mov dword [0x10e59d0], eax
jmp 0x102165a
imul eax, dword [0x10e59d0], 0x3d
add eax, 0x27
sub dword [0x10e59d8], eax
sbb dword [0x10e59dc], ecx
imul eax, dword [0x10e5a90], 0x29266b
sub esp, 0x10
mov dword [ebp - 0x34], esp
mov dword [0x10e5a90], eax
mov eax, esp
mov byte [eax], 5
mov dword [eax + 8], 0x5c7
mov dword [eax + 0xc], ecx
push str.Molecul
mov dword [ebp - 4], 1
call fcn.01024197
or dword [ebp - 4], 0xffffffff
mov ecx, eax
call fcn.01021e10
push 0x27
pop ecx
call fcn.01020ef6
sub esp, 0x10
mov dword [0x10e59d8], eax
mov ecx, esp
mov dword [ebp - 0x34], esp
xor eax, eax
mov edx, str.6623
mov dword [0x10e59dc], eax
mov byte [ecx], al
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
call fcn.01025dab
push str.out_drop
mov dword [ebp - 4], 2
call fcn.01024197
or dword [ebp - 4], 0xffffffff
mov ecx, eax
call fcn.01021e10
imul ecx, dword [0x10e59d8], 0x36
mov eax, dword [0x10e59dc]
add ecx, dword [0x10e5a90]
mov dword [ebp - 0x18], ecx
imul ecx, dword [0x10e5a90], 0x10e1d
mul ecx
mov esi, eax
mov eax, dword [0x10e59d8]
mul ecx
mov ecx, 0x10e5a28
add esi, edx
mov dword [0x10e59d8], eax
mov edx, dword [0x10e5a90]
mov eax, dword [0x10e59d0]
mov dword [0x10e59dc], esi
add eax, 0x3b
mov esi, dword [ebp - 0x18]
add edx, esi
add edx, eax
xor edi, edi
cmp dword [0x10e5a28], 0x27
jne 0x1021748
cmp dword [0x10e5a2c], edi
je 0x102176d
mov eax, dword [ecx]
imul eax, edx
mov dword [0x10e59dc], edi
mov edx, eax
add eax, 0x2c
mov dword [0x10e59d8], eax
cmp eax, dword [0x10e5a50]
jne 0x102176d
cmp edi, dword [0x10e5a54]
je 0x1021778
add ecx, 8
cmp ecx, 0x10e5ba0
jl 0x1021737
mov ecx, esi
call fcn.01020d32
mov edi, dword [0x10e5a90]
lea ecx, [esi + 0x11dde]
add ecx, edi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], ecx
imul ecx, eax, 0x10e1d
mov eax, dword [0x10e59dc]
mul ecx
mov esi, eax
mov eax, dword [0x10e59d8]
mul ecx
add esi, edx
mov edx, eax
movzx eax, word [0x10e59f2]
mov dword [ebp - 0x10], edx
mov dx, word [0x10e59e6]
movzx ecx, dx
add ecx, eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x34], eax
cmp ecx, 0x32
jne 0x10217e9
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov esi, ecx
imul eax, eax
mov dword [ebp - 0x20], ecx
imul eax, eax, 0x10e1d
sub esi, eax
add esi, 0x27
jmp 0x10217fb
imul esi, dword [ebp - 0x18], 0x29266b
imul eax, esi, 0x37
mov dword [ebp - 0x1c], eax
mov ecx, eax
mov dword [ebp - 0x20], eax
movzx eax, dx
mov dword [ebp - 0x30], eax
mov eax, 0x10e59e6
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
cmp ecx, dword [ebp - 0x30]
je 0x1021878
movzx eax, word [eax]
mov edi, dword [ebp - 0x14]
push edi
cdq
push esi
push edx
push eax
call fcn.010401e0
mov ecx, dword [ebp - 0x20]
mov esi, eax
movzx eax, word [0x10e59f0]
mov dword [ebp - 0x14], edx
lea edi, [ecx + 5]
add edi, esi
mov dword [0x10e5a90], edi
cmp edi, eax
je 0x1021852
mov eax, dword [ebp - 0x24]
add eax, 2
mov dword [ebp - 0x24], eax
cmp eax, 0x10e5a44
jl 0x102180f
push 6
pop eax
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x18]
cmp dword [vtable.type_info.0], eax
jne 0x102187d
xor eax, eax
cmp dword [0x10e5a9c], eax
jne 0x102187d
mov ecx, dword [ebp - 0x10]
lea eax, [ecx + 0x11e05]
jmp 0x1021891
mov edx, dword [ebp - 0x14]
jmp 0x1021845
imul eax, dword [ebp - 0x28], 0x3d
mov ecx, dword [ebp - 0x10]
push 0
add eax, 0x27
sub ecx, eax
pop eax
sbb edx, eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], edi
cmp dword [ebp - 0x34], edi
ja 0x10218b1
mov word [0x10e59e0], ax
imul eax, eax, 0x6d
add eax, 2
add edi, eax
mov dword [0x10e5a90], edi
mov eax, edi
jmp 0x10218b4
mov eax, dword [ebp - 0x30]
add eax, ecx
mov dword [ebp - 0x14], 0x10e5a0e
add esi, 0x3d
add eax, esi
mov esi, dword [ebp - 0x1c]
add ecx, eax
push 0
pop eax
adc edx, eax
mov dword [0x10e59d8], ecx
mov dword [0x10e59dc], edx
movzx eax, word [0x10e59e2]
cmp esi, eax
je 0x102190c
mov eax, dword [ebp - 0x14]
lea edi, [esi + 5]
add edi, ecx
push 0
mov dword [0x10e5a90], edi
add word [eax], si
lea eax, [esi + 0x3b]
add eax, edi
add ecx, eax
pop eax
adc edx, eax
mov dword [0x10e59d8], ecx
mov dword [0x10e59dc], edx
mov eax, dword [ebp - 0x14]
sub eax, 4
mov dword [ebp - 0x14], eax
cmp eax, 0x10e59e2
jg 0x10218d8
mov esi, dword [ebp - 0x18]
mov eax, 0x10e59e6
mov dword [ebp - 0x10], ecx
movzx ecx, word [0x10e59e6]
mov dword [ebp - 0x14], edx
mov edx, edi
cmp edx, ecx
je 0x1021961
movzx edi, word [eax]
movzx eax, word [0x10e59f0]
imul edi, edx
mov edx, edi
mov dword [0x10e5a90], edi
lea ecx, [edx*2 + 5]
cmp ecx, eax
je 0x102196e
mov eax, dword [ebp - 0x2c]
movzx ecx, word [0x10e59e6]
add eax, 2
mov dword [ebp - 0x2c], eax
cmp eax, 0x10e5a44
jl 0x1021931
lea eax, [esi + 2]
mov ecx, esi
add eax, edx
mov dword [0x10e59d0], eax
call fcn.01021029
mov ecx, dword [0x10e5a90]
lea edi, [esi + 2]
add edi, ecx
mov dword [0x10e5a00], eax
mov edx, ecx
cmp ecx, edi
jb 0x10219a1
imul ecx, edi, 0xffffffc3
sub word [0x10e59f2], cx
mov edx, ecx
lea edi, [eax + 2]
mov eax, 0x1b47
add edi, edx
mov dword [0x10e59d0], edi
cmp word [0x10e5a04], ax
jne 0x10219eb
movzx ecx, word [0x10e59e6]
mov edi, dword [ebp - 0x14]
add ecx, edx
mov edx, dword [ebp - 0x10]
push 0
lea eax, [ecx*2 + 0x3b]
add edx, eax
pop eax
adc edi, eax
mov dword [0x10e59d8], edx
mov dword [0x10e59dc], edi
mov edi, dword [0x10e59d0]
jmp 0x10219ee
mov edx, dword [ebp - 0x10]
mov esi, 0x10e5a0e
movzx eax, word [0x10e59e2]
cmp ecx, eax
je 0x1021a0c
add word [esi], cx
lea eax, [ecx + ecx]
lea edi, [eax + 5]
lea ecx, [eax + 0x3b]
add ecx, edi
sub esi, 4
mov eax, ecx
cmp esi, 0x10e59e2
jg 0x10219f3
mov esi, dword [ebp - 0x18]
push 6
pop ecx
mov dword [0x10e59d0], edi
cmp word [0x10e5a02], cx
je 0x1021a39
imul eax, eax, 0xffffffc2
add edi, eax
mov dword [0x10e59d0], edi
lea eax, [esi + 7]
mov ecx, esi
lea eax, [eax + edx*2]
mov dword [0x10e5a90], eax
call fcn.0101fb4a
mov edx, dword [0x10e5a00]
mov ecx, 0x10e5ac8
mov edi, dword [0x10e59d8]
xor eax, eax
cmp esi, dword [0x10e5a18]
jne 0x1021a6e
cmp eax, dword [0x10e5a1c]
je 0x1021a91
lea edi, [esi + 5]
mov dword [0x10e59dc], eax
add edi, edx
add dword [ecx], esi
mov dword [0x10e59d8], edi
adc dword [ecx + 4], eax
lea eax, [edx + edi]
lea edx, [esi + 0x3b]
add edx, eax
mov dword [0x10e5a00], edx
sub ecx, 0x10
cmp ecx, 0x10e5a18
jg 0x1021a5c
mov eax, dword [0x10e59dc]
xor ecx, ecx
cmp ecx, eax
jb 0x1021ae5
ja 0x1021aad
cmp edx, edi
jb 0x1021ae5
imul eax, edi, 0x3d
push 0
sub edx, eax
sub edx, esi
sub dword [0x10e5a58], esi
pop eax
sbb dword [0x10e5a5c], eax
xor ecx, ecx
mov dword [0x10e5a00], edx
sub edx, edi
mov edi, edx
sbb ecx, dword [0x10e59dc]
add edi, esi
mov dword [0x10e59d8], edi
adc ecx, eax
mov dword [0x10e59dc], ecx
mov ecx, dword [0x10e5a90]
xor eax, eax
lea edx, [edi + ecx*2]
mov ecx, dword [0x10e59d0]
add ecx, 0x3d
add ecx, edx
inc eax
mov dword [0x10e59d0], ecx
call fcn.01040075
ret 0xc