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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x10183b80
push 0x10132540
mov eax, dword fs:[0]
push eax
sub esp, 0x438
mov eax, dword [0x10189710]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov edi, ecx
xor ebx, ebx
mov dword [ebp - 4], ebx
mov byte [ebp - 0x338], bl
push 0x103
push ebx
lea eax, [ebp - 0x337]
push eax
call fcn.1012e060
add esp, 0xc
mov byte [ebp - 0x128], bl
push 0x103
push ebx
lea ecx, [ebp - 0x127]
push ecx
call fcn.1012e060
add esp, 0xc
mov byte [ebp - 0x230], bl
push 0x103
push ebx
lea edx, [ebp - 0x22f]
push edx
call fcn.1012e060
add esp, 0xc
mov dword [ebp - 0x444], ebx
lea eax, [ebp - 0x338]
call fcn.1005d070
mov esi, eax
mov byte [edi], bl
cmp esi, ebx
je 0x1008d516
lea eax, [ebp - 0x338]
push eax
lea ecx, [ebp - 0x128]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [ebp - 0x128]
call fcn.10065200
push str.cte.dll
lea edx, [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp esi, ebx
je 0x1008d516
push 1
push ebx
xor edx, edx
lea ecx, [ebp - 0x128]
call fcn.10060eb0
add esp, 8
test eax, eax
je 0x1008d528
push str.cte.dll
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x104
lea ecx, [ebp - 0x230]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [ebp - 0x230]
call fcn.10065200
push str.asapsdk.dll
lea edx, [ebp - 0x230]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 1
push ebx
xor edx, edx
lea ecx, [ebp - 0x230]
call fcn.10060eb0
add esp, 8
test eax, eax
jne 0x1008d6ea
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x101b6d34], eax
cmp eax, ebx
jne 0x1008d5e0
mov byte [ebp - 0x440], bl
push 0x103
push ebx
lea ecx, [ebp - 0x43f]
push ecx
call fcn.1012e060
add esp, 0xc
push 0x104
lea esi, [ebp - 0x440]
call fcn.10065360
add esp, 4
mov edx, esi
push edx
lea eax, [ebp - 0x128]
push eax
push str.Unable_to_Load__s__Reason:__s
push edi
call fcn.10127dc0
add esp, 0x10
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x444]
jmp 0x1008d72f
push str.Initialize
push eax
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call esi
mov dword [0x101a72e0], eax
push str.InitializeEx
mov ecx, dword [0x101b6d34]
push ecx
call esi
mov dword [0x101a72cc], eax
push str.DeInitialize
mov edx, dword [0x101b6d34]
push edx
call esi
mov dword [0x101a72d4], eax
push str.getCatID
mov eax, dword [0x101b6d34]
push eax
call esi
mov dword [0x101a72c8], eax
push str.getCatIDAll
mov ecx, dword [0x101b6d34]
push ecx
call esi
mov dword [0x101a72d0], eax
push str.getCatName
mov edx, dword [0x101b6d34]
push edx
call esi
mov dword [0x101a72d8], eax
push str.ThreadAttach
mov eax, dword [0x101b6d34]
push eax
call esi
mov dword [0x101a72c4], eax
cmp eax, ebx
jne 0x1008d67a
push str.ThreadAttachX
mov ecx, dword [0x101b6d34]
push ecx
call esi
mov dword [0x101a72c4], eax
push str.ThreadDetach
mov edx, dword [0x101b6d34]
push edx
call esi
mov dword [0x101a72dc], eax
cmp eax, ebx
jne 0x1008d6a3
push str.ThreadDetachX
mov eax, dword [0x101b6d34]
push eax
call esi
mov dword [0x101a72dc], eax
cmp dword [0x101a72e0], ebx
je 0x1008d6dc
cmp dword [0x101a72d4], ebx
je 0x1008d6dc
cmp dword [0x101a72c8], ebx
je 0x1008d6dc
cmp dword [0x101a72d8], ebx
je 0x1008d6dc
mov dword [ebp - 0x444], 1
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x444]
jmp 0x1008d72f
lea ecx, [ebp - 0x128]
push ecx
push str.Unable_to_get_proc_address_within_DLL__s_
jmp 0x1008d6f6
lea edx, [ebp - 0x230]
push edx
push str.Unable_to_find_DLL__s_
push edi
call fcn.10127dc0
add esp, 0xc
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x444]
jmp 0x1008d72f
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.10127db1
mov esp, ebp
pop ebp
ret