Function at 0x526a10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5cd404
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
push ebx
push esi
mov esi, ecx
mov ebx, dword [esi + 0x11c]
add ebx, dword [ebp + 0xc]
mov eax, dword [esi + 0x120]
add eax, dword [ebp + 0x10]
mov ecx, dword [0x6a7208]
push edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], eax
lea edi, [esi + 0x1b4]
mov dword [esp + 0x1c], 9
mov edx, dword [edi]
test edx, edx
js 0x526ab7
fild dword [esp + 0x18]
mov eax, dword [esi + 0x14c]
push eax
mov eax, dword [ebp + 8]
fstp dword [esp + 0x14]
sub esp, 8
fild dword [esp + 0x18]
fstp dword [esp + 0x20]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [esp + 0x20]
fstp dword [esp]
push eax
push ecx
mov eax, 0x80
mov ecx, edx
call fcn.0056d6f0
mov edx, dword [edi]
mov ecx, dword [0x6a7208]
imul edx, edx, 0x64
mov eax, dword [ecx + 0xc]
add ebx, dword [edx + eax + 0x14]
mov dword [esp + 0xc], ebx
add edi, 4
dec dword [esp + 0x1c]
jne 0x526a61
mov eax, dword [esi + 4]
test eax, eax
je 0x526cbc
mov ecx, dword [0x6a77b8]
test ecx, ecx
je 0x526bd4
mov ecx, dword [ecx + 0x118]
cmp ecx, 0x8d
je 0x526af3
cmp ecx, 0x8e
jne 0x526bd4
mov edx, dword [eax]
push 0x100
push 0
push 0xff000000
mov ecx, eax
mov eax, dword [edx + 0x78]
push 0
call eax
mov ecx, dword [0x6a77b8]
cmp dword [ecx + 0x118], 0x8d
jne 0x526bd9
mov eax, dword [0x6a57e0]
mov edi, dword [0x6a7208]
mov ebx, eax
call fcn.0056b800
mov ecx, eax
test ecx, ecx
jne 0x526b3d
or ecx, 0xffffffff
jmp 0x526b7d
mov eax, dword [esi + 0x460]
inc eax
cdq
idiv ecx
lea ecx, [ebx*8]
sub ecx, ebx
xor eax, eax
mov dword [esi + 0x460], edx
mov edi, dword [edi + 0x1c]
mov edi, dword [edi + ecx*8 + 0x28]
sub edx, dword [edi + 0x10]
lea ecx, [edi + 0x10]
dec edx
js 0x526b75
add ecx, 0x14
or ebx, 0xffffffff
sub ebx, dword [ecx]
inc eax
add edx, ebx
jns 0x526b68
lea edx, [eax + eax*4]
mov eax, dword [edi + edx*4]
mov ecx, dword [eax]
mov eax, ecx
imul eax, eax, 0x64
mov dword [esi + 0x45c], ecx
mov edx, dword [0x6a7208]
add eax, dword [edx + 0xc]
mov ebx, dword [0x6a49e8]
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
sub ebx, edi
mov edi, dword [0x6a49e4]
push 0x100
mov dword [esp + 0x20], ebx
sub esp, 8
sub edi, eax
fild dword [esp + 0x28]
mov eax, dword [esi + 4]
mov dword [esp + 0x28], edi
fstp dword [esp + 4]
fild dword [esp + 0x28]
fstp dword [esp]
push eax
push edx
xor eax, eax
call fcn.0056d6f0
jmp 0x526bd9
call fcn.005265b0
mov ecx, dword [0x6a5638]
add ecx, dword [ebp + 0x10]
mov eax, dword [0x6a5634]
add ecx, dword [esi + 0x120]
add eax, dword [ebp + 0xc]
mov edx, dword [0x6a5640]
add eax, dword [esi + 0x11c]
mov edi, dword [esi + 4]
add edx, ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [0x6a563c]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
mov edx, dword [edi]
add ecx, eax
mov dword [esp + 0x1c], ecx
fstp dword [esp + 0x24]
mov dword [esp + 0xc], eax
fild dword [esp + 0x1c]
mov eax, dword [edx + 0x114]
mov ecx, edi
fstp dword [esp + 0x20]
fild dword [esp + 0x18]
fstp dword [esp + 0x10]
fild dword [esp + 0xc]
fstp dword [esp + 0x14]
call eax
fild dword [edi + 0x34]
mov eax, dword [esi + 0x14c]
fldz
push eax
fadd st(1), st(0)
push 0x80
fxch st(1)
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [ebp + 8]
fstp dword [esp + 0x24]
lea eax, [esp + 0x44]
push eax
fiadd dword [edi + 0x30]
push ecx
mov ecx, edi
fstp dword [esp + 0x30]
fldz
fst dword [esp + 0x3c]
fstp dword [esp + 0x40]
fld dword [esp + 0x30]
fstp dword [esp + 0x44]
fld dword [esp + 0x2c]
fstp dword [esp + 0x48]
fld dword [esp + 0x28]
fstp dword [esp + 0x4c]
fld dword [esp + 0x24]
fstp dword [esp + 0x50]
fld dword [esp + 0x34]
fstp dword [esp + 0x54]
fld dword [esp + 0x38]
fstp dword [esp + 0x58]
mov edx, dword [edi]
mov edx, dword [edx + 0x48]
call edx
mov ecx, dword [0x6a7208]
mov eax, dword [0x6a5730]
add eax, dword [ebp + 0xc]
mov ebx, dword [0x6a572c]
add eax, dword [esi + 0x11c]
mov dword [esp + 0xc], eax
mov eax, dword [0x6a5734]
add eax, dword [ebp + 0x10]
add eax, dword [esi + 0x120]
mov dword [esp + 0x18], eax
test ebx, ebx
js 0x526d68
mov edi, dword [ecx + 0x20]
sub edi, dword [ecx + 0x1c]
mov eax, 0x92492493
imul edi
add edx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jae 0x526d25
mov eax, dword [ecx + 0x1c]
lea edx, [ebx*8]
sub edx, ebx
cmp dword [eax + edx*8], 0
lea eax, [eax + edx*8]
jle 0x526d25
mov edx, dword [eax + 0x28]
mov eax, dword [edx]
mov edx, dword [eax]
jmp 0x526d28
or edx, 0xffffffff
fild dword [esp + 0x18]
mov eax, dword [esi + 0x14c]
push eax
mov eax, dword [ebp + 8]
fstp dword [esp + 0x14]
sub esp, 8
fild dword [esp + 0x18]
fstp dword [esp + 0x20]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [esp + 0x20]
fstp dword [esp]
push eax
push ecx
mov eax, 0x80
mov ecx, edx
call fcn.0056d6f0
mov ecx, dword [0x6a7208]
mov edx, dword [0x693540]
mov eax, edx
shl eax, 4
add eax, dword [0x6a5e24]
mov edi, dword [eax + 8]
test edi, edi
js 0x526d96
mov eax, dword [eax + 0xc]
mov ebx, dword [0x6a9c98]
cmp dword [ebx + eax*4], 1
jne 0x526d96
mov ebx, edi
jmp 0x526e2f
test byte [0x6922ec], 1
jne 0x526dd4
or dword [0x6922ec], 1
mov dword [esp + 0x54], 0
call fcn.00582ff0
push 0x5eeeb0
call fcn.0048ef30
mov dword [esp + 0x58], 0xffffffff
mov ecx, dword [0x6a7208]
mov edx, dword [0x693540]
add esp, 4
test edx, edx
js 0x526e18
xor eax, eax
cmp dword [0x6a5c90], eax
jle 0x526e18
mov edi, dword [0x6a5ca4]
add edi, 0x20
cmp dword [edi], edx
je 0x526e07
inc eax
add edi, 0x4c
cmp eax, dword [0x6a5c90]
jl 0x526deb
mov eax, dword [0x6a5e24]
add edx, edx
mov ebx, dword [eax + edx*8]
jmp 0x526e2f
mov edi, dword [0x6a9d38]
cmp dword [edi + eax*4], 0
setne al
test al, al
je 0x526e24
mov eax, dword [0x6a5e24]
add edx, edx
mov ebx, dword [eax + edx*8]
jmp 0x526e2f
mov eax, dword [0x6a5e24]
add edx, edx
mov ebx, dword [eax + edx*8 + 4]
test ebx, ebx
js 0x526eab
mov edi, dword [ecx + 0x20]
sub edi, dword [ecx + 0x1c]
mov eax, 0x92492493
imul edi
add edx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jae 0x526e6e
mov eax, dword [ecx + 0x1c]
lea edx, [ebx*8]
sub edx, ebx
cmp dword [eax + edx*8], 0
lea eax, [eax + edx*8]
jle 0x526e6e
mov edx, dword [eax + 0x28]
mov eax, dword [edx]
mov edx, dword [eax]
jmp 0x526e71
or edx, 0xffffffff
fild dword [esp + 0x18]
mov eax, dword [esi + 0x14c]
push eax
mov eax, dword [ebp + 8]
fstp dword [esp + 0x14]
sub esp, 8
fild dword [esp + 0x18]
fstp dword [esp + 0x20]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [esp + 0x20]
fstp dword [esp]
push eax
push ecx
mov eax, 0x80
mov ecx, edx
call fcn.0056d6f0
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc