Function at 0x102aa43
Capabilities:
Get common file path
Link many functions at runtime

Disassembly:
push 0x864
push 0x1008de0
call fcn.0103712c
mov eax, dword [0x1067a40]
mov dword [ebp - 0x1c], eax
xor ebx, ebx
mov dword [ebp - 0x834], ebx
mov dword [ebp - 0x83c], ebx
mov dword [ebp - 0x820], ebx
mov dword [ebp - 0x828], ebx
mov dword [ebp - 0x838], ebx
mov dword [ebp - 0x844], ebx
mov dword [ebp - 0x824], ebx
mov dword [ebp - 4], ebx
push 0x1000
call fcn.01021386
mov dword [ebp - 0x820], eax
mov eax, dword [0x1069354]
cmp eax, ebx
jne 0x102aaba
push 0x1002024
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x1069354], eax
cmp eax, ebx
je 0x102aeb5
push 0x1008dd8
push eax
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call esi
mov dword [ebp - 0x83c], eax
cmp eax, ebx
je 0x102aeb5
push 0x1008dc0
push dword [0x1069354]
call esi
mov dword [ebp - 0x868], eax
cmp eax, ebx
je 0x102aeb5
push 0x1008da8
push dword [0x1069354]
call esi
mov dword [ebp - 0x848], eax
cmp eax, ebx
je 0x102aeb5
push 0x1008d8c
push dword [0x1069354]
call esi
mov dword [ebp - 0x86c], eax
cmp eax, ebx
je 0x102aeb5
push 0x1008d70
push dword [0x1069354]
call esi
mov dword [ebp - 0x864], eax
cmp eax, ebx
je 0x102aeb5
mov eax, 0x1008d58
mov dword [ebp - 0x82c], eax
push eax
call fcn.01038211
pop ecx
shl eax, 1
mov word [ebp - 0x830], ax
mov eax, dword [ebp - 0x830]
add eax, 2
mov word [ebp - 0x82e], ax
mov dword [ebp - 0x860], 0x18
mov dword [ebp - 0x85c], ebx
mov dword [ebp - 0x854], 0x40
lea eax, [ebp - 0x830]
mov dword [ebp - 0x858], eax
mov dword [ebp - 0x850], ebx
mov dword [ebp - 0x84c], ebx
lea eax, [ebp - 0x860]
push eax
push 1
lea eax, [ebp - 0x828]
push eax
call dword [ebp - 0x868]
test eax, eax
jl 0x102aeb5
mov ecx, 0x400
xor eax, eax
mov edi, dword [ebp - 0x820]
rep stosd dword es:[edi], eax
mov ecx, 0x200
lea edi, [ebp - 0x81c]
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, 0x800
cmp dword [ebp - 0x824], ebx
jne 0x102add3
lea eax, [ebp - 0x870]
push eax
lea eax, [ebp - 0x844]
push eax
push ebx
push ebx
push edi
push dword [ebp - 0x820]
push dword [ebp - 0x828]
call dword [ebp - 0x848]
test eax, eax
jl 0x102ad89
mov esi, dword [ebp - 0x820]
mov dword [ebp - 0x840], esi
cmp dword [ebp - 0x824], ebx
jne 0x102ad79
cmp word [esi], bx
je 0x102ad79
push 0x1008d3c
push dword [esi + 4]
call fcn.01038164
pop ecx
pop ecx
test eax, eax
jne 0x102ad71
push 0x1008d20
push dword [esi + 0xc]
call fcn.01038164
pop ecx
pop ecx
test eax, eax
jne 0x102ad71
mov dword [ebp - 0x860], 0x18
mov eax, dword [ebp - 0x828]
mov dword [ebp - 0x85c], eax
mov dword [ebp - 0x854], 0x40
mov dword [ebp - 0x858], esi
mov dword [ebp - 0x850], ebx
mov dword [ebp - 0x84c], ebx
lea eax, [ebp - 0x860]
push eax
push 1
lea eax, [ebp - 0x838]
push eax
call dword [ebp - 0x86c]
test eax, eax
jl 0x102ad69
mov ecx, 0x400
xor eax, eax
mov edi, dword [ebp - 0x820]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x820]
mov dword [ebp - 0x82c], eax
mov word [ebp - 0x830], bx
mov word [ebp - 0x82e], 0x1000
push ebx
lea eax, [ebp - 0x830]
push eax
push dword [ebp - 0x838]
call dword [ebp - 0x864]
test eax, eax
jl 0x102ad57
movzx eax, word [ebp - 0x830]
shr eax, 1
mov ecx, dword [ebp - 0x82c]
mov word [ecx + eax*2], bx
mov edi, 0x800
push edi
push dword [ebp - 0x82c]
lea eax, [ebp - 0x81c]
push eax
call fcn.0103801d
add esp, 0xc
cmp eax, edi
jae 0x102ad57
push edi
lea eax, [ebp - 0x81c]
push eax
call fcn.01021548
lea eax, [ebp - 0x81c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x102ad41
sub eax, edx
lea eax, [ebp + eax - 0x81c]
mov dword [ebp - 0x824], eax
push dword [ebp - 0x838]
call dword [ebp - 0x83c]
mov dword [ebp - 0x838], ebx
cmp dword [ebp - 0x824], ebx
je 0x102ad79
add esi, 0x10
jmp 0x102ac1d
mov ecx, 0x400
mov edi, dword [ebp - 0x820]
jmp 0x102abd7
cmp dword [ebp - 0x824], ebx
jne 0x102add3
push edi
lea eax, [ebp - 0x81c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x102aeb5
push edi
lea eax, [ebp - 0x81c]
push eax
call fcn.01021548
lea eax, [ebp - 0x81c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x102adbd
sub eax, edx
lea eax, [ebp + eax - 0x81c]
mov dword [ebp - 0x824], eax
lea esi, [ebp - 0x1c]
sub esi, dword [ebp - 0x824]
mov dword [ebp - 0x874], esi
mov dword [ebp - 0x844], ebx
lea eax, [ebp - 0x870]
push eax
lea eax, [ebp - 0x844]
push eax
push ebx
push ebx
push edi
push dword [ebp - 0x820]
push dword [ebp - 0x828]
call dword [ebp - 0x848]
test eax, eax
jl 0x102ae82
mov edi, dword [ebp - 0x820]
mov dword [ebp - 0x840], edi
cmp word [edi], bx
je 0x102ae69
push 0x1008d10
push dword [edi + 0xc]
call fcn.01038164
pop ecx
pop ecx
test eax, eax
jne 0x102ae64
push esi
push dword [edi + 4]
push dword [ebp - 0x824]
call fcn.0103801d
add esp, 0xc
cmp eax, esi
jae 0x102ae64
push ebx
lea eax, [ebp - 0x81c]
push eax
push 4
push dword [ebp - 0x834]
call fcn.0102a651
mov dword [ebp - 0x834], eax
add edi, 0x10
jmp 0x102ae15
mov ecx, 0x400
xor eax, eax
mov edi, dword [ebp - 0x820]
rep stosd dword es:[edi], eax
mov edi, 0x800
jmp 0x102ade8
push edi
lea eax, [ebp - 0x81c]
push eax
push dword [0x1069354]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x102aeb5
push ebx
lea eax, [ebp - 0x81c]
push eax
push 4
push dword [ebp - 0x834]
call fcn.0102a651
mov dword [ebp - 0x834], eax
or dword [ebp - 4], 0xffffffff
call fcn.0102aed4
mov eax, dword [ebp - 0x834]
mov ecx, dword [ebp - 0x1c]
call fcn.01032376
call fcn.01037167
ret