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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x8d4a30
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x14], eax
call fcn.007865e8
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x14]
mov dword [ecx], 0xb00da0
mov eax, dword [0x9bc140]
push edx
mov dword [ecx + 4], eax
call dword [0xb00eec]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [0xa72f48]
mov eax, dword [ebp - 0x14]
mov ebx, dword [edx + 0x430]
mov dword [ecx + 0xdc], ebx
mov esi, dword [eax + 0x10]
mov dword [ecx + 0x38], esi
mov edi, dword [eax + 0x14]
mov dword [ecx + 0x3c], edi
mov edx, dword [eax + 0x18]
mov dword [ecx + 0x40], edx
mov edx, dword [eax + 0x1c]
mov dword [ecx + 0x5c], edx
mov edx, dword [eax + 0x20]
mov dword [ecx + 0x60], edx
mov edx, dword [eax + 0x24]
mov dword [ecx + 0x64], edx
mov edx, dword [eax + 0x28]
mov dword [ecx + 0x35c], edx
mov edx, dword [eax + 0x2c]
mov dword [ecx + 0x360], edx
mov edx, dword [eax + 0x30]
mov dword [ecx + 0x364], edx
mov edx, dword [eax + 0x34]
mov dword [ecx + 0x368], edx
mov edx, dword [eax + 0x38]
mov dword [ecx + 0x36c], edx
movzx eax, word [eax + 0x3c]
test al, 1
jne 0x526e5f
xor edx, edx
jmp 0x526e64
mov edx, 1
mov dword [ecx + 0x370], edx
test edx, edx
je 0x527120
push dword [edx*4 + 0xa72f54]
mov eax, dword [edx*4 + 0xa72f5c]
mov dword [0xa72f94], eax
call fcn.00787550
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
push 1
mov esi, dword [ecx + 0x370]
mov edx, dword [ecx + 0x3c]
push 0x9bc17c
mov edi, dword [esi*4 + 0xa72f4c]
mov ebx, dword [ecx + 0x40]
fld dword [ecx + 0x35c]
or dword [ecx + 0x2e8], edi
movsx eax, word [eax + 0x3e]
mov dword [ecx + 0x374], eax
mov eax, 0xf
mov dword [ecx + 0x358], 0x9bc144
mov word [ecx + 0x342], ax
mov word [ecx + 0x344], ax
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x44], eax
mov dword [ecx + 0x48], edx
mov dword [ecx + 0x4c], ebx
mov dword [ecx + 0x50], eax
mov dword [ecx + 0x54], edx
mov dword [ecx + 0x58], ebx
mov dword [ecx + 0x298], eax
mov dword [ecx + 0x29c], edx
mov dword [ecx + 0x2a0], ebx
mov dword [ecx + 0x2a4], eax
mov dword [ecx + 0x2a8], edx
mov dword [ecx + 0x2ac], ebx
xor ebx, ebx
mov word [ecx + 0x37c], bx
mov word [ecx + 0x39e], bx
mov eax, 0xffffffff
mov word [ecx + 0x38a], ax
fnstcw word [ebp - 0x38]
movzx eax, word [ebp - 0x38]
or eax, 0xc00
mov dword [ebp - 0x30], eax
fldcw word [ebp - 0x30]
fistp dword [ebp - 0x28]
fldcw word [ebp - 0x38]
movsx edx, word [ebp - 0x28]
mov word [ecx + 0x38c], bx
mov word [ecx + 0x388], bx
mov eax, 1
cmp edx, 1
mov word [ecx + 0x382], bx
jl 0x526f6f
mov edx, eax
xor eax, eax
test edx, edx
jg 0x526f77
mov edx, eax
mov byte [ecx + 0x380], dl
call fcn.007b9a88
mov eax, dword [ebp - 0x14]
movsx edx, word [eax + 0xa]
test edx, edx
jle 0x526fc5
mov ecx, dword [ebp - 0x3c]
movzx eax, word [ecx + 0x37c]
mov edx, dword [ecx + 0x30]
mov esi, dword [ecx + 0xa4]
or eax, 0xffff0060
mov word [ecx + 0x37c], ax
mov byte [ecx + 0x380], 1
and edx, 0xff7fffff
mov dword [ecx + 0x30], edx
mov ebx, dword [esi + 0x18]
and ebx, 0xfffffffe
mov dword [esi + 0x18], ebx
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + 0x370]
push dword [eax*4 + 0xa72f7c]
push dword [eax*4 + 0xa72f84]
push dword [eax*4 + 0xa72f8c]
call fcn.007868f8
mov ecx, dword [ebp - 0x3c]
call fcn.00526a7c
mov ecx, dword [ebp - 0x3c]
movsx edx, word [ecx + 0x2bc]
movzx eax, word [ecx + 0x2be]
mov word [ecx + 0x334], dx
mov word [ecx + 0x336], ax
mov word [ecx + 0x346], dx
call fcn.0078730c
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [esi + 0x300]
mov edx, dword [esi + 0x304]
mov ebx, dword [esi + 0x308]
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], edx
mov dword [esi + 0x7c], ebx
call fcn.007b4f54
mov ecx, dword [ebp - 0x3c]
call fcn.007751b0
mov ecx, dword [ebp - 0x3c]
fld dword [0x921b88]
mov edx, dword [ecx + 0x30]
faddp st(1)
fmul dword [0x921b84]
fmul dword [0x921b80]
fnstcw word [ebp - 0x38]
movzx eax, word [ebp - 0x38]
or eax, 0xc00
mov dword [ebp - 0x30], eax
fldcw word [ebp - 0x30]
fistp dword [ebp - 0x28]
fldcw word [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov dword [ecx + 0xd8], 0x9bbc20
mov word [ecx + 0x386], ax
or edx, 0x40000
mov dword [ecx + 0x30], edx
xor ebx, ebx
mov word [ecx + 0xb8], bx
push ebx
call fcn.007aa4c8
mov edx, dword [ebp - 0x3c]
movzx esi, word [edx + 0xb8]
movzx eax, byte [edx + 0x380]
mov word [edx + 0xb8], si
mov byte [edx + 0x381], al
call fcn.00520e6c
test eax, eax
jne 0x5270d3
mov ecx, dword [ebp - 0x3c]
jmp 0x5270fc
mov ecx, dword [ebp - 0x3c]
call fcn.007751b0
fcomp dword [0x921b7c]
fnstsw ax
sahf
mov ecx, dword [ebp - 0x3c]
jae 0x5270fc
movzx eax, word [ecx + 0x37c]
or eax, 0xffff0400
mov word [ecx + 0x37c], ax
mov eax, dword [ecx]
call dword [eax + 0x150]
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
movsx eax, word [ecx + 0x2c]
push eax
call fcn.00813038
pop ecx
mov ecx, dword [ebp - 0x3c]
test eax, eax
je 0x527146
mov dword [ecx + 0x370], 1
mov edx, 1
jmp 0x526e72
mov edx, dword [ecx + 0x370]
jmp 0x526e72