Function at 0x100aa38
Capabilities:
Get common file path
Query environment variable
Read .ini file
Set current directory
Set environment variable

Disassembly:
push 0xa8c
push 0x10203d8
call fcn.0100b6d0
mov edi, dword [ebp + 8]
mov dword [ebp - 0xa88], edi
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xa84], eax
xor esi, esi
mov dword [ebp - 0xa74], esi
mov dword [ebp - 0xa58], esi
mov dword [ebp - 0xa7c], esi
mov dword [ebp - 0xa80], esi
mov dword [ebp - 0xa54], esi
push 0x624
push esi
lea eax, [ebp - 0xa50]
push eax
call sub.msvcrt.dll_memset
mov dword [ebp - 0x42c], esi
push 0x204
push esi
lea eax, [ebp - 0x428]
push eax
call sub.msvcrt.dll_memset
mov dword [ebp - 0xa64], esi
mov dword [ebp - 0xa78], esi
xor eax, eax
mov word [ebp - 0x224], ax
push 0x206
push esi
lea eax, [ebp - 0x222]
push eax
call sub.msvcrt.dll_memset
add esp, 0x24
mov dword [ebp - 0xa6c], esi
mov dword [ebp - 0xa70], esi
mov dword [ebp - 0xa60], esi
mov dword [ebp - 4], esi
mov dword [0x10233e8], edi
mov dword [0x10233e4], edi
mov ebx, 0x10233e8
push ebx
call fcn.01016e6e
call fcn.01016edf
lea eax, [ebp - 0xa7c]
push eax
call fcn.01013dcf
mov dword [ebp - 0xa80], eax
push ebx
call fcn.010175d6
lea eax, [ebp - 0xa54]
push eax
call fcn.0101897e
lea eax, [ebp - 0x634]
push eax
call fcn.01017b56
push 0x104
lea eax, [ebp - 0x42c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x100b14c
lea eax, [ebp - 0xa78]
push eax
lea eax, [ebp - 0x42c]
push eax
call fcn.01010fc6
mov dword [ebp - 0xa64], eax
cmp eax, esi
je 0x100b14c
mov eax, dword [ebp - 0xa78]
cmp eax, esi
je 0x100b14c
xor ecx, ecx
mov word [eax - 2], cx
mov ecx, dword [section..data]
mov eax, dword [ecx]
push 0x10018f8
call dword [eax + 0x148]
mov edi, eax
cmp edi, esi
je 0x100abd4
mov ecx, dword [section..data]
mov eax, dword [ecx]
push 0x10018e4
push edi
call dword [eax + 0x144]
cmp eax, esi
je 0x100abc5
push dword [ebp - 0xa64]
call eax
test eax, eax
jne 0x100abc5
call fcn.0100a7d2
jmp 0x100b156
mov ecx, dword [section..data]
mov eax, dword [ecx]
push edi
call dword [eax + 0x14c]
push esi
push esi
mov edi, 0x10018a0
push edi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x100ac16
lea eax, [ebp - 0x224]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x100b14c
lea eax, [ebp - 0x224]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
test eax, eax
je 0x100b14c
push dword [ebp - 0xa64]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
je 0x100b14c
push dword [ebp - 0xa64]
call fcn.01016cd6
mov dword [ebp - 0xa5c], eax
xor eax, eax
cmp ax, word [ebp - 0x83c]
je 0x100aca4
push ebx
lea eax, [ebp - 0x83c]
push eax
push 0x100188c
call fcn.01014564
mov edi, eax
cmp edi, esi
jge 0x100ad96
push edi
lea eax, [ebp - 0x83c]
push eax
push 0x1001880
push 0x10017f8
push 0x2000000
push 0x1023794
call fcn.0100a7e5
push edi
lea eax, [ebp - 0x83c]
push eax
push 0x203
push dword [0x10233e8]
push esi
call fcn.01017051
add esp, 0x2c
jmp 0x100b15c
push 0x10017e0
push dword [ebp - 0xa64]
call fcn.0101421f
mov dword [ebp - 0xa68], eax
xor edi, edi
mov dword [ebp - 0xa8c], edi
cmp eax, esi
je 0x100ad20
mov ecx, dword [0x1023008]
mov eax, dword [ecx]
push dword [ebp - 0xa68]
call dword [eax]
test eax, eax
je 0x100acff
push dword [ebp - 0xa68]
push esi
push 0x10017cc
push 0x10017c4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edi, eax
dec edi
neg edi
sbb edi, edi
inc edi
mov dword [ebp - 0xa8c], edi
mov ecx, dword [section..data]
mov ebx, dword [ecx]
push dword [ebp - 0xa68]
push esi
call dword [ebx + 0x1c]
push eax
mov ecx, dword [section..data]
call dword [ebx + 0x30]
mov ebx, 0x10233e8
cmp dword [ebp - 0xa5c], 4
je 0x100ad96
cmp edi, esi
jne 0x100ad96
push 0x104
lea eax, [ebp - 0x83c]
push eax
push dword [ebp - 0xa5c]
call fcn.0101758b
mov edi, eax
cmp edi, esi
jl 0x100ad62
push ebx
lea eax, [ebp - 0x83c]
push eax
push 0x100188c
call fcn.01014564
mov edi, eax
cmp edi, esi
jge 0x100ad96
push edi
push 0x1001880
push 0x1001750
push 0x2000000
push 0x1023794
call fcn.0100a7e5
push edi
push 0x204
push dword [0x10233e8]
push esi
call fcn.01017051
add esp, 0x24
jmp 0x100b15c
push dword [0x10233e8]
push dword [ebp - 0xa60]
call fcn.01017266
test eax, eax
je 0x100b15c
call fcn.01013f73
test eax, eax
je 0x100adda
call fcn.01013f18
test eax, eax
je 0x100adda
push 0x205
push dword [0x10233e8]
push esi
call fcn.01017051
add esp, 0xc
jmp 0x100b15c
push dword [0x10233e8]
push dword [ebp - 0xa60]
call fcn.010172d0
test eax, eax
je 0x100b15c
mov dword [ebp - 0xa9c], esi
xor eax, eax
lea edi, [ebp - 0xa98]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push dword [ebp - 0xa54]
call fcn.0101748a
mov dword [ebp - 0xa68], eax
cmp eax, esi
jne 0x100ae3b
call fcn.010174dc
push 0xfffffffffffffffe
lea eax, [ebp - 0x10]
push eax
push 0x1023018
call fcn.0100ba18
add esp, 0xc
mov eax, 0x480
jmp 0x100b23b
cmp dword [ebp - 0xa48], 1
jne 0x100ae54
push dword [0x10233e8]
call fcn.01018958
jmp 0x100b15c
cmp dword [ebp - 0xa5c], 4
jne 0x100ae80
lea eax, [ebp - 0xa70]
push eax
call fcn.01016648
test eax, eax
jl 0x100aeb2
mov ecx, dword [ebp - 0xa70]
call fcn.01015453
mov dword [ebp - 0xa60], eax
jmp 0x100aeb2
lea eax, [ebp - 0xa60]
push eax
lea eax, [ebp - 0xa70]
push eax
lea eax, [ebp - 0x83c]
push eax
xor eax, eax
cmp dword [ebp - 0xa5c], 1
setne al
add eax, 0x191
push eax
push dword [0x10233e8]
call fcn.0101860b
mov edi, 0x1001730
push edi
call fcn.01017b88
mov ebx, eax
mov dword [ebp - 0xa6c], ebx
cmp ebx, esi
jne 0x100aef9
mov ecx, dword [section..data]
mov eax, dword [ecx]
call dword [eax]
mov dword [ebp - 0xa58], eax
push eax
push edi
push 0x1f7
push dword [0x10233e8]
push dword [ebp - 0xa60]
call fcn.01017051
add esp, 0x14
jmp 0x100b15c
mov eax, dword [ebp - 0xa5c]
dec eax
je 0x100af4a
dec eax
je 0x100af0d
dec eax
dec eax
jne 0x100b12d
push dword [ebp - 0xa4c]
lea eax, [ebp - 0x83c]
push eax
push esi
push dword [0x10233e8]
push dword [ebp - 0xa60]
push ebx
call fcn.010176b4
mov dword [ebp - 0xa58], eax
cmp eax, esi
jne 0x100b12d
mov dword [ebp - 0xa74], 1
jmp 0x100b12d
mov dword [ebp - 0xa5c], esi
mov eax, dword [ebp - 0xa44]
cmp ax, 0x61
jb 0x100af62
cmp ax, 0x7a
jbe 0x100af6b
add eax, 0xffffffbf
cmp ax, 0x19
ja 0x100af70
xor eax, eax
inc eax
jmp 0x100af72
xor eax, eax
cmp eax, esi
jne 0x100afe6
lea eax, [ebp - 0xa5c]
push eax
push dword [ebp - 0xa64]
push dword [0x10233e8]
push dword [ebp - 0xa60]
push ebx
call fcn.01017724
test eax, eax
jl 0x100b0ff
push dword [ebp - 0xa5c]
push 0x104
lea eax, [ebp - 0xa44]
push eax
call fcn.0100a9c9
test eax, eax
jl 0x100b0ff
mov eax, dword [ebp - 0xa44]
cmp ax, 0x61
jb 0x100afce
cmp ax, 0x7a
jbe 0x100afd7
add eax, 0xffffffbf
cmp ax, 0x19
ja 0x100afdc
xor eax, eax
inc eax
jmp 0x100afde
xor eax, eax
cmp eax, esi
je 0x100b0ff
cmp dword [ebp - 0xa54], esi
je 0x100b031
push dword [ebp - 0xa4c]
lea eax, [ebp - 0x83c]
push eax
lea eax, [ebp - 0xa44]
push eax
push dword [0x10233e8]
push dword [ebp - 0xa60]
push ebx
call fcn.010176b4
mov dword [ebp - 0xa58], eax
cmp eax, esi
jne 0x100b0ff
mov dword [ebp - 0xa74], 1
jmp 0x100b0ff
mov ecx, dword [section..data]
mov eax, dword [ecx]
push ebx
call dword [eax + 0x14c]
mov dword [ebp - 0xa6c], esi
xor eax, eax
cmp ax, word [ebp - 0xa44]
jne 0x100b076
mov dword [ebp - 0xa58], 0x1f
push 0x1fc
push dword [0x10233e8]
push dword [ebp - 0xa60]
call fcn.01017051
add esp, 0xc
jmp 0x100b0e1
lea eax, [ebp - 0xa58]
push eax
lea eax, [ebp - 0xa9c]
push eax
push dword [ebp - 0xa84]
push dword [ebp - 0xa78]
push dword [ebp - 0xa64]
lea eax, [ebp - 0xa54]
push eax
push dword [0x10233e8]
call fcn.01017dd4
test eax, eax
jne 0x100b0d0
mov dword [ebp - 0xa58], 0x1f
lea eax, [ebp - 0xa9c]
push eax
push dword [0x10233e8]
push dword [ebp - 0xa60]
call fcn.01017087
jmp 0x100b0e1
xor eax, eax
cmp dword [ebp - 0xa58], esi
sete al
mov dword [ebp - 0xa74], eax
cmp dword [ebp - 0xa58], 0x4c7
jne 0x100b0ff
mov ecx, dword [0x1023008]
mov eax, dword [ecx]
lea edx, [ebp - 0xa44]
push edx
call dword [eax + 8]
cmp dword [ebp - 0xa5c], esi
je 0x100b12d
mov ecx, dword [section..data]
mov edi, dword [ecx]
push dword [ebp - 0xa5c]
push esi
call dword [edi + 0x1c]
push eax
mov ecx, dword [section..data]
call dword [edi + 0x30]
test eax, eax
je 0x100b12d
mov dword [ebp - 0xa5c], esi
mov ecx, dword [section..data]
mov eax, dword [ecx]
push dword [ebp - 0xa68]
call dword [eax + 0x64]
lea eax, [ebp - 0xa9c]
push eax
call fcn.010152f9
jmp 0x100b15c
mov ecx, dword [section..data]
mov eax, dword [ecx]
call dword [eax]
mov dword [ebp - 0xa58], eax
mov dword [ebp - 4], 0xfffffffe
call fcn.0100b182
cmp dword [ebp - 0xa74], 1
jne 0x100b219
mov dword [ebp - 0xa58], esi
jmp 0x100b22b
cmp dword [ebp - 0xa58], esi
jne 0x100b22b
mov dword [ebp - 0xa58], 0x1f
call fcn.01016f06
call fcn.01016e96
mov eax, dword [ebp - 0xa58]
call fcn.0100b718
ret 0x10