Function at 0xa1cd4
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbb4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x448], ebx
mov dword [ebp - 0x44c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00013fa8
mov eax, dword [ebp - 8]
call fcn.00013fa8
mov eax, dword [ebp - 0xc]
call fcn.00013fa8
mov eax, dword [ebp + 8]
call fcn.00013fa8
lea eax, [ebp - 0x404]
mov edx, dword [0x17374]
call fcn.00014358
xor eax, eax
push ebp
push 0xa23ab
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 0
mov byte [0xa7b8c], 0
lea eax, [ebp - 0x448]
mov ecx, 0xa23c8
mov edx, dword [ebp - 4]
call fcn.00013e40
mov eax, dword [ebp - 0x448]
call fcn.00013fb8
push eax
call sub.kernel32.dll_LoadLibraryA
mov ebx, eax
test ebx, ebx
je 0xa2352
push 0xa23d4
push ebx
call sub.kernel32.dll_GetProcAddress
mov dword [ebp - 0x40], eax
push 0xa23e4
push ebx
call sub.kernel32.dll_GetProcAddress
mov dword [ebp - 0x44], eax
push 0xa23f4
push ebx
call sub.kernel32.dll_GetProcAddress
mov dword [ebp - 0x4c], eax
push 0xa2404
push ebx
call sub.kernel32.dll_GetProcAddress
mov dword [ebp - 0x48], eax
push 0xa2414
push ebx
call sub.kernel32.dll_GetProcAddress
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x40], 0
je 0xa2337
cmp dword [ebp - 0x44], 0
je 0xa2337
cmp dword [ebp - 0x48], 0
je 0xa2337
cmp dword [ebp - 0x4c], 0
je 0xa2337
cmp dword [ebp - 0x50], 0
je 0xa2337
xor eax, eax
mov dword [0xa7b90], eax
xor eax, eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 8]
call fcn.00013c10
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 8]
call fcn.00013c10
mov eax, dword [0xa4fa4]
mov eax, dword [eax]
cmp dword [eax + 0x3e4], 0x18
jl 0xa1ff5
push 0xa242c
push ebx
call sub.kernel32.dll_GetProcAddress
mov esi, eax
mov dword [ebp - 0x54], esi
test esi, esi
jne 0xa1e55
push 0
mov cx, word [0xa243c]
mov dl, 1
mov eax, 0xa2448
call fcn.00061044
lea edx, [ebp - 0x448]
mov eax, dword [0xa4fa4]
mov eax, dword [eax]
mov eax, dword [eax + 0x3e4]
call fcn.0001821c
mov ecx, dword [ebp - 0x448]
lea eax, [ebp - 0x24]
mov edx, 0xa2468
call fcn.00013e40
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x24]
call fcn.00013df4
mov edx, eax
sub edx, 2
mov ecx, 3
mov eax, dword [ebp - 0x24]
call fcn.00013ff8
lea eax, [ebp - 0x448]
mov ecx, dword [ebp - 0x24]
mov edx, 0xa2474
call fcn.00013e40
mov eax, dword [ebp - 0x448]
push eax
push 0xa247c
mov ecx, dword [0xa508c]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x1d2c8]
call fcn.000205dc
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov dl, 1
mov eax, dword [0x9c644]
call fcn.0009c8c0
mov esi, eax
mov eax, dword [ebp - 0x20]
call fcn.0001ff90
xor eax, eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x28]
call fcn.00013b78
lea eax, [ebp - 0x2c]
call fcn.00013b78
xor eax, eax
mov dword [0xa7b90], eax
xor eax, eax
mov dword [ebp - 0x34], eax
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 8]
call fcn.00018850
lea edx, [ebp - 0x424]
mov ecx, 0x20
mov eax, esi
mov edi, dword [eax]
call dword [edi + 4]
cmp eax, 0x20
jne 0xa1fc3
lea edx, [ebp - 0x444]
mov ecx, 0x20
mov eax, esi
mov edi, dword [eax]
call dword [edi + 4]
lea edx, [ebp - 0x38]
mov ecx, 4
mov eax, esi
mov edi, dword [eax]
call dword [edi + 4]
lea edx, [ebp - 0x3c]
mov ecx, 4
mov eax, esi
mov edi, dword [eax]
call dword [edi + 4]
lea eax, [ebp - 0x448]
lea edx, [ebp - 0x424]
call fcn.00013d2c
mov eax, dword [ebp - 0x448]
mov edx, dword [ebp - 0x30]
call fcn.00013f04
jne 0xa1faf
lea eax, [ebp - 0x28]
lea edx, [ebp - 0x424]
call fcn.00013d2c
lea eax, [ebp - 0x2c]
lea edx, [ebp - 0x444]
call fcn.00013d2c
mov eax, dword [ebp - 0x38]
mov dword [0xa7b90], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x20
add eax, 0x20
add eax, 8
mov dword [ebp - 0x1c], eax
jmp 0xa1f19
mov eax, esi
call fcn.00012f48
mov eax, dword [ebp - 0x20]
call fcn.00012f48
cmp dword [0xa7b90], 0
jne 0xa1fe6
push 0
push 0
push 0
call dword [ebp - 0x54]
jmp 0xa1ff5
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [0xa7b90]
push eax
push 1
call dword [ebp - 0x54]
cmp dword [0xa7b90], 0
jne 0xa200b
mov eax, dword [ebp - 8]
call fcn.00013fb8
mov dword [ebp - 0x70], eax
jmp 0xa2035
lea edx, [ebp - 0x448]
mov eax, dword [ebp - 8]
call fcn.0001872c
mov edx, dword [ebp - 0x448]
lea eax, [ebp - 8]
mov ecx, dword [ebp - 0x2c]
call fcn.00013e40
mov eax, dword [ebp - 8]
call fcn.00013fb8
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], 1
mov dword [ebp - 0x68], 3
xor eax, eax
mov dword [ebp - 0x64], eax
lea ecx, [ebp - 0x404]
mov edx, 0x3f
mov eax, dword [ebp - 8]
call fcn.00018610
test eax, eax
jne 0xa2075
cmp dword [0xa7b90], 0
jne 0xa2070
mov esi, dword [ebp - 0x400]
jmp 0xa2095
mov esi, dword [ebp - 0x34]
jmp 0xa2095
push 0
mov cx, word [0xa243c]
mov dl, 1
mov eax, 0xa248c
call fcn.00061044
push ebx
call sub.kernel32.dll_FreeLibrary_1
jmp 0xa2352
lea eax, [ebp - 0x404]
call fcn.00018684
mov dword [0xa7b74], esi
xor eax, eax
mov dword [0xa7b78], eax
lea eax, [ebp - 0x70]
push eax
call dword [ebp - 0x40]
mov edi, eax
push 0xa1c10
push edi
call dword [ebp - 0x50]
cmp dword [ebp - 0x68], 0
je 0xa20e5
push 0
mov cx, word [0xa243c]
mov dl, 1
mov eax, 0xa248c
call fcn.00061044
push ebx
call sub.kernel32.dll_FreeLibrary_1
jmp 0xa2352
xor eax, eax
mov dword [ebp - 0x80], eax
xor esi, esi
mov eax, dword [0xa4fa4]
mov eax, dword [eax]
mov eax, dword [eax + 0x340]
mov dl, 1
call fcn.0003cc08
lea eax, [ebp - 0x448]
mov ecx, dword [ebp + 8]
mov edx, 0xa24ac
call fcn.00013e40
mov edx, dword [ebp - 0x448]
mov eax, dword [0xa4fa4]
mov eax, dword [eax]
mov eax, dword [eax + 0x348]
call fcn.0003cd48
jmp 0xa22fe
lea eax, [ebp - 0x2ac]
push eax
push edi
call dword [ebp - 0x48]
movzx esi, ax
test esi, esi
jne 0xa22fe
lea eax, [ebp - 0x448]
lea edx, [ebp - 0x1a8]
mov ecx, 0x104
call fcn.00013da4
mov ecx, dword [ebp - 0x448]
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0xc]
call fcn.00013e40
lea eax, [ebp - 0x448]
lea edx, [ebp - 0x1a8]
mov ecx, 0x104
call fcn.00013da4
cmp dword [ebp - 0x448], 0
je 0xa21e8
lea eax, [ebp - 0x448]
push eax
lea eax, [ebp - 0x44c]
mov ecx, dword [ebp - 0x18]
mov edx, 0xa24c0
call fcn.00013e40
mov eax, dword [ebp - 0x44c]
mov ecx, 0x23
mov edx, 1
call fcn.00013ff8
mov edx, dword [ebp - 0x448]
mov eax, dword [0xa4fa4]
mov eax, dword [eax]
mov eax, dword [eax + 0x34c]
call fcn.0003cd48
mov eax, dword [0xa4fa4]
mov eax, dword [eax]
mov eax, dword [eax + 0x340]
mov edx, dword [eax]
call dword [edx + 0x84]
mov eax, dword [ebp - 0xa4]
and eax, 0xef
cmp eax, 0xe0
je 0xa2223
mov eax, dword [ebp - 0x18]
call fcn.00018508
test al, al
je 0xa2223
mov eax, dword [ebp - 0x18]
call fcn.00018570
and eax, 0xfffffff8
mov edx, eax
mov eax, dword [ebp - 0x18]
call fcn.00018584
mov eax, dword [ebp - 0x18]
call fcn.00018694
mov eax, dword [ebp - 0xa0]
mov dword [0xa7b80], eax
mov eax, dword [ebp - 0x9c]
mov dword [0xa7b84], eax
xor eax, eax
mov dword [0xa7b88], eax
push 0
mov eax, dword [ebp - 0xc]
call fcn.00013fb8
push eax
push 2
push edi
call dword [ebp - 0x4c]
movzx eax, ax
mov dword [ebp - 0x14], eax
mov eax, dword [0xa7b80]
add dword [0xa7b78], eax
fild dword [0xa7b78]
fild dword [0xa7b74]
fdivp st(1)
fmul dword [0xa24c8]
call fcn.00012a6c
mov edx, eax
mov eax, dword [0xa4fa4]
mov eax, dword [eax]
mov eax, dword [eax + 0x344]
call fcn.0006bcf4
cmp dword [ebp - 0x14], 0
je 0xa22fe
cmp dword [ebp - 0x14], 0x10
je 0xa22fe
cmp byte [0xa7b8c], 0
jne 0xa22de
push 0
lea edx, [ebp - 0x44c]
mov eax, dword [ebp - 0x14]
call fcn.0001821c
mov ecx, dword [ebp - 0x44c]
lea eax, [ebp - 0x448]
mov edx, 0xa24d4
call fcn.00013e40
mov eax, dword [ebp - 0x448]
mov cx, word [0xa243c]
mov dl, 1
call fcn.00061044
push edi
call dword [ebp - 0x44]
push ebx
call sub.kernel32.dll_FreeLibrary_1
mov eax, dword [0xa4fa4]
mov eax, dword [eax]
mov eax, dword [eax + 0x340]
xor edx, edx
call fcn.0003cc08
jmp 0xa2352
cmp esi, 0xa
je 0xa2310
cmp byte [0xa7b8c], 0
je 0xa2130
push edi
call dword [ebp - 0x44]
mov eax, dword [0xa4fa4]
mov eax, dword [eax]
mov eax, dword [eax + 0x340]
xor edx, edx
call fcn.0003cc08
cmp byte [0xa7b8c], 0
jne 0xa234c
mov byte [ebp - 0xd], 1
jmp 0xa234c
push 0
mov cx, word [0xa243c]
mov dl, 1
mov eax, 0xa2448
call fcn.00061044
push ebx
call sub.kernel32.dll_FreeLibrary_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xa23b2
lea eax, [ebp - 0x44c]
mov edx, 2
call fcn.00013b9c
lea eax, [ebp - 0x404]
mov edx, dword [0x17374]
call fcn.00014424
lea eax, [ebp - 0x30]
mov edx, 4
call fcn.00013b9c
lea eax, [ebp - 0x18]
call fcn.00013b78
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00013b9c
lea eax, [ebp + 8]
call fcn.00013b78
ret