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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3a4
push ebx
push esi
mov esi, dword [ebp + 0x18]
xor ecx, ecx
cmp esi, 3
push edi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], ecx
jl 0x561bac
fld qword [ebp + 0x24]
fcomp qword [ebp + 0x1c]
fnstsw ax
test ah, 0x40
jne 0x561bac
fld qword [ebp + 0x24]
fsub qword [ebp + 0x1c]
mov edi, dword [ebp + 8]
xor ebx, ebx
mov dword [esp + 0x14], ecx
fmul qword [0x5ff770]
fld qword [ebp + 0x1c]
fadd qword [ebp + 0x24]
fmul qword [0x5ff1b8]
fld st(0)
fadd st(2)
fstp qword [esp + 0x30]
fsub st(1)
fstp qword [esp + 0x40]
fstp st(0)
fld qword [edi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 1
je 0x5618e6
fld qword [edi]
fcomp qword [esp + 0x40]
fnstsw ax
test ah, 0x41
jne 0x5618e6
mov edx, 1
cmp esi, edx
jle 0x5618e6
lea esi, [edi + 8]
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 1
je 0x5618e4
fld qword [esi]
fcomp qword [esp + 0x40]
fnstsw ax
test ah, 0x41
jne 0x5618e4
mov eax, dword [ebp + 0x18]
inc edx
add esi, 8
cmp edx, eax
jl 0x5618bd
jmp 0x5618e6
mov ecx, edx
fld qword [edi + ecx*8]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 1
jne 0x562123
mov eax, dword [ebp + 0x18]
or esi, 0xffffffff
inc ecx
mov dword [esp + 0xc], esi
cmp ecx, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], esi
jge 0x562a65
lea edx, [edi + ecx*8]
test ebx, ebx
je 0x561927
fld qword [edx]
fcomp qword [esp + 0x40]
fnstsw ax
test ah, 0x41
jne 0x561977
mov eax, dword [esp + 0x14]
test eax, eax
je 0x561949
test ebx, ebx
jne 0x561966
fld qword [edx]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 1
jne 0x561966
mov ebx, 1
mov esi, ecx
jmp 0x561966
test ebx, ebx
jne 0x561966
fld qword [edx]
fcomp qword [esp + 0x40]
fnstsw ax
test ah, 0x41
je 0x561966
mov dword [esp + 0x14], 1
mov dword [esp + 0xc], ecx
mov eax, dword [ebp + 0x18]
inc ecx
add edx, 8
cmp ecx, eax
jl 0x561916
mov dword [esp + 0x10], esi
jmp 0x56197f
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0xc]
test eax, eax
jle 0x562a65
test esi, esi
jle 0x561ee4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0x28]
mov edi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x20]
sub eax, ecx
lea ecx, [edx + ecx*8]
lea edx, [esp + 0x18]
inc eax
push edx
push 0xc8
push eax
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0x1c]
push esi
push edi
push ebx
lea edx, [esp + 0xa8]
push eax
push edx
push ecx
mov dword [esp + 0x8c], ecx
call fcn.0054a890
add esp, 0x24
test eax, eax
jl 0x561bac
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
test eax, eax
mov dword [esp + 0x54], ecx
jle 0x561bb8
mov edx, eax
mov eax, dword [esp + 0x10]
sub edx, eax
lea ecx, [edx + 1]
mov edx, dword [ebp + 8]
mov dword [esp + 0x74], ecx
lea eax, [edx + eax*8]
lea edx, [esp + 0x18]
push edx
push 0xc8
push ecx
mov ecx, dword [ebp + 0x1c]
push esi
push edi
push ebx
lea edx, [esp + 0xa8]
push ecx
push edx
push eax
mov dword [esp + 0x80], eax
call fcn.0054a890
add esp, 0x24
test eax, eax
jl 0x561bac
fld qword [esp + 0x18]
fsub qword [esp + 0x50]
mov ebx, dword [esp + 0x24]
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
fld st(0)
fmul qword [0x5ff4e0]
lea esi, [edx + ebx*8]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
or ecx, 0xffffffff
fadd qword [esp + 0x50]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], 0
fstp qword [esp + 0x30]
fld st(0)
fmul qword [0x60aa70]
fadd qword [esp + 0x50]
fstp qword [esp + 0x60]
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x561aed
mov edi, dword [ebp + 0x18]
mov edx, ebx
cmp ebx, edi
jge 0x561ac2
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x561ae9
inc edx
add esi, 8
cmp edx, edi
jl 0x561aad
mov edi, dword [esp + 0x10]
cmp ecx, edi
mov edx, ecx
jl 0x561b2f
mov eax, dword [ebp + 8]
lea esi, [eax + ecx*8]
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x561b2b
dec edx
sub esi, 8
cmp edx, edi
jge 0x561ad2
jmp 0x561b2f
mov ecx, edx
jmp 0x561ac2
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x40
je 0x561afe
mov ecx, ebx
jmp 0x561ac2
mov edi, dword [esp + 0x10]
mov edx, ebx
cmp ebx, edi
jl 0x561ac6
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 1
je 0x561b1f
dec edx
sub esi, 8
cmp edx, edi
jge 0x561b08
jmp 0x561ac6
mov ecx, edx
mov dword [esp + 0x20], 1
jmp 0x561ac6
mov dword [esp + 0x14], edx
test ecx, ecx
mov dword [esp + 0x24], 0xffffffff
jl 0x561b72
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x561b72
mov edx, dword [esp + 0x20]
test edx, edx
je 0x561b50
cmp ecx, eax
jne 0x561b50
inc ecx
sub ecx, eax
sub ebx, eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x24], ebx
fild dword [esp + 0x70]
mov dword [esp + 0x70], 1
fdiv qword [ebp + 0xc]
fstp qword [esp + 0x88]
fmul qword [0x60aad0]
mov eax, dword [esp + 0x74]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
sub esp, 8
fstp qword [esp]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
call fcn.0054a9d0
add esp, 0x20
test eax, eax
jge 0x561d51
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 8]
sub eax, ecx
mov dword [esp + 0x14], eax
lea ecx, [edx + ecx*8]
lea edx, [esp + 0x18]
push edx
push 0xc8
push eax
mov eax, dword [ebp + 0x1c]
push esi
push edi
push ebx
lea edx, [esp + 0xa8]
push eax
push edx
push ecx
mov dword [esp + 0x80], ecx
call fcn.0054a890
add esp, 0x24
test eax, eax
jl 0x561bac
fld qword [esp + 0x18]
fsub qword [esp + 0x50]
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
fld st(0)
fmul qword [0x5ff4e0]
mov dword [esp + 0x44], ecx
or ecx, 0xffffffff
or ebx, 0xffffffff
mov dword [esp + 0x20], 0
fadd qword [esp + 0x50]
fstp qword [esp + 0x30]
fld st(0)
fmul qword [0x60aa70]
fadd qword [esp + 0x50]
fstp qword [esp + 0x60]
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x561c77
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
cmp edx, edi
jge 0x561caf
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x561c73
inc edx
add esi, 8
cmp edx, edi
jl 0x561c5c
jmp 0x561caf
mov ecx, edx
jmp 0x561caf
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x40
je 0x561c8a
mov ecx, dword [esp + 0xc]
jmp 0x561caf
mov edx, dword [esp + 0xc]
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 1
je 0x561ca5
dec edx
sub esi, 8
test edx, edx
jge 0x561c8e
jmp 0x561caf
mov ecx, edx
mov dword [esp + 0x20], 1
test ecx, ecx
mov edx, ecx
jl 0x561cd4
mov eax, dword [ebp + 8]
lea esi, [eax + ecx*8]
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x561cd2
dec edx
sub esi, 8
test edx, edx
jge 0x561cbb
jmp 0x561cd4
mov ebx, edx
test ecx, ecx
mov dword [esp + 0x24], 0xffffffff
jl 0x561d17
test ebx, ebx
jl 0x561d17
mov eax, dword [esp + 0x20]
test eax, eax
je 0x561cf1
cmp ecx, ebx
jne 0x561cf1
inc ecx
sub ecx, ebx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], ecx
sub eax, ebx
fild dword [esp + 0x74]
mov dword [esp + 0x70], 1
mov dword [esp + 0x24], eax
fdiv qword [ebp + 0xc]
fstp qword [esp + 0x88]
fmul qword [0x60aad0]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
sub esp, 8
fstp qword [esp]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
call fcn.0054a9d0
add esp, 0x20
test eax, eax
jl 0x561bac
mov ebx, dword [esp + 0x5c]
or edx, 0xffffffff
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], 0
fld qword [ebx]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x561dbe
mov ecx, dword [esp + 0x10]
mov edi, dword [ebp + 0x18]
cmp ecx, edi
jge 0x561d93
mov esi, ebx
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x561dba
inc ecx
add esi, 8
cmp ecx, edi
jl 0x561d7e
mov esi, dword [esp + 0xc]
cmp edx, esi
mov ecx, edx
jl 0x561e06
mov eax, dword [ebp + 8]
lea edi, [eax + edx*8]
fld qword [edi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x561e02
dec ecx
sub edi, 8
cmp ecx, esi
jge 0x561da3
jmp 0x561e06
mov edx, ecx
jmp 0x561d93
fld qword [ebx]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 0x40
je 0x561dd1
mov edx, dword [esp + 0x10]
jmp 0x561d93
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
cmp ecx, esi
jl 0x561d97
mov edi, ebx
fld qword [edi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 0x41
jne 0x561df6
dec ecx
sub edi, 8
cmp ecx, esi
jge 0x561ddf
jmp 0x561d97
mov edx, ecx
mov dword [esp + 0x20], 1
jmp 0x561d97
mov esi, ecx
jmp 0x561e0a
mov esi, dword [esp + 0x14]
test edx, edx
jl 0x561e3b
test esi, esi
jl 0x561e3b
mov eax, dword [esp + 0x20]
test eax, eax
je 0x561e1f
cmp edx, esi
jne 0x561e1f
inc edx
sub edx, esi
mov dword [esp + 0x78], 1
mov dword [esp + 0x74], edx
fild dword [esp + 0x74]
fdiv qword [ebp + 0xc]
fstp qword [esp + 0x80]
fld qword [esp + 0x40]
fsub qword [esp + 0x50]
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x28]
lea edx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
sub esp, 8
fmul qword [0x60aad0]
fstp qword [esp]
push eax
mov eax, dword [esp + 0x7c]
push ecx
push edx
push eax
call fcn.0054aaf0
add esp, 0x20
test eax, eax
jl 0x561bac
test esi, esi
jl 0x561ea5
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
test edi, edi
jl 0x561e97
mov ecx, eax
sub ecx, esi
add edi, ecx
mov dword [esp + 0x4c], edi
mov edx, dword [esp + 0x3c]
test edx, edx
jl 0x561eb3
sub eax, esi
add edx, eax
jmp 0x561eaf
or edi, 0xffffffff
or edx, 0xffffffff
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x24]
test eax, eax
jl 0x56294e
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jl 0x561ecd
add ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
jl 0x562959
add ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x562959
jge 0x562a65
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0x28]
mov edi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x20]
sub eax, ecx
lea ecx, [edx + ecx*8]
lea edx, [esp + 0x18]
mov dword [esp + 0x14], eax
push edx
push 0xc8
push eax
mov eax, dword [ebp + 0x1c]
push esi
push edi
push ebx
lea edx, [esp + 0xa8]
push eax
push edx
push ecx
mov dword [esp + 0x8c], ecx
call fcn.0054a890
add esp, 0x24
test eax, eax
jl 0x561bac
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x18]
inc eax
push edx
push 0xc8
push eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x60], ecx
mov ecx, dword [ebp + 0x1c]
push esi
push edi
push ebx
lea edx, [esp + 0xa8]
push ecx
push edx
push eax
call fcn.0054a890
add esp, 0x24
test eax, eax
jl 0x561bac
fld qword [esp + 0x18]
fsub qword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x68]
fld st(0)
fmul qword [0x5ff4e0]
mov dword [esp + 0x44], edx
or edx, 0xffffffff
or ebx, 0xffffffff
mov dword [esp + 0x20], 0
fadd qword [esp + 0x50]
fstp qword [esp + 0x30]
fld st(0)
fmul qword [0x60aa70]
fadd qword [esp + 0x50]
fstp qword [esp + 0x60]
fld qword [ecx]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x561ffc
mov ecx, dword [esp + 0xc]
mov edi, dword [ebp + 0x18]
cmp ecx, edi
jge 0x562038
mov esi, dword [esp + 0x68]
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x561ff8
inc ecx
add esi, 8
cmp ecx, edi
jl 0x561fe1
jmp 0x562038
mov edx, ecx
jmp 0x562038
fld qword [ecx]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x40
je 0x56200f
mov edx, dword [esp + 0xc]
jmp 0x562038
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x68]
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 1
je 0x56202e
dec ecx
sub esi, 8
test ecx, ecx
jge 0x562017
jmp 0x562038
mov edx, ecx
mov dword [esp + 0x20], 1
test edx, edx
mov ecx, edx
jl 0x56208a
mov eax, dword [ebp + 8]
lea esi, [eax + edx*8]
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x56205b
dec ecx
sub esi, 8
test ecx, ecx
jge 0x562044
jmp 0x56205d
mov ebx, ecx
test ebx, ebx
jl 0x56208a
mov eax, dword [esp + 0x20]
test eax, eax
je 0x56206e
cmp edx, ebx
jne 0x56206e
inc edx
sub edx, ebx
mov dword [esp + 0x70], 1
mov dword [esp + 0x6c], edx
fild dword [esp + 0x6c]
fdiv qword [ebp + 0xc]
fstp qword [esp + 0x88]
fmul qword [0x60aad0]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x28]
lea edx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
sub esp, 8
fstp qword [esp]
push eax
mov eax, dword [esp + 0x7c]
push ecx
push edx
push eax
call fcn.0054aaf0
add esp, 0x20
test eax, eax
jl 0x561bac
test ebx, ebx
jl 0x562105
mov eax, dword [esp + 0x2c]
test eax, eax
mov eax, dword [esp + 0xc]
jl 0x5620e2
mov edx, dword [esp + 0x2c]
mov ecx, eax
sub ecx, ebx
add edx, ecx
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x28]
test ecx, ecx
jl 0x562110
sub eax, ebx
or edi, 0xffffffff
add ecx, eax
or edx, 0xffffffff
mov dword [esp + 0x28], ecx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], edx
jmp 0x562959
or eax, 0xffffffff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
or edi, 0xffffffff
or edx, 0xffffffff
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], edx
jmp 0x562959
fld qword [edi + ecx*8]
fcomp qword [esp + 0x40]
fnstsw ax
test ah, 0x41
je 0x562a65
mov eax, dword [ebp + 0x18]
or esi, 0xffffffff
inc ecx
mov dword [esp + 0x10], esi
cmp ecx, eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x24], esi
jge 0x562a65
lea edx, [edi + ecx*8]
test ebx, ebx
je 0x562164
fld qword [edx]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 1
je 0x5621b4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x562188
test ebx, ebx
jne 0x5621a3
fld qword [edx]
fcomp qword [esp + 0x40]
fnstsw ax
test ah, 0x41
je 0x5621a3
mov ebx, 1
mov dword [esp + 0xc], ecx
jmp 0x5621a3
test ebx, ebx
jne 0x5621a3
fld qword [edx]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 1
jne 0x5621a3
mov dword [esp + 0x14], 1
mov esi, ecx
mov eax, dword [ebp + 0x18]
inc ecx
add edx, 8
cmp ecx, eax
jl 0x562153
mov dword [esp + 0x10], esi
jmp 0x5621bc
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0xc]
test eax, eax
jle 0x56272a
test esi, esi
jle 0x562a65
mov ecx, dword [esp + 0x10]
mov edx, eax
sub edx, ecx
mov esi, dword [ebp + 0x28]
mov edi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x20]
lea eax, [edx + 1]
mov edx, dword [ebp + 8]
mov dword [esp + 0x7c], eax
lea ecx, [edx + ecx*8]
lea edx, [esp + 0x18]
push edx
push 0xc8
push eax
mov eax, dword [ebp + 0x1c]
push esi
push edi
push ebx
lea edx, [esp + 0xa8]
push eax
push edx
push ecx
mov dword [esp + 0x80], ecx
call fcn.0054a890
add esp, 0x24
test eax, eax
jl 0x561bac
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
test eax, eax
mov dword [esp + 0x44], ecx
jle 0x5623f5
mov edx, eax
mov eax, dword [esp + 0xc]
sub edx, eax
lea ecx, [edx + 1]
mov edx, dword [ebp + 8]
mov dword [esp + 0x74], ecx
lea eax, [edx + eax*8]
lea edx, [esp + 0x18]
push edx
push 0xc8
push ecx
mov ecx, dword [ebp + 0x1c]
push esi
push edi
push ebx
lea edx, [esp + 0xa8]
push ecx
push edx
push eax
mov dword [esp + 0x8c], eax
call fcn.0054a890
add esp, 0x24
test eax, eax
jl 0x561bac
fld qword [esp + 0x40]
fsub qword [esp + 0x18]
mov ebx, dword [esp + 0x24]
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
fld st(0)
fmul qword [0x5ff4e0]
lea esi, [edx + ebx*8]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
or ecx, 0xffffffff
fadd qword [esp + 0x18]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], 0
fstp qword [esp + 0x30]
fld st(0)
fmul qword [0x60aa70]
fadd qword [esp + 0x18]
fstp qword [esp + 0x60]
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x56232a
mov edi, dword [ebp + 0x18]
mov edx, ebx
cmp ebx, edi
jge 0x5622ff
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x562326
inc edx
add esi, 8
cmp edx, edi
jl 0x5622ea
mov edi, dword [esp + 0xc]
cmp ecx, edi
mov edx, ecx
jl 0x56236c
mov eax, dword [ebp + 8]
lea esi, [eax + ecx*8]
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x562368
dec edx
sub esi, 8
cmp edx, edi
jge 0x56230f
jmp 0x56236c
mov ecx, edx
jmp 0x5622ff
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 0x40
je 0x56233b
mov ecx, ebx
jmp 0x5622ff
mov edi, dword [esp + 0xc]
mov edx, ebx
cmp ebx, edi
jl 0x562303
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 0x41
jne 0x56235c
dec edx
sub esi, 8
cmp edx, edi
jge 0x562345
jmp 0x562303
mov ecx, edx
mov dword [esp + 0x20], 1
jmp 0x562303
mov dword [esp + 0x14], edx
test ecx, ecx
mov dword [esp + 0x24], 0xffffffff
jl 0x5623af
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x5623af
mov edx, dword [esp + 0x20]
test edx, edx
je 0x56238d
cmp ecx, eax
jne 0x56238d
inc ecx
sub ecx, eax
sub ebx, eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], 1
fild dword [esp + 0x6c]
mov dword [esp + 0x24], ebx
fdiv qword [ebp + 0xc]
fstp qword [esp + 0x80]
fmul qword [0x60aad0]
mov eax, dword [esp + 0x74]
lea ecx, [esp + 0x28]
lea edx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
sub esp, 8
fstp qword [esp]
push eax
mov eax, dword [esp + 0x7c]
push ecx
push edx
push eax
call fcn.0054aaf0
add esp, 0x20
test eax, eax
jge 0x562592
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 8]
sub eax, ecx
mov dword [esp + 0x14], eax
lea ecx, [edx + ecx*8]
lea edx, [esp + 0x18]
push edx
push 0xc8
push eax
mov eax, dword [ebp + 0x1c]
push esi
push edi
push ebx
lea edx, [esp + 0xa8]
push eax
push edx
push ecx
mov dword [esp + 0x8c], ecx
call fcn.0054a890
add esp, 0x24
test eax, eax
jl 0x561bac
fld qword [esp + 0x40]
fsub qword [esp + 0x18]
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
fld st(0)
fmul qword [0x5ff4e0]
mov dword [esp + 0x54], ecx
or ecx, 0xffffffff
or ebx, 0xffffffff
mov dword [esp + 0x20], 0
fadd qword [esp + 0x18]
fstp qword [esp + 0x30]
fld st(0)
fmul qword [0x60aa70]
fadd qword [esp + 0x18]
fstp qword [esp + 0x60]
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x5624b8
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
cmp edx, edi
jge 0x5624f0
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x5624b4
inc edx
add esi, 8
cmp edx, edi
jl 0x56249d
jmp 0x5624f0
mov ecx, edx
jmp 0x5624f0
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 0x40
je 0x5624cb
mov ecx, dword [esp + 0x10]
jmp 0x5624f0
mov edx, dword [esp + 0x10]
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 0x41
jne 0x5624e6
dec edx
sub esi, 8
test edx, edx
jge 0x5624cf
jmp 0x5624f0
mov ecx, edx
mov dword [esp + 0x20], 1
test ecx, ecx
mov edx, ecx
jl 0x562515
mov eax, dword [ebp + 8]
lea esi, [eax + ecx*8]
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x562513
dec edx
sub esi, 8
test edx, edx
jge 0x5624fc
jmp 0x562515
mov ebx, edx
test ecx, ecx
mov dword [esp + 0x24], 0xffffffff
jl 0x562558
test ebx, ebx
jl 0x562558
mov eax, dword [esp + 0x20]
test eax, eax
je 0x562532
cmp ecx, ebx
jne 0x562532
inc ecx
sub ecx, ebx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x6c], ecx
sub eax, ebx
fild dword [esp + 0x6c]
mov dword [esp + 0x78], 1
mov dword [esp + 0x24], eax
fdiv qword [ebp + 0xc]
fstp qword [esp + 0x80]
fmul qword [0x60aad0]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x28]
lea edx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
sub esp, 8
fstp qword [esp]
push eax
mov eax, dword [esp + 0x7c]
push ecx
push edx
push eax
call fcn.0054aaf0
add esp, 0x20
test eax, eax
jl 0x561bac
mov ebx, dword [esp + 0x68]
or edx, 0xffffffff
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], 0
fld qword [ebx]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x5625ff
mov ecx, dword [esp + 0xc]
mov edi, dword [ebp + 0x18]
cmp ecx, edi
jge 0x5625d4
mov esi, ebx
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x5625fb
inc ecx
add esi, 8
cmp ecx, edi
jl 0x5625bf
mov esi, dword [esp + 0x10]
cmp edx, esi
mov ecx, edx
jl 0x562647
mov eax, dword [ebp + 8]
lea edi, [eax + edx*8]
fld qword [edi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x562643
dec ecx
sub edi, 8
cmp ecx, esi
jge 0x5625e4
jmp 0x562647
mov edx, ecx
jmp 0x5625d4
fld qword [ebx]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x40
je 0x562612
mov edx, dword [esp + 0xc]
jmp 0x5625d4
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
cmp ecx, esi
jl 0x5625d8
mov edi, ebx
fld qword [edi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 1
je 0x562637
dec ecx
sub edi, 8
cmp ecx, esi
jge 0x562620
jmp 0x5625d8
mov edx, ecx
mov dword [esp + 0x20], 1
jmp 0x5625d8
mov esi, ecx
jmp 0x56264b
mov esi, dword [esp + 0x14]
test edx, edx
jl 0x56267c
test esi, esi
jl 0x56267c
mov eax, dword [esp + 0x20]
test eax, eax
je 0x562660
cmp edx, esi
jne 0x562660
inc edx
sub edx, esi
mov dword [esp + 0x70], 1
mov dword [esp + 0x6c], edx
fild dword [esp + 0x6c]
fdiv qword [ebp + 0xc]
fstp qword [esp + 0x88]
fld qword [esp + 0x40]
fsub qword [esp + 0x50]
mov eax, dword [esp + 0x7c]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x48]
sub esp, 8
fmul qword [0x60aad0]
fstp qword [esp]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
call fcn.0054a9d0
add esp, 0x20
test eax, eax
jl 0x561bac
test esi, esi
jl 0x5626ee
mov eax, dword [esp + 0x2c]
test eax, eax
mov eax, dword [esp + 0xc]
jl 0x5626dc
mov edx, dword [esp + 0x2c]
mov ecx, eax
sub ecx, esi
add edx, ecx
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x28]
test ecx, ecx
jl 0x5626f9
sub eax, esi
add ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x5626f9
or eax, 0xffffffff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
test eax, eax
jl 0x562110
mov edi, dword [esp + 0x4c]
test edi, edi
jl 0x562713
add edi, eax
mov dword [esp + 0x4c], edi
mov edx, dword [esp + 0x3c]
test edx, edx
jl 0x562959
add edx, eax
mov dword [esp + 0x3c], edx
jmp 0x562959
test esi, esi
jle 0x562a65
mov eax, dword [esp + 0xc]
test eax, eax
jge 0x562a65
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0x28]
mov edi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x20]
sub eax, ecx
lea ecx, [edx + ecx*8]
lea edx, [esp + 0x18]
mov dword [esp + 0x14], eax
push edx
push 0xc8
push eax
mov eax, dword [ebp + 0x1c]
push esi
push edi
push ebx
lea edx, [esp + 0xa8]
push eax
push edx
push ecx
mov dword [esp + 0x80], ecx
call fcn.0054a890
add esp, 0x24
test eax, eax
jl 0x561bac
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x18]
inc eax
push edx
push 0xc8
push eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x50], ecx
mov ecx, dword [ebp + 0x1c]
push esi
push edi
push ebx
lea edx, [esp + 0xa8]
push ecx
push edx
push eax
call fcn.0054a890
add esp, 0x24
test eax, eax
jl 0x561bac
fld qword [esp + 0x40]
fsub qword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x5c]
fld st(0)
fmul qword [0x5ff4e0]
mov dword [esp + 0x54], edx
or edx, 0xffffffff
or ebx, 0xffffffff
mov dword [esp + 0x20], 0
fadd qword [esp + 0x18]
fstp qword [esp + 0x30]
fld st(0)
fmul qword [0x60aa70]
fadd qword [esp + 0x18]
fstp qword [esp + 0x60]
fld qword [ecx]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x562850
mov ecx, dword [esp + 0x10]
mov edi, dword [ebp + 0x18]
cmp ecx, edi
jge 0x56288c
mov esi, dword [esp + 0x5c]
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 1
je 0x56284c
inc ecx
add esi, 8
cmp ecx, edi
jl 0x562835
jmp 0x56288c
mov edx, ecx
jmp 0x56288c
fld qword [ecx]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 0x40
je 0x562863
mov edx, dword [esp + 0x10]
jmp 0x56288c
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x5c]
fld qword [esi]
fcomp qword [esp + 0x60]
fnstsw ax
test ah, 0x41
jne 0x562882
dec ecx
sub esi, 8
test ecx, ecx
jge 0x56286b
jmp 0x56288c
mov edx, ecx
mov dword [esp + 0x20], 1
test edx, edx
mov ecx, edx
jl 0x5628de
mov eax, dword [ebp + 8]
lea esi, [eax + edx*8]
fld qword [esi]
fcomp qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x5628af
dec ecx
sub esi, 8
test ecx, ecx
jge 0x562898
jmp 0x5628b1
mov ebx, ecx
test ebx, ebx
jl 0x5628de
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5628c2
cmp edx, ebx
jne 0x5628c2
inc edx
sub edx, ebx
mov dword [esp + 0x78], 1
mov dword [esp + 0x7c], edx
fild dword [esp + 0x7c]
fdiv qword [ebp + 0xc]
fstp qword [esp + 0x80]
fmul qword [0x60aad0]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x48]
sub esp, 8
fstp qword [esp]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
call fcn.0054a9d0
add esp, 0x20
test eax, eax
jl 0x561bac
test ebx, ebx
jl 0x562940
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
test edi, edi
jl 0x562932
mov ecx, eax
sub ecx, ebx
add edi, ecx
mov dword [esp + 0x4c], edi
mov edx, dword [esp + 0x3c]
test edx, edx
jl 0x56294e
sub eax, ebx
add edx, eax
jmp 0x56294a
or edi, 0xffffffff
or edx, 0xffffffff
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], edx
or eax, 0xffffffff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
fld qword [esp + 0x50]
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
fstp qword [eax]
fld qword [esp + 0x40]
fsub qword [esp + 0x50]
fld qword [ebp + 0x24]
fsub qword [esp + 0x40]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], esi
mov esi, dword [esp + 0x78]
mov ecx, 0xbff00000
fdiv st(1)
test esi, esi
fmul qword [0x5fdad8]
fstp qword [eax + 0x10]
fld qword [esp + 0x50]
fsub qword [ebp + 0x1c]
fdiv st(1)
fmul qword [0x5fdad8]
fstp qword [eax + 0x18]
fstp st(0)
je 0x5629c1
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], ebx
jmp 0x5629cb
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], ecx
mov esi, dword [esp + 0x70]
test esi, esi
je 0x5629e9
mov esi, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
mov dword [eax + 0x28], esi
mov dword [eax + 0x2c], ebx
jmp 0x5629f3
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], ecx
xor esi, esi
cmp edi, esi
jl 0x562a05
fild dword [esp + 0x4c]
fdiv qword [ebp + 0xc]
fstp qword [eax + 0x30]
jmp 0x562a0b
mov dword [eax + 0x30], esi
mov dword [eax + 0x34], ecx
cmp edx, esi
jl 0x562a1b
fild dword [esp + 0x3c]
fdiv qword [ebp + 0xc]
fstp qword [eax + 0x38]
jmp 0x562a21
mov dword [eax + 0x38], esi
mov dword [eax + 0x3c], ecx
cmp dword [esp + 0x2c], esi
jl 0x562a33
fild dword [esp + 0x2c]
fdiv qword [ebp + 0xc]
fstp qword [eax + 0x40]
jmp 0x562a39
mov dword [eax + 0x40], esi
mov dword [eax + 0x44], ecx
cmp dword [esp + 0x28], esi
jl 0x562a54
fild dword [esp + 0x28]
fdiv qword [ebp + 0xc]
fstp qword [eax + 0x48]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov dword [eax + 0x48], esi
mov dword [eax + 0x4c], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov eax, dword [ebp + 0x14]
xor edx, edx
mov ecx, 0xbff00000
pop edi
mov dword [eax], edx
mov dword [eax + 8], edx
mov dword [eax + 0x10], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x20], edx
mov dword [eax + 0x28], edx
mov dword [eax + 0x30], edx
mov dword [eax + 0x38], edx
mov dword [eax + 0x40], edx
mov dword [eax + 0x48], edx
mov dword [eax + 4], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x24], ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x34], ecx
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x44], ecx
mov dword [eax + 0x4c], ecx
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24