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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x15c
push ebx
push esi
push edi
mov esi, dword [ebp + 0x2c]
mov eax, dword [esi + 0x68]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x10]
and eax, 0xffffc000
cdq
mov ecx, dword [esi + 0x6c]
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x50], eax
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi + 0x18]
lea eax, [ecx - 1]
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x14]
and eax, 0xffffc000
cdq
and edx, 0x3fff
add eax, edx
mov ebx, eax
mov edi, dword [esi + 0x1c]
sar ebx, 0xe
lea eax, [edi - 1]
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0x40]
and eax, 0xffffc000
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x48]
dec eax
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [esp + 0x50]
sar eax, 0xe
mov dword [esp + 0x88], eax
lea eax, [edx + 1]
mov edx, dword [esi + 0x10]
shl eax, 0xe
sub eax, edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x2c]
shl eax, 0xe
sub ecx, eax
add ecx, 0x4000
mov dword [esp + 0x9c], ecx
mov ecx, dword [esi + 0x14]
lea eax, [ebx + 1]
shl eax, 0xe
sub eax, ecx
mov ecx, dword [esp + 0x80]
mov edx, ecx
shl edx, 0xe
sub edi, edx
mov edx, ecx
add edi, 0x4000
sub edx, ebx
cmp edx, 2
mov dword [esp + 0xb4], edi
jge 0x53909f
mov eax, dword [esi + 0x1c]
sub eax, dword [esi + 0x14]
mov edx, dword [esp + 0x2c]
sub edx, dword [esp + 0x50]
cmp edx, 2
jge 0x5390b6
mov edx, dword [esi + 0x18]
sub edx, dword [esi + 0x10]
mov dword [esp + 0x68], edx
cmp ebx, ecx
fild dword [esp + 0x7c]
mov edi, dword [esi + 0x44]
mov dword [esp + 0x38], edi
fmul qword [0x5eb2b8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x54], ebx
fdivr qword [0x5d6138]
fstp qword [esp + 0xd0]
jge 0x539691
mov eax, dword [esp + 0x58]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x50]
sar ecx, 1
shl eax, 4
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x84], eax
jmp 0x539110
mov ecx, dword [esp + 0xa0]
lea ecx, [ecx]
mov eax, dword [esi + 0x40]
mov edx, dword [esp + 0x68]
lea ecx, [eax + ecx + 0x2000]
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
imul dword [esp + 0x24]
shrd eax, edx, 0xe
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x14]
mov eax, edi
and eax, 0xffffc000
cdq
and edx, 0x3fff
add eax, edx
mov ecx, eax
sar ecx, 0xe
lea eax, [ebx + edi - 1]
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
lea edx, [ecx + 1]
shl edx, 0xe
sub edx, edi
mov dword [esp + 0x10], edx
sar eax, 0xe
mov edx, eax
shl edx, 0xe
sub ebx, edx
lea edx, [ebx + edi + 0x4000]
mov dword [esp + 0x24], edx
mov edx, eax
sub edx, ecx
cmp edx, 2
mov dword [esp + 0x74], ecx
mov dword [esp + 0xb0], edx
jge 0x5391a6
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
fld qword [0x5d8c90]
mov edx, dword [esi + 8]
imul edx, dword [esp + 0x54]
fstp qword [esp + 0xb8]
fild dword [esp + 0x10]
fmul dword [0x5e9724]
add edx, dword [esi + 4]
mov ebx, dword [esp + 0x84]
add edx, ebx
fstp dword [esp + 0x3c]
mov dword [esp + 0x28], edx
fild dword [esp + 0x24]
mov edx, dword [esp + 0x14]
test edx, edx
fmul dword [0x5e9724]
fstp dword [esp + 0x10]
jle 0x539206
fild dword [esp + 0x14]
fmul qword [0x5eb2b8]
fdivr qword [0x5d6138]
fstp qword [esp + 0xb8]
mov edx, dword [esp + 0x50]
cmp edx, dword [esp + 0x2c]
mov dword [esp + 0x24], edx
jge 0x539631
inc ecx
dec eax
mov dword [esp + 0x6c], eax
sub eax, ecx
mov dword [esp + 0x8c], eax
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
imul dword [esp + 0x58]
shrd eax, edx, 0xe
mov dword [esp + 0xac], eax
mov eax, ebx
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
and ebx, 0x80003fff
mov dword [esp + 0x78], eax
jns 0x539260
dec ebx
or ebx, 0xffffc000
inc ebx
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x90]
push eax
push ecx
lea edx, [esp + 0x80]
sar ebx, 2
push edx
lea eax, [esp + 0xe4]
shl ebx, 4
push eax
add ebx, 0x6a3960
call fcn.00537220
mov esi, dword [esi + 0x38]
xor eax, eax
mov edx, esi
imul edx, dword [esp + 0x74]
mov ecx, 0x20
lea edi, [esp + 0xe8]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 0x2c]
mov ecx, dword [ecx + 0x34]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x98], edx
lea ecx, [esp + 0xf0]
jmp 0x5392d0
mov edx, dword [esp + 0x98]
mov eax, dword [esp + eax*4 + 0xd8]
fld dword [esp + 0x3c]
add eax, dword [esp + 0x78]
mov edi, dword [esp + 0x5c]
shl eax, 4
add eax, edi
fmul dword [eax + edx]
add eax, edx
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x8c]
fadd qword [ecx - 8]
inc edi
cmp edx, 4
fst qword [esp + 0x60]
fstp qword [ecx - 8]
fld dword [esp + 0x3c]
fmul dword [eax + 4]
fadd qword [ecx]
fst qword [esp + 0x40]
fstp qword [ecx]
fld dword [esp + 0x3c]
fmul dword [eax + 8]
fadd qword [ecx + 8]
fst qword [esp + 0x48]
fstp qword [ecx + 8]
fld dword [esp + 0x3c]
fmul dword [eax + 0xc]
fadd qword [ecx + 0x10]
fst qword [esp + 0x30]
fstp qword [ecx + 0x10]
jl 0x53942b
mov edx, dword [esp + 0x6c]
fld qword [esp + 0x60]
fld qword [esp + 0x40]
sub edx, edi
fstp qword [esp + 0x40]
sub edx, 4
fld qword [esp + 0x48]
shr edx, 2
fstp qword [esp + 0x48]
inc edx
fld qword [esp + 0x30]
lea edi, [edi + edx*4]
fstp qword [esp + 0x30]
lea esp, [esp]
fadd dword [eax + esi]
add eax, esi
fld dword [eax + 4]
fadd qword [esp + 0x40]
fld dword [eax + 8]
fadd qword [esp + 0x48]
fstp qword [esp + 0x48]
fld dword [eax + 0xc]
add eax, esi
fadd qword [esp + 0x30]
fstp qword [esp + 0x30]
fld dword [eax]
fadd st(2)
fstp qword [esp + 0x60]
fld dword [eax + 4]
fadd st(1)
fstp st(2)
fstp st(0)
fld dword [eax + 8]
fadd qword [esp + 0x48]
fld dword [eax + 0xc]
add eax, esi
fadd qword [esp + 0x30]
fstp qword [esp + 0x30]
fld dword [eax]
fadd qword [esp + 0x60]
fstp qword [esp + 0x60]
fld dword [eax + 4]
fadd st(2)
fstp qword [esp + 0x40]
fld dword [eax + 8]
fadd st(1)
fstp qword [esp + 0x48]
fstp st(0)
fstp st(0)
fld dword [eax + 0xc]
add eax, esi
dec edx
fadd qword [esp + 0x30]
fstp qword [esp + 0x30]
fld dword [eax]
fadd qword [esp + 0x60]
fld dword [eax + 4]
fadd qword [esp + 0x40]
fstp qword [esp + 0x40]
fld dword [eax + 8]
fadd qword [esp + 0x48]
fstp qword [esp + 0x48]
fld dword [eax + 0xc]
fadd qword [esp + 0x30]
fstp qword [esp + 0x30]
jne 0x539370
fstp qword [ecx - 8]
fld qword [esp + 0x40]
fstp qword [ecx]
fld qword [esp + 0x48]
fstp qword [ecx + 8]
fld qword [esp + 0x30]
fstp qword [ecx + 0x10]
mov edx, dword [esp + 0x6c]
cmp edi, edx
jge 0x539474
fld qword [ecx - 8]
sub edx, edi
fld qword [ecx]
fld qword [ecx + 8]
fld qword [ecx + 0x10]
fld dword [eax + esi]
add eax, esi
dec edx
faddp st(4)
fld dword [eax + 4]
faddp st(3)
fld dword [eax + 8]
faddp st(2)
fadd dword [eax + 0xc]
jne 0x539440
fstp qword [esp + 0x40]
fstp qword [esp + 0x60]
fxch st(1)
fstp qword [ecx - 8]
fstp qword [ecx]
fld qword [esp + 0x60]
fstp qword [ecx + 8]
fld qword [esp + 0x40]
fstp qword [ecx + 0x10]
cmp dword [esp + 0xb0], 1
jle 0x5394b1
fld dword [esp + 0x10]
add eax, esi
fmul dword [eax]
fadd qword [ecx - 8]
fstp qword [ecx - 8]
fld dword [esp + 0x10]
fmul dword [eax + 4]
fadd qword [ecx]
fstp qword [ecx]
fld dword [esp + 0x10]
fmul dword [eax + 8]
fadd qword [ecx + 8]
fstp qword [ecx + 8]
fld dword [esp + 0x10]
fmul dword [eax + 0xc]
fadd qword [ecx + 0x10]
fstp qword [ecx + 0x10]
mov eax, dword [esp + 0x70]
inc eax
add ecx, 0x20
cmp eax, 4
mov dword [esp + 0x70], eax
jl 0x5392c9
mov eax, dword [esp + 0x18]
mov esi, 0x4000
cmp eax, esi
jne 0x5394dd
cmp dword [esp + 0x20], esi
je 0x539599
mov eax, dword [ebp + 0x34]
test eax, eax
jne 0x539599
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x5395b9
mov eax, dword [esp + 0x18]
imul dword [esp + 0x20]
shrd eax, edx, 0xe
mov dword [esp + 0x94], eax
fild dword [esp + 0x94]
sub esp, 8
lea edx, [esp + 0xf0]
fmul dword [0x5e9724]
lea eax, [esp + 0xc8]
fstp dword [esp + 0x64]
fld qword [esp + 0xc0]
fstp qword [esp]
push ebx
push edx
push eax
call fcn.005372d0
mov eax, dword [esp + 0x28]
fld dword [eax]
fld dword [esp + 0x5c]
fld dword [esp + 0xc0]
fsub st(2)
fmul st(1)
fadd st(2)
fstp dword [eax]
fld dword [eax + 4]
fld dword [esp + 0xc4]
fsub st(1)
fmul st(2)
fadd st(1)
fstp dword [eax + 4]
fstp st(0)
fld dword [eax + 8]
fld dword [esp + 0xc8]
fsub st(1)
fmul st(2)
fadd st(1)
fstp dword [eax + 8]
fstp st(0)
fld dword [eax + 0xc]
fld dword [esp + 0xcc]
fsub st(1)
fmul st(2)
fadd st(1)
fstp dword [eax + 0xc]
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x5395bd
fld qword [esp + 0xd0]
mov edx, dword [esp + 0x28]
sub esp, 8
fstp qword [esp]
push ebx
lea ecx, [esp + 0xf4]
push ecx
push edx
call fcn.005372d0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
add eax, 0x10
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffffe
cmp ecx, eax
jne 0x539604
mov eax, dword [esp + 0x18]
imul dword [esp + 0x58]
shrd eax, edx, 0xe
mov dword [esp + 0xa8], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa8]
add edx, eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x18], edx
jmp 0x539619
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xac]
add edx, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x2c]
mov esi, dword [ebp + 0x2c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x24], ecx
jl 0x539227
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x80]
mov ecx, dword [esp + 0x54]
lea eax, [ebx - 2]
cmp ecx, eax
jne 0x539670
mov eax, dword [esp + 0x20]
imul dword [esp + 0x7c]
shrd eax, edx, 0xe
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xb4]
add edi, eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x20], edx
jmp 0x539684
mov eax, dword [esp + 0x14]
add eax, edi
mov dword [esp + 0x20], 0x4000
mov dword [esp + 0x38], eax
mov edi, eax
inc ecx
cmp ecx, ebx
mov dword [esp + 0x54], ecx
jl 0x539106
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x30