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

Disassembly:
sub esp, 0xf0
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x128]
mov eax, dword [edi + 0x68]
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x10]
and eax, 0xffffc000
cdq
mov ecx, dword [edi + 0x6c]
and edx, 0x3fff
add eax, edx
mov ebx, eax
mov esi, dword [edi + 0x1c]
sar ebx, 0xe
mov dword [esp + 0x48], ecx
mov ecx, dword [edi + 0x18]
lea eax, [ecx - 1]
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
mov ebp, eax
mov eax, dword [edi + 0x14]
and eax, 0xffffc000
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x40], eax
sar ebp, 0xe
lea eax, [esi - 1]
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x44]
and eax, 0xffffc000
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x8c], eax
mov eax, dword [edi + 0x4c]
dec eax
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x9c], eax
mov eax, dword [edi + 0x40]
and eax, 0xffffc000
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [esp + 0x98], eax
mov eax, dword [edi + 0x48]
dec eax
or eax, 0x3fff
inc eax
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [esp + 0x40]
sar eax, 0xe
inc edx
mov dword [esp + 0xac], eax
mov eax, dword [edi + 0x14]
shl edx, 0xe
sub edx, eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x2c]
mov edx, eax
shl edx, 0xe
sub esi, edx
add esi, 0x4000
lea edx, [ebx + 1]
shl edx, 0xe
mov dword [esp + 0x6c], esi
mov esi, dword [edi + 0x10]
sub edx, esi
mov dword [esp + 0x50], edx
mov edx, ebp
shl edx, 0xe
sub ecx, edx
add ecx, 0x4000
sub ebp, ebx
cmp ebp, 2
mov dword [esp + 0x68], ecx
jge 0x537ca3
mov ecx, dword [edi + 0x18]
mov edx, esi
sub ecx, edx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x40]
sub eax, ecx
cmp eax, 2
jge 0x537cb8
mov edx, dword [edi + 0x1c]
sub edx, dword [edi + 0x14]
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x48]
cdq
sub eax, edx
mov edx, eax
mov eax, dword [edi + 0x44]
sar edx, 1
lea esi, [edx + eax + 0x2000]
cmp ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], esi
mov dword [esp + 0x38], ecx
jge 0x5384e2
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
mov dword [esp + 0xa4], ecx
jmp 0x537d00
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0xa4]
mov edi, edi
mov eax, esi
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
and esi, 0x80003fff
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x40]
lea ecx, [eax + ecx + 0x2000]
mov dword [esp + 0x28], ecx
jns 0x537d30
dec esi
or esi, 0xffffc000
inc esi
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x8c]
push edx
push eax
lea ecx, [esp + 0x28]
sar esi, 2
push ecx
lea edx, [esp + 0xbc]
shl esi, 4
push edx
add esi, 0x6a3960
call fcn.00537220
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 8]
imul ecx, dword [esp + 0x38]
mov ebx, dword [edi + 4]
mov ebp, dword [edi + 0x34]
mov edx, eax
imul edx, dword [esp + 0x20]
add ecx, ebx
add edx, ebp
mov dword [esp + 0x20], ecx
mov ecx, eax
imul ecx, dword [esp + 0xb8]
mov ebx, eax
imul ebx, dword [esp + 0xb0]
mov ebp, eax
imul eax, dword [esp + 0xbc]
imul ebp, dword [esp + 0xb4]
add ecx, edx
add eax, edx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x40]
add ebx, edx
add ebp, edx
cmp ecx, eax
mov dword [esp + 0x78], 0xffffff9c
mov dword [esp + 0x30], 0
jne 0x537de6
fild dword [esp + 0x4c]
fmul dword [0x5e9724]
fstp dword [esp + 0x54]
jmp 0x537e07
mov eax, dword [esp + 0x2c]
dec eax
cmp ecx, eax
jne 0x537dff
fild dword [esp + 0x6c]
fmul dword [0x5e9724]
fstp dword [esp + 0x54]
jmp 0x537e07
mov dword [esp + 0x54], 0x3f800000
mov eax, dword [esp + 0x74]
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x70], eax
jge 0x538466
mov ecx, dword [esp + 0x20]
shl eax, 4
lea edx, [eax + ecx + 8]
mov dword [esp + 0x20], edx
mov edi, dword [esp + 0x28]
mov eax, edi
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [esp + 0x78]
sar eax, 0xe
mov ecx, eax
sub ecx, edx
and edi, 0x80003fff
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
jns 0x537e5a
dec edi
or edi, 0xffffc000
inc edi
mov ecx, dword [esp + 0x118]
mov edx, dword [ecx]
sar edi, 2
sub edx, eax
shl edi, 4
sub edx, 2
lea ecx, [eax - 2]
add edi, 0x6a3960
or edx, ecx
jge 0x537ea2
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x98]
push edx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x64]
push edx
call fcn.00537220
mov eax, dword [esp + 0x14]
xor ecx, ecx
jmp 0x537ec0
xor ecx, ecx
mov dword [esp + 0x58], 0xfffffffe
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], 1
mov edx, dword [esp + 0x10]
cmp edx, 4
mov dword [esp + 0x78], eax
jl 0x537ee3
mov dword [esp + 0x10], 4
mov edx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], ecx
jmp 0x537ef2
mov ecx, 4
sub ecx, edx
test edx, edx
mov dword [esp + 0x14], ecx
je 0x537f26
mov ecx, dword [esp + 0x58]
add ecx, eax
shl ecx, 4
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x5c]
add ecx, eax
shl ecx, 4
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x60]
add ecx, eax
shl ecx, 4
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x64]
add ecx, eax
shl ecx, 4
mov dword [esp + 0x64], ecx
test edx, edx
mov ecx, dword [esp + 0x30]
jle 0x538051
mov eax, dword [esp + 0x14]
lea eax, [esp + eax*4 + 0x58]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
fld dword [eax + ebp]
mov edx, dword [esp + 0x84]
fmul dword [esi + 4]
and ecx, 3
fld dword [esi + 8]
shl ecx, 2
fmul dword [eax + edx]
mov edx, dword [esp + 0x88]
faddp st(1)
fld dword [eax + ebx]
fmul dword [esi]
faddp st(1)
fld dword [eax + edx]
mov edx, dword [esp + 0x84]
fmul dword [esi + 0xc]
faddp st(1)
fstp dword [esp + ecx + 0xc0]
fld dword [eax + edx + 4]
mov edx, dword [esp + 0x88]
fmul dword [esi + 8]
fld dword [eax + edx + 4]
mov edx, dword [esp + 0x84]
fmul dword [esi + 0xc]
faddp st(1)
fld dword [eax + ebp + 4]
fmul dword [esi + 4]
faddp st(1)
fld dword [eax + ebx + 4]
fmul dword [esi]
faddp st(1)
fstp dword [esp + ecx + 0xd0]
fld dword [eax + edx + 8]
mov edx, dword [esp + 0x88]
fmul dword [esi + 8]
fld dword [eax + edx + 8]
mov edx, dword [esp + 0x84]
fmul dword [esi + 0xc]
faddp st(1)
fld dword [eax + ebp + 8]
fmul dword [esi + 4]
faddp st(1)
fld dword [eax + ebx + 8]
fmul dword [esi]
faddp st(1)
fstp dword [esp + ecx + 0xe0]
fld dword [eax + edx + 0xc]
mov edx, dword [esp + 0x88]
fmul dword [esi + 8]
fld dword [eax + edx + 0xc]
fmul dword [esi + 0xc]
faddp st(1)
fld dword [eax + ebp + 0xc]
fmul dword [esi + 4]
faddp st(1)
fld dword [eax + ebx + 0xc]
mov eax, dword [esp + 0x18]
fmul dword [esi]
add eax, 4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
faddp st(1)
fstp dword [esp + ecx + 0xf0]
mov ecx, dword [esp + 0x1c]
inc ecx
dec eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
jne 0x537f46
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
add ecx, edx
lea eax, [ecx - 1]
lea edx, [ecx - 2]
mov dword [esp + 0x30], ecx
and edx, 3
shl edx, 2
and eax, 3
shl eax, 2
inc ecx
and ecx, 3
shl ecx, 2
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x30]
and ecx, 3
shl ecx, 2
fld dword [esp + ecx + 0xc0]
mov dword [esp + 0x14], ecx
fmul dword [edi]
mov ecx, dword [esp + 0x10]
fld dword [esp + edx + 0xc0]
fmul dword [edi + 8]
faddp st(1)
fld dword [esp + eax + 0xc0]
fmul dword [edi + 0xc]
faddp st(1)
fld dword [esp + ecx + 0xc0]
mov ecx, dword [esp + 0x14]
fmul dword [edi + 4]
faddp st(1)
fstp dword [esp + 0x34]
fld dword [esp + ecx + 0xd0]
mov ecx, dword [esp + 0x10]
fmul dword [edi]
fld dword [esp + edx + 0xd0]
fmul dword [edi + 8]
faddp st(1)
fld dword [esp + eax + 0xd0]
fmul dword [edi + 0xc]
faddp st(1)
fld dword [esp + ecx + 0xd0]
mov ecx, dword [esp + 0x14]
fmul dword [edi + 4]
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + ecx + 0xe0]
mov ecx, dword [esp + 0x10]
fmul dword [edi]
fld dword [esp + edx + 0xe0]
fmul dword [edi + 8]
faddp st(1)
fld dword [esp + eax + 0xe0]
fmul dword [edi + 0xc]
faddp st(1)
fld dword [esp + ecx + 0xe0]
mov ecx, dword [esp + 0x14]
fmul dword [edi + 4]
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + ecx + 0xf0]
mov ecx, dword [esp + 0x70]
fmul dword [edi]
fld dword [esp + edx + 0xf0]
mov edx, dword [esp + 0x10]
fmul dword [edi + 8]
faddp st(1)
fld dword [esp + eax + 0xf0]
fmul dword [edi + 0xc]
faddp st(1)
fld dword [esp + edx + 0xf0]
mov edx, dword [esp + 0x74]
cmp ecx, edx
fmul dword [edi + 4]
faddp st(1)
fstp dword [esp + 0x10]
je 0x53818e
mov eax, dword [esp + 0x3c]
dec eax
cmp ecx, eax
je 0x53818e
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x40]
je 0x53818e
mov edi, dword [esp + 0x2c]
dec edi
cmp eax, edi
jne 0x5382f3
mov eax, dword [esp + 0x130]
test eax, eax
jne 0x5382f3
cmp ecx, edx
jne 0x5381ad
fild dword [esp + 0x50]
fmul dword [0x5e9724]
jmp 0x5381c8
mov eax, dword [esp + 0x3c]
dec eax
cmp ecx, eax
jne 0x5381c2
fild dword [esp + 0x68]
fmul dword [0x5e9724]
jmp 0x5381c8
fld dword [0x5e971c]
fmul dword [esp + 0x54]
fld dword [esp + 0x34]
fcomp dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x5381e5
fld dword [0x5e9720]
jmp 0x538202
fld dword [esp + 0x34]
fcomp dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x5381fe
fld dword [0x5e971c]
jmp 0x538202
fld dword [esp + 0x34]
mov edi, dword [esp + 0x20]
fld dword [edi - 8]
fxch st(1)
fsub st(1)
fld st(2)
fmulp st(1)
fadd st(1)
fstp dword [edi - 8]
fstp st(0)
fld dword [esp + 0x1c]
fcomp dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x538231
fld dword [0x5e9720]
jmp 0x53824e
fld dword [esp + 0x1c]
fcomp dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x53824a
fld dword [0x5e971c]
jmp 0x53824e
fld dword [esp + 0x1c]
fld dword [edi - 4]
fxch st(1)
fsub st(1)
fld st(2)
fmulp st(1)
fadd st(1)
fstp dword [edi - 4]
fstp st(0)
fld dword [esp + 0x18]
fcomp dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x538279
fld dword [0x5e9720]
jmp 0x538296
fld dword [esp + 0x18]
fcomp dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x538292
fld dword [0x5e971c]
jmp 0x538296
fld dword [esp + 0x18]
fld dword [edi]
fxch st(1)
fsub st(1)
fld st(2)
fmulp st(1)
fadd st(1)
fstp dword [edi]
fstp st(0)
fld dword [esp + 0x10]
fcomp dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x5382bf
fld dword [0x5e9720]
jmp 0x5382dc
fld dword [esp + 0x10]
fcomp dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x5382d8
fld dword [0x5e971c]
jmp 0x5382dc
fld dword [esp + 0x10]
fld dword [edi + 4]
fxch st(1)
fsub st(1)
fmulp st(2)
fxch st(1)
fadd st(1)
fstp dword [edi + 4]
fstp st(0)
jmp 0x5383da
fld dword [esp + 0x34]
fcomp dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x53830c
fld dword [0x5e9720]
jmp 0x538329
fld dword [esp + 0x34]
fcomp dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x538325
fld dword [0x5e971c]
jmp 0x538329
fld dword [esp + 0x34]
mov edi, dword [esp + 0x20]
fstp dword [edi - 8]
fld dword [esp + 0x1c]
fcomp dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x538349
fld dword [0x5e9720]
jmp 0x538366
fld dword [esp + 0x1c]
fcomp dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x538362
fld dword [0x5e971c]
jmp 0x538366
fld dword [esp + 0x1c]
fstp dword [edi - 4]
fld dword [esp + 0x18]
fcomp dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x538382
fld dword [0x5e9720]
jmp 0x53839f
fld dword [esp + 0x18]
fcomp dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x53839b
fld dword [0x5e971c]
jmp 0x53839f
fld dword [esp + 0x18]
fstp dword [edi]
fld dword [esp + 0x10]
fcomp dword [0x5e9720]
fnstsw ax
test ah, 5
jp 0x5383ba
fld dword [0x5e9720]
jmp 0x5383d7
fld dword [esp + 0x10]
fcomp dword [0x5e971c]
fnstsw ax
test ah, 0x41
jne 0x5383d3
fld dword [0x5e971c]
jmp 0x5383d7
fld dword [esp + 0x10]
fstp dword [edi + 4]
cmp ecx, edx
jne 0x538404
mov eax, dword [esp + 0x50]
imul dword [esp + 0x44]
shrd eax, edx, 0xe
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0xa8]
add eax, edx
mov dword [esp + 0x28], eax
jmp 0x538443
mov eax, dword [esp + 0x3c]
add eax, 0xfffffffe
cmp ecx, eax
jne 0x538435
mov eax, dword [esp + 0x68]
imul dword [esp + 0x44]
shrd eax, edx, 0xe
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0xa0]
add eax, edx
mov dword [esp + 0x28], eax
jmp 0x538443
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
add edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x3c]
inc ecx
add edi, 0x10
cmp ecx, eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x20], edi
jl 0x537e28
mov edi, dword [esp + 0x128]
mov ecx, dword [esp + 0x38]
cmp ecx, dword [esp + 0x40]
jne 0x538492
mov eax, dword [esp + 0x4c]
imul dword [esp + 0x48]
shrd eax, edx, 0xe
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x90]
add eax, edx
mov dword [esp + 0x24], eax
jmp 0x5384d1
mov eax, dword [esp + 0x2c]
add eax, 0xfffffffe
cmp ecx, eax
jne 0x5384c3
mov eax, dword [esp + 0x6c]
imul dword [esp + 0x48]
shrd eax, edx, 0xe
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x94]
add eax, edx
mov dword [esp + 0x24], eax
jmp 0x5384d1
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x48]
add edx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x2c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x38], ecx
jl 0x537cf3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret 0x30