Function at 0x100247e
Capabilities:
Get common file path
Get geographical location
Link many functions at runtime

Disassembly:
push 0x54
mov eax, 0x100ffa0
call fcn.010087c2
mov esi, ecx
lea ecx, [ebp - 0x18]
call sub.framedynos.dll_public:_void___thiscall_CHString::constructor_void_
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1c], ebx
push 0x8007000e
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.010097db
cmp dword [esi + 0x20], ebx
jne 0x10024c1
call fcn.0100b7ae
mov dword [esi + 0x20], eax
cmp eax, ebx
je 0x1002917
cmp dword [esi + 0x50], ebx
jne 0x10024d6
call fcn.0100b7ae
mov dword [esi + 0x50], eax
cmp eax, ebx
je 0x1002917
cmp dword [esi + 0x4c], ebx
jne 0x10024f7
mov edi, 0x1ef0
push edi
call fcn.01009c0b
mov dword [esi + 0x4c], eax
cmp eax, ebx
je 0x1002917
mov byte [eax], bl
inc eax
dec edi
jne 0x10024f1
cmp dword [esi + 0x58], ebx
jne 0x1002518
mov edi, 0x3574
push edi
call fcn.01009c0b
mov dword [esi + 0x58], eax
cmp eax, ebx
je 0x1002917
mov byte [eax], bl
inc eax
dec edi
jne 0x1002512
cmp dword [esi + 0x54], ebx
jne 0x100252d
call fcn.0100b7ae
mov dword [esi + 0x54], eax
cmp eax, ebx
je 0x1002917
cmp dword [esi + 0x6c], ebx
jne 0x1002542
call fcn.0100b7ae
mov dword [esi + 0x6c], eax
cmp eax, ebx
je 0x1002917
push esi
call fcn.01007441
test eax, eax
je 0x1002917
mov byte [ebp - 4], 1
push ebx
push ebx
push 0x1e
mov ebx, 0x400
push ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
call edi
mov dword [ebp - 0x1c], eax
lea ecx, [esi + 0x64]
test eax, eax
jne 0x10025a7
push 2
call sub.framedynos.dll_public:_unsigned_short_int____thiscall_CHString::GetBufferSetLength_int_
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x2c], 0
je 0x1002598
mov ecx, dword [ebp - 0x28]
mov byte [ecx], 0
inc dword [ebp - 0x28]
dec dword [ebp - 0x2c]
jmp 0x1002584
push 2
push 0x100145c
push eax
call fcn.0100a37c
jmp 0x10025ed
add eax, 2
push eax
call sub.framedynos.dll_public:_unsigned_short_int____thiscall_CHString::GetBufferSetLength_int_
mov ecx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x1c]
add eax, 2
add eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x34], 0
je 0x10025d7
mov eax, dword [ebp - 0x30]
mov byte [eax], 0
inc dword [ebp - 0x30]
dec dword [ebp - 0x34]
jmp 0x10025c3
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push 0x1e
push ebx
call edi
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x1002917
push 0
push 0
push 0x10
push ebx
call edi
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x1002917
add eax, 2
push eax
lea ecx, [ebp - 0x18]
call sub.framedynos.dll_public:_unsigned_short_int____thiscall_CHString::GetBufferSetLength_int_
mov ecx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x1c]
add eax, 2
add eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x3c], 0
je 0x1002634
mov eax, dword [ebp - 0x38]
mov byte [eax], 0
inc dword [ebp - 0x38]
dec dword [ebp - 0x3c]
jmp 0x1002620
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push 0x10
push ebx
call edi
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x1002917
and dword [ebp - 0x1c], 0
and dword [esi + 0x60], 0
lea ecx, [ebp - 0x18]
call sub.framedynos.dll_protected:_struct_CHStringData____thiscall_CHString::GetData_void_const
mov eax, dword [eax + 4]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x1c], eax
jge 0x10026eb
push 1
push dword [ebp - 0x1c]
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x18]
call sub.framedynos.dll_public:_class_CHString___thiscall_CHString::Mid_int__int_
mov dword [ebp - 0x54], eax
mov byte [ebp - 4], 2
mov eax, dword [eax]
mov dword [ebp - 0x58], eax
push 0xa
push eax
call fcn.0100aff8
test eax, eax
setne byte [ebp - 0x11]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x48]
call sub.framedynos.dll_public:_void___thiscall_CHString::destructor_void_
cmp byte [ebp - 0x11], 0
je 0x10026e2
push 1
push dword [ebp - 0x1c]
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x18]
call sub.framedynos.dll_public:_class_CHString___thiscall_CHString::Mid_int__int_
mov dword [ebp - 0x5c], eax
mov byte [ebp - 4], 3
mov eax, dword [eax]
mov dword [ebp - 0x60], eax
push 0xa
push eax
call fcn.0100aff8
mov ecx, dword [esi + 0x60]
imul ecx, ecx, 0xa
add eax, ecx
mov dword [esi + 0x60], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4c]
call sub.framedynos.dll_public:_void___thiscall_CHString::destructor_void_
add dword [ebp - 0x1c], 2
jmp 0x1002652
push 0
push 0
push 0xf
push ebx
call edi
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x1002917
add eax, 2
push eax
lea ecx, [esi + 0x68]
call sub.framedynos.dll_public:_unsigned_short_int____thiscall_CHString::GetBufferSetLength_int_
mov ecx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x1c]
add eax, 2
add eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x44], 0
je 0x1002732
mov eax, dword [ebp - 0x40]
mov byte [eax], 0
inc dword [ebp - 0x40]
dec dword [ebp - 0x44]
jmp 0x100271e
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push 0xf
push ebx
call edi
mov dword [ebp - 0x1c], eax
xor ebx, ebx
cmp eax, ebx
je 0x1002917
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
call sub.framedynos.dll_public:_void___thiscall_CHString::ReleaseBuffer_int_
push 0xffffffffffffffff
lea ecx, [esi + 0x64]
call sub.framedynos.dll_public:_void___thiscall_CHString::ReleaseBuffer_int_
push 0xffffffffffffffff
lea ecx, [esi + 0x68]
call sub.framedynos.dll_public:_void___thiscall_CHString::ReleaseBuffer_int_
mov dword [ebp - 4], ebx
mov dword [ebp - 0x24], ebx
push ebx
push 0x1001444
call fcn.01009a0a
mov edi, eax
add edi, 0x10a
lea eax, [edi + edi]
push eax
call fcn.01009c0b
mov dword [ebp - 0x24], eax
cmp eax, ebx
je 0x1002902
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push edi
push 0x1001360
push dword [ebp - 0x24]
call fcn.0100a3bf
push edi
push 0x1001444
push dword [ebp - 0x24]
call fcn.0100a3bf
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [esi + 0x88], eax
lea eax, [ebp - 0x24]
push eax
call fcn.01009fa7
mov eax, dword [esi + 0x88]
cmp eax, ebx
je 0x10028d9
push 0x100142c
push eax
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call edi
mov dword [esi + 0xa4], eax
push 0x1001414
push dword [esi + 0x88]
call edi
mov dword [esi + 0xac], eax
push 0x10013fc
push dword [esi + 0x88]
call edi
mov dword [esi + 0xa8], eax
push 0x10013e4
push dword [esi + 0x88]
call edi
mov dword [esi + 0xb0], eax
push 0x10013c8
push dword [esi + 0x88]
call edi
mov dword [esi + 0xb4], eax
push 0x10013ac
push dword [esi + 0x88]
call edi
mov dword [esi + 0xb8], eax
push 0x100138c
push dword [esi + 0x88]
call edi
mov dword [esi + 0xbc], eax
cmp dword [esi + 0xa4], ebx
je 0x100289d
cmp dword [esi + 0xac], ebx
je 0x100289d
cmp dword [esi + 0xa8], ebx
je 0x100289d
cmp dword [esi + 0xb0], ebx
je 0x100289d
cmp dword [esi + 0xb4], ebx
je 0x100289d
cmp eax, ebx
je 0x100289d
cmp dword [esi + 0xb8], ebx
jne 0x10028d9
push dword [esi + 0x88]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esi + 0x88], ebx
mov dword [esi + 0xa4], ebx
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xac], ebx
mov dword [esi + 0xb0], ebx
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xb8], ebx
mov dword [esi + 0xbc], ebx
mov ecx, esi
call fcn.010023c9
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x1001388
call fcn.01009774
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call sub.framedynos.dll_public:_void___thiscall_CHString::destructor_void_
xor eax, eax
inc eax
jmp 0x1002925
mov dword [esi + 0x88], ebx
jmp 0x10027d5
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call sub.framedynos.dll_public:_void___thiscall_CHString::destructor_void_
xor eax, eax
call fcn.0100883b
ret