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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5310ea
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
fld dword [0x54fb38]
push ebx
push esi
mov esi, ecx
fld dword [esi + 0x24]
push edi
fucompp
fnstsw ax
test ah, 0x44
jnp 0x421475
mov eax, dword [esi + 0x184]
xor ebx, ebx
test eax, eax
mov dword [esp + 0x44], ebx
jg 0x421490
mov ecx, dword [esp + 0x74]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [esp + 0x44]
lea ecx, [ecx]
test ebx, ebx
jl 0x4228bd
cmp ebx, dword [esi + 0x184]
jge 0x4228bd
mov eax, dword [esi + 0x180]
lea edx, [ebx*4]
mov edi, dword [eax + edx]
add eax, edx
mov eax, dword [esi + 0x108]
cmp ebx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], edi
jge 0x4214f8
cmp ebx, eax
jge 0x4228bd
mov eax, dword [esi + 0x104]
fld dword [ebp + 8]
mov ecx, dword [eax + edx]
fadd dword [ecx + 4]
add eax, edx
fst dword [ecx + 4]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x4214f8
mov dword [ecx + 4], 0
mov eax, dword [esi + 0x114]
test eax, eax
jne 0x421558
fld dword [edi + 0x80]
fmul dword [0x550ea0]
call fcn.004eaa58
push eax
mov ecx, esi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
jge 0x42152d
fadd dword [0x550c50]
fmul dword [0x550234]
mov eax, dword [esi + 0x184]
fld dword [edi + 0x80]
mov edx, dword [esp + 0x18]
fmul dword [0x54fb3c]
lea eax, [eax + eax*4]
shl eax, 1
fsubp st(1)
fstp dword [esi + 0x118]
jmp 0x421559
dec eax
fld dword [esi + 0x118]
mov dword [esi + 0x114], eax
fadd dword [edi + 0x58]
fcom dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x42157d
fstp st(0)
fld dword [0x54fb38]
fmul dword [esi + 0x1b8]
fstp dword [esp + 0x20]
fld dword [0x54fb38]
fld dword [esp + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4215bd
mov eax, dword [esi + 0x108]
cmp ebx, eax
jge 0x4215bd
cmp ebx, eax
jge 0x4228bd
mov eax, dword [esi + 0x104]
add eax, edx
mov eax, dword [eax]
mov dword [eax + 4], 0
mov eax, dword [esi + 0x1fc]
dec eax
mov dword [esp + 0x14], 0
je 0x421624
dec eax
je 0x4215f3
dec eax
jne 0x4216ae
fld dword [esi + 0x1e0]
fmul dword [esi + 0x1dc]
fmul qword [0x550ec8]
fstp dword [esp + 0x14]
jmp 0x4216ae
fld dword [esi + 0x1e0]
fld dword [esi + 0x1dc]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fmul dword [0x54fb3c]
fsqrt
fstp st(2)
fstp st(0)
fmul dword [0x550ec4]
fstp dword [esp + 0x14]
jmp 0x4216ae
mov ecx, dword [esi + 0x2c4]
mov eax, 1
cmp ecx, eax
jle 0x4216ae
test eax, eax
jl 0x4228bd
cmp eax, dword [esi + 0x2c4]
jge 0x4228bd
mov ecx, dword [esi + 0x2c0]
lea edx, [eax*4]
add ecx, edx
mov ecx, dword [ecx]
lea edi, [eax - 1]
test edi, edi
jl 0x4228bd
cmp edi, dword [esi + 0x2c4]
jge 0x4228bd
mov edi, dword [esi + 0x2c0]
fld dword [ecx + 4]
lea edx, [edi + edx - 4]
mov edx, dword [edx]
fsub dword [edx + 4]
inc eax
fld dword [ecx + 8]
mov ecx, dword [esi + 0x2c4]
cmp eax, ecx
fsub dword [edx + 8]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
jl 0x421633
mov edx, dword [esp + 0x18]
mov edi, dword [esi + 0x108]
fld dword [0x54fb38]
cmp ebx, edi
jge 0x4216d7
mov eax, edi
fstp st(0)
cmp ebx, eax
jge 0x4228bd
mov eax, dword [esi + 0x104]
add eax, edx
mov eax, dword [eax]
fld dword [eax + 4]
fmul dword [esp + 0x20]
call fcn.004eaa58
mov edx, eax
test edx, edx
mov dword [esp + 0x24], edx
jle 0x42172c
cmp ebx, edi
fild dword [esp + 0x24]
fdiv dword [esp + 0x20]
jge 0x42172a
cmp ebx, dword [esi + 0x108]
jge 0x4228bb
mov eax, dword [esi + 0x104]
add eax, dword [esp + 0x18]
mov ecx, dword [eax]
fsubr dword [ecx + 4]
fst dword [ecx + 4]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x42172c
mov dword [ecx + 4], 0
jmp 0x42172c
fstp st(0)
test edx, edx
mov dword [esp + 0x20], 0
jle 0x42286c
lea esp, [esp]
mov edx, dword [esi + 0x19c]
xor ecx, ecx
xor ebx, ebx
test edx, edx
jle 0x4217a9
mov edi, edi
test ecx, ecx
jl 0x4228bd
cmp ecx, dword [esi + 0x19c]
jge 0x4228bd
mov eax, dword [esi + 0x198]
mov edi, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [edi + 0x6c]
test eax, eax
je 0x42179a
fld dword [edi + 0x80]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 0x41
jp 0x42179a
mov eax, dword [esp + 0x10]
cmp dword [edi + 0x178], eax
je 0x421885
inc ecx
lea eax, [edx - 1]
cmp ecx, eax
jle 0x4217a4
xor ecx, ecx
inc ebx
cmp ebx, edx
jl 0x421750
push 0x44c
call fcn.005043b5
add esp, 4
mov dword [esp + 0x30], eax
xor edi, edi
cmp eax, edi
mov dword [esp + 0x7c], edi
je 0x4217cd
mov ecx, eax
call fcn.00420c90
mov edi, eax
test edi, edi
mov dword [esp + 0x7c], 0xffffffff
je 0x422897
mov dword [edi + 0x128], 0xa
mov dword [edi + 0x6c], 1
mov ecx, dword [esi + 0x50]
mov dword [edi + 0x50], ecx
mov edx, dword [esi + 0x19c]
lea ecx, [esi + 0x194]
push edi
push edx
call fcn.00501f70
mov dword [edi + 0x70], esi
mov eax, dword [esi + 0x190]
mov dword [edi + 0x190], eax
mov edx, dword [esi + 0x224]
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x220]
imul ecx, dword [esi + 0x224]
mov dword [esi + 0x220], edx
mov edx, eax
and edx, 0xffff
imul edx, edx, 0x78b7
shr eax, 0x10
add eax, edx
mov dword [esi + 0x228], eax
and eax, 0xffff
add eax, ecx
shl eax, 1
or eax, 1
imul eax, eax
mov dword [esi + 0x224], ecx
lea eax, [eax + eax*2]
mov dword [edi + 0x220], eax
mov dword [edi + 0x224], 1
mov dword [edi + 0x228], 0
jmp 0x42197c
mov edx, dword [esi + 0x224]
mov eax, dword [esi + 0x228]
mov ecx, dword [esi + 0x220]
imul ecx, dword [esi + 0x224]
mov dword [esi + 0x220], edx
mov edx, eax
and edx, 0xffff
imul edx, edx, 0x78b7
shr eax, 0x10
add eax, edx
mov dword [esi + 0x228], eax
and eax, 0xffff
add eax, ecx
mov dword [esi + 0x224], ecx
xor edx, edx
mov ecx, 0xc8
div ecx
test edx, edx
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
jge 0x4218e5
fadd dword [0x550c50]
fmul dword [0x550234]
mov eax, dword [edi + 0x40]
xor ebx, ebx
test eax, eax
fsub dword [0x54fb34]
fstp dword [edi + 0x11c]
jle 0x42197c
test ebx, ebx
jl 0x4228bd
cmp ebx, dword [edi + 0x40]
jge 0x4228bd
mov edx, dword [edi + 0x3c]
mov eax, dword [edx + ebx*4]
mov ecx, dword [eax + 0xe8]
test ecx, ecx
je 0x421974
mov edx, dword [eax + 0xe4]
mov dword [eax + 0x34], 0
mov ecx, dword [esi + 0x158]
xor eax, eax
test ecx, ecx
jle 0x421974
lea ebx, [ebx]
test eax, eax
jl 0x4228bd
cmp eax, dword [esi + 0x158]
jge 0x4228bd
mov ecx, dword [esi + 0x154]
mov ecx, dword [ecx + eax*4]
cmp dword [ecx + 8], edx
jne 0x421969
mov dword [ecx + 4], 0
mov ecx, dword [esi + 0x158]
inc eax
cmp eax, ecx
jl 0x421940
mov eax, dword [edi + 0x40]
inc ebx
cmp ebx, eax
jl 0x421900
mov edx, dword [esp + 0x10]
mov dword [edi + 0x178], edx
mov eax, dword [esi + 0x60]
mov dword [edi + 0x60], eax
mov dword [edi + 0x12c], 0xffffffff
mov dword [edi + 0x120], 0
fld dword [esi + 8]
fsub dword [esi + 0x10]
mov eax, dword [esi + 0x124]
mov ebx, dword [esp + 0x48]
inc eax
fstp dword [esp + 0x18]
fld dword [esi + 0xc]
mov dword [esi + 0x124], eax
fsub dword [esi + 0x14]
fstp dword [esp + 0x30]
fld dword [0x54fb38]
fld dword [esp + 0x18]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4219e2
mov dword [esp + 0x28], 0x43480000
jmp 0x4219ee
fld dword [esp + 0x30]
fdiv dword [esp + 0x18]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fabs
fcomp qword [0x550eb8]
fnstsw ax
test ah, 0x41
jne 0x421a57
fld dword [esp + 0x30]
fabs
fadd dword [0x54fb34]
call fcn.004eaa58
push eax
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
jge 0x421a2c
fadd dword [0x550c50]
fld dword [esp + 0x30]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x421a3f
fchs
fld dword [esp + 0x28]
fdivr st(1)
fsubr dword [esi + 8]
fstp dword [edi + 8]
fld dword [esi + 0xc]
fsub st(1)
fstp dword [edi + 0xc]
fstp st(0)
jmp 0x421aa7
fld dword [esp + 0x18]
fabs
fadd dword [0x54fb34]
call fcn.004eaa58
push eax
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
jge 0x421a82
fadd dword [0x550c50]
fld dword [esp + 0x18]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x421a95
fchs
fld dword [esi + 8]
fsub st(1)
fstp dword [edi + 8]
fmul dword [esp + 0x28]
fsubr dword [esi + 0xc]
fstp dword [edi + 0xc]
mov ecx, dword [esp + 0x10]
fld dword [ecx + 0x7c]
fmul dword [0x550ed0]
call fcn.004eaa58
mov edx, 1
sub edx, eax
push edx
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
jge 0x421ada
fadd dword [0x550c50]
fmul dword [0x550234]
mov eax, dword [esp + 0x10]
fadd dword [eax + 0x54]
fld dword [eax + 0x7c]
fmul dword [0x54fb3c]
fsubp st(1)
fst dword [edi + 0x80]
fmul dword [esi + 0x1b4]
fst dword [edi + 0x80]
fstp dword [edi + 0x7c]
fld dword [eax + 0x94]
fmul dword [0x550ed0]
call fcn.004eaa58
mov ecx, 1
sub ecx, eax
push ecx
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
jge 0x421b39
fadd dword [0x550c50]
fmul dword [0x550234]
mov eax, dword [esp + 0x10]
fadd dword [eax + 0x6c]
fld dword [eax + 0x94]
fmul dword [0x54fb3c]
fsubp st(1)
fst dword [edi + 0xb0]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x421b71
mov dword [edi + 0xb0], 0
fld dword [edi + 0xb0]
fmul dword [esi + 0x1bc]
fst dword [edi + 0xb0]
fstp dword [edi + 0xb4]
mov eax, dword [esi + 0x1fc]
dec eax
je 0x421f2e
dec eax
je 0x421d84
dec eax
jne 0x42209c
mov eax, dword [esi + 0x218]
test eax, eax
jne 0x421c8e
fld dword [esi + 0x1dc]
fmul dword [0x550eb4]
fld dword [0x54fb34]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x421bd5
fstp st(0)
fld dword [0x54fb34]
call fcn.004eaa58
fld dword [esi + 0x1e0]
fmul dword [0x550eb4]
mov ebx, eax
fld dword [0x54fb34]
mov dword [esp + 0x34], ebx
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x421c03
fstp st(0)
fld dword [0x54fb34]
call fcn.004eaa58
mov dword [esp + 0x30], eax
call fcn.004eacb2
and eax, 0x80000003
jns 0x421c1d
dec eax
or eax, 0xfffffffc
inc eax
imul eax, ebx
mov dword [esp + 0x18], eax
call fcn.004eacb2
cdq
idiv dword [esp + 0x34]
mov eax, dword [esp + 0x18]
add eax, edx
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fld dword [esi + 0x1dc]
fmul dword [0x54fb3c]
fsubp st(1)
fstp dword [esp + 0x34]
call fcn.004eacb2
mov ebx, eax
and ebx, 0x80000003
jns 0x421c62
dec ebx
or ebx, 0xfffffffc
inc ebx
imul ebx, dword [esp + 0x30]
call fcn.004eacb2
cdq
idiv dword [esp + 0x30]
add ebx, edx
mov dword [esp + 0x30], ebx
fild dword [esp + 0x30]
fld dword [esi + 0x1e0]
fmul dword [0x54fb3c]
fsubp st(1)
jmp 0x421d2b
cmp eax, 1
jne 0x421c9d
mov dword [esp + 0x34], 0
jmp 0x421cc6
fild dword [esi + 0x144]
lea edx, [eax - 1]
mov dword [esp + 0x34], edx
fmul dword [esi + 0x1dc]
fidiv dword [esp + 0x34]
fld dword [esi + 0x1dc]
fmul dword [0x54fb3c]
fsubp st(1)
fstp dword [esp + 0x34]
mov ecx, dword [esi + 0x21c]
cmp ecx, 1
jne 0x421cd9
fld dword [0x54fb38]
jmp 0x421cfe
fild dword [esi + 0x148]
lea edx, [ecx - 1]
mov dword [esp + 0x30], edx
fmul dword [esi + 0x1e0]
fidiv dword [esp + 0x30]
fld dword [esi + 0x1e0]
fmul dword [0x54fb3c]
fsubp st(1)
mov ebx, dword [esi + 0x144]
inc ebx
mov edx, ebx
cmp edx, eax
mov dword [esi + 0x144], ebx
jl 0x421d2b
mov eax, dword [esi + 0x148]
inc eax
cdq
idiv ecx
mov dword [esi + 0x144], 0
mov dword [esi + 0x148], edx
fld dword [esp + 0x34]
fadd dword [edi + 8]
fst dword [esp + 0x18]
fstp dword [edi + 8]
fadd dword [edi + 0xc]
fst dword [esp + 0x30]
fstp dword [edi + 0xc]
mov eax, dword [esi + 0x24c]
test eax, eax
je 0x42209c
mov eax, dword [esi + 0x50]
test eax, eax
je 0x42209c
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
push eax
push ecx
mov ecx, esi
call fcn.0041c940
test eax, eax
je 0x42209c
mov dword [edi + 0x80], 0
jmp 0x42209c
mov ecx, dword [esi + 0x218]
test ecx, ecx
jne 0x421db4
call fcn.004eacb2
mov ecx, eax
imul ecx, ecx, 0x168
mov eax, 0x80010003
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], eax
jmp 0x421dd5
mov ebx, dword [esi + 0x144]
mov eax, ebx
imul eax, eax, 0x168
cdq
idiv ecx
mov dword [esp + 0x18], eax
lea eax, [ebx + 1]
cdq
idiv ecx
mov dword [esi + 0x144], edx
fld dword [0x54fb38]
mov dword [esp + 0x1c], 0
fld dword [esi + 0x30]
fmul dword [0x550eb0]
call fcn.004eaa58
test eax, eax
jge 0x421e03
fld dword [esi + 0x30]
fmul dword [0x550eac]
call fcn.004eaa58
fld dword [esi + 0x34]
mov dword [esp + 0x30], eax
fmul dword [0x550eb0]
call fcn.004eaa58
test eax, eax
jge 0x421e27
fld dword [esi + 0x34]
fmul dword [0x550eac]
call fcn.004eaa58
mov ebx, eax
mov eax, dword [esp + 0x30]
test eax, eax
je 0x421e55
push eax
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
jge 0x421e4b
fadd dword [0x550c50]
fmul dword [0x550224]
fstp dword [esp + 0x1c]
test ebx, ebx
je 0x421e7b
push ebx
fstp st(0)
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
jge 0x421e75
fadd dword [0x550c50]
fmul dword [0x550224]
fld dword [esi + 0x30]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x421e95
fld dword [esp + 0x1c]
fchs
fstp dword [esp + 0x1c]
fld dword [esi + 0x34]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x421ea7
fchs
mov eax, dword [esi + 0x22c]
test eax, eax
je 0x421eb7
fstp st(0)
fld dword [esp + 0x1c]
fild dword [esp + 0x18]
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x68]
fstp dword [esp + 0x34]
push edx
fld dword [esi + 0x1e0]
lea eax, [esp + 0x5c]
fadd dword [0x54fb3c]
push eax
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x5c]
push ecx
fsub st(1)
push eax
push eax
sub esp, 8
fstp dword [esp + 4]
fstp st(0)
fld dword [esi + 0x1dc]
fadd dword [0x54fb3c]
fsub dword [esp + 0x3c]
fstp dword [esp]
call fcn.0049ba40
fld dword [esp + 0x70]
mov edx, dword [esp + 0x50]
fadd dword [edi + 8]
add esp, 0x20
mov dword [edi + 0xf0], edx
fstp dword [edi + 8]
fld dword [esp + 0x54]
fadd dword [edi + 0xc]
fstp dword [edi + 0xc]
jmp 0x42209c
mov ecx, dword [esi + 0x218]
test ecx, ecx
jne 0x421f51
call fcn.004eacb2
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmul dword [esp + 0x14]
fmul dword [0x550ea8]
jmp 0x421f8b
cmp ecx, 1
jne 0x421f5e
fld dword [0x54fb38]
jmp 0x421f8b
mov eax, dword [esi + 0x144]
mov dword [esp + 0x18], eax
lea edx, [ecx - 1]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
inc eax
cdq
fdivr dword [esp + 0x14]
idiv ecx
fimul dword [esp + 0x18]
fmul dword [0x550ea4]
mov dword [esi + 0x144], edx
fld dword [esp + 0x14]
mov dword [edi + 0x130], 0
mov ecx, dword [esi + 0x2c4]
dec ecx
test ecx, ecx
mov dword [esp + 0x2c], 0
jle 0x422043
lea edx, [ecx - 1]
cmp ecx, dword [esi + 0x2c4]
jge 0x4228b9
test edx, edx
mov eax, dword [esi + 0x2c0]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x4c], eax
jl 0x4228b9
cmp edx, dword [esi + 0x2c4]
jge 0x4228b9
mov eax, dword [esi + 0x2c0]
mov ebx, dword [eax + ecx*4 - 4]
mov eax, dword [esp + 0x4c]
fld dword [eax + 4]
mov dword [esp + 0x48], ebx
fsub dword [ebx + 4]
fstp dword [esp + 0x3c]
fld dword [eax + 8]
fsub dword [ebx + 8]
fst dword [esp + 0x38]
fmul dword [esp + 0x38]
fld dword [esp + 0x3c]
fmul dword [esp + 0x3c]
faddp st(1)
fsqrt
fstp dword [esp + 0x2c]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x42203c
fsub dword [esp + 0x2c]
fcom st(1)
fnstsw ax
test ah, 0x41
jnp 0x42203c
dec ecx
dec edx
test ecx, ecx
jg 0x421fb3
jmp 0x422043
dec ecx
mov dword [edi + 0x130], ecx
fld dword [0x54fb38]
mov dword [edi + 0xf0], 0
fld dword [esp + 0x2c]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x422098
fxch st(1)
mov eax, dword [esp + 0x4c]
fsub st(1)
fdiv dword [esp + 0x2c]
fstp st(1)
fld dword [eax + 8]
fsub dword [ebx + 8]
fmul st(1)
fld dword [eax + 4]
fsub dword [ebx + 4]
fmul st(2)
fadd dword [ebx + 4]
fadd dword [edi + 8]
fstp dword [edi + 8]
fadd dword [edi + 0xc]
fadd dword [ebx + 8]
fstp dword [edi + 0xc]
fstp dword [edi + 0xf0]
jmp 0x42209c
fstp st(0)
fstp st(0)
mov eax, dword [esi + 0x1fc]
test eax, eax
je 0x42215b
fld dword [edi + 8]
fsub dword [esi + 8]
fstp dword [edi + 8]
fld dword [edi + 0xc]
fsub dword [esi + 0xc]
fstp dword [edi + 0xc]
fld dword [0x54fb38]
fld dword [esi + 0x2c]
fmul dword [0x550ea0]
call fcn.004eaa58
test eax, eax
jge 0x4220e2
fld dword [esi + 0x2c]
fmul dword [0x550ed0]
call fcn.004eaa58
cdq
mov ecx, 0x168
idiv ecx
test edx, edx
je 0x422110
push edx
fstp st(0)
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
jge 0x42210a
fadd dword [0x550c50]
fmul dword [0x550234]
fld dword [esi + 0x2c]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x422122
fchs
fld dword [esi + 0x28]
lea edx, [esp + 0x5c]
push edx
fsub st(1)
mov edx, dword [edi + 8]
lea eax, [esp + 0x5c]
push eax
push ecx
mov ecx, dword [edi + 0xc]
fstp dword [esp]
push ecx
push edx
fstp st(0)
call fcn.0049ba90
fld dword [esp + 0x6c]
fadd dword [esi + 8]
add esp, 0x14
fstp dword [edi + 8]
fld dword [esp + 0x5c]
fadd dword [esi + 0xc]
fstp dword [edi + 0xc]
mov ecx, edi
call fcn.0041d0b0
mov ebx, dword [esp + 0x10]
fld dword [ebx + 0x78]
fmul dword [0x550ed0]
call fcn.004eaa58
mov ecx, 1
sub ecx, eax
push ecx
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
jge 0x422195
fadd dword [0x550c50]
fmul dword [0x550234]
fadd dword [ebx + 0x50]
fld dword [ebx + 0x78]
fmul dword [0x54fb3c]
fsubp st(1)
fcom dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x4221be
fstp st(0)
fld dword [0x54fb38]
fmul dword [esi + 0x1a8]
mov eax, dword [esi + 0x1d8]
mov edx, dword [esi + 0x1d4]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x1fc]
cmp eax, 3
fmul dword [edi + 0xb0]
mov dword [esp + 0x40], edx
fstp dword [esp + 0x18]
ja case.default.0x4221f1
jmp dword [eax*4 + 0x4228c4]
fld dword [esp + 0x40]
fadd dword [esi + 0x28]
fld dword [esp + 0xc]
call fcn.004eaa58
fld dword [esp + 0xc]
fmul dword [0x54fb3c]
mov ebx, eax
fld st(1)
fsub st(1)
call fcn.004eaa58
fadd st(1)
mov dword [esp + 0x30], eax
call fcn.004eaa58
fstp st(0)
cmp eax, dword [esp + 0x30]
jge 0x422236
add ebx, 0x168
test ebx, ebx
jne 0x42224f
fild dword [esp + 0x30]
fmul qword [0x550e98]
fmul qword [0x550e90]
jmp 0x422409
lea ecx, [ebx + ebx*4]
shl ecx, 1
push ecx
mov ecx, dword [esp + 0x14]
call fcn.004319c0
test eax, eax
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
jge 0x422270
fadd qword [0x550f10]
fmul qword [0x550e88]
fiadd dword [esp + 0x30]
fmul qword [0x550e98]
fmul qword [0x550e90]
jmp 0x422409
fld dword [esp + 0x38]
fld dword [esp + 0x3c]
fpatan
fadd qword [0x550e80]
fld dword [esi + 0x28]
fmul qword [0x550e78]
fsubp st(1)
fld dword [esp + 0x40]
fsub dword [0x550e70]
fmul qword [0x550e78]
faddp st(1)
fst qword [esp + 0x68]
fld dword [esp + 0xc]
fcomp dword [0x54fb34]
fnstsw ax
test ah, 0x41
jne 0x422308
fld dword [esp + 0xc]
call fcn.004eaa58
push eax
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
jge 0x4222f0
fadd dword [0x550c50]
fld dword [esp + 0xc]
fmul dword [0x54fb3c]
fsubp st(1)
fmul qword [0x550e78]
faddp st(1)
fst qword [esp + 0x68]
mov eax, dword [esi + 0x230]
test eax, eax
je 0x422409
mov ecx, dword [esi + 0x234]
test ecx, ecx
je 0x4223ff
cmp dword [esp + 0x24], 1
je 0x4223d4
mov edx, dword [esp + 0x20]
and edx, 0x80000001
jns 0x422401
dec edx
or edx, 0xfffffffe
inc edx
jmp 0x422401
fld dword [edi + 0xc]
fsub dword [esi + 0xc]
fld dword [edi + 8]
fsub dword [esi + 8]
fpatan
fld dword [esp + 0x40]
fsub dword [0x550e70]
fmul qword [0x550e78]
faddp st(1)
fst qword [esp + 0x68]
fld dword [esp + 0xc]
fcomp dword [0x54fb34]
fnstsw ax
test ah, 0x41
jne 0x4223b9
fld dword [esp + 0xc]
call fcn.004eaa58
push eax
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
jge 0x4223a1
fadd dword [0x550c50]
fld dword [esp + 0xc]
fmul dword [0x54fb3c]
fsubp st(1)
fmul qword [0x550e78]
faddp st(1)
fst qword [esp + 0x68]
mov eax, dword [esi + 0x230]
test eax, eax
je 0x422409
mov ecx, dword [esi + 0x234]
test ecx, ecx
je 0x4223ff
cmp dword [esp + 0x24], 1
jne 0x4223ed
fstp st(0)
call fcn.004eacb2
and eax, 0x80000001
jns 0x4223e7
dec eax
or eax, 0xfffffffe
inc eax
fld qword [esp + 0x68]
jmp 0x422401
mov eax, dword [esp + 0x20]
and eax, 0x80000001
jns 0x422401
dec eax
or eax, 0xfffffffe
inc eax
jmp 0x422401
test eax, eax
je 0x422409
fsub qword [0x550e68]
fld st(0)
fsin
fmul dword [esp + 0x18]
fstp dword [edi + 0x74]
fcos
fmul dword [esp + 0x18]
fstp dword [edi + 0x78]
fld dword [edi + 0xd8]
mov ecx, dword [edi + 0x78]
fmul dword [edi + 0x78]
mov edx, dword [edi + 0x74]
mov ebx, dword [esp + 0x10]
mov dword [edi + 0x98], ecx
fstp dword [edi + 0x78]
mov dword [edi + 0x9c], edx
fld dword [edi + 0xd8]
fmul dword [edi + 0x74]
fstp dword [edi + 0x74]
fld dword [ebx + 0x70]
fmul dword [0x550ed0]
call fcn.004eaa58
mov ecx, 1
sub ecx, eax
push ecx
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
jge 0x42247a
fadd dword [0x550c50]
fmul dword [0x550234]
fld dword [ebx + 0x70]
fmul dword [0x54fb3c]
fsubp st(1)
fld st(0)
fadd dword [ebx + 0xbc]
fld dword [0x54fb38]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4224aa
fstp st(0)
fld dword [0x54fb38]
fst dword [edi + 0x88]
fmul dword [esi + 0x1ac]
fst dword [edi + 0x88]
fstp dword [edi + 0x90]
fld dword [edi + 0xd0]
fmul dword [edi + 0x88]
fst dword [edi + 0x88]
fstp dword [edi + 0xf8]
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x4224e9
fadd dword [ebx + 0xc0]
jmp 0x422548
fstp st(0)
fld dword [ebx + 0x74]
fmul dword [0x550ed0]
call fcn.004eaa58
mov edx, 1
sub edx, eax
push edx
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
jge 0x42251a
fadd dword [0x550c50]
fmul dword [0x550234]
fld dword [ebx + 0x74]
fmul dword [0x54fb3c]
fsubp st(1)
fadd dword [ebx + 0xc0]
fld dword [0x54fb38]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x422548
fstp st(0)
fld dword [0x54fb38]
fstp dword [edi + 0x8c]
fld dword [esi + 0x1b0]
mov dword [edi + 0x28], 0
fmul dword [edi + 0x8c]
fst dword [edi + 0x8c]
fstp dword [edi + 0x94]
fld dword [edi + 0xd4]
fmul dword [edi + 0x8c]
fst dword [edi + 0x8c]
fstp dword [edi + 0xfc]
fild dword [esp + 0x20]
fmul dword [ebp + 8]
fidiv dword [esp + 0x24]
fld st(0)
fmul dword [edi + 0x78]
fadd dword [edi + 8]
fst dword [edi + 8]
fxch st(1)
fmul dword [edi + 0x74]
fadd dword [edi + 0xc]
fst dword [esp + 0x30]
fstp dword [edi + 0xc]
fld dword [ebp + 8]
fmul dword [edi + 0x78]
fsubr st(1)
fstp dword [edi + 0x10]
fstp st(0)
fld dword [ebp + 8]
fmul dword [edi + 0x74]
fsubr dword [esp + 0x30]
fstp dword [edi + 0x14]
fld dword [0x54fb38]
fld dword [0x54fb38]
fld dword [ebx + 0x90]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x42262f
fstp st(0)
fld dword [ebx + 0x90]
call fcn.004eaa58
inc eax
push eax
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
jge 0x422607
fadd dword [0x550c50]
fld dword [ebx + 0x90]
call fcn.004eaa58
inc eax
push eax
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
jge 0x42262d
fadd dword [0x550c50]
fsubp st(1)
fadd dword [ebx + 0x68]
fst dword [edi + 0x84]
fmul dword [esi + 0x1c4]
fst dword [edi + 0x84]
fstp dword [edi + 0xa4]
fld dword [edi + 0xe8]
fmul dword [edi + 0x84]
fstp dword [edi + 0x84]
fld dword [ebx + 0x8c]
fmul dword [0x550ed0]
call fcn.004eaa58
mov ecx, 1
sub ecx, eax
push ecx
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
jge 0x42268e
fadd dword [0x550c50]
fmul dword [0x550234]
fadd dword [ebx + 0x64]
fld dword [ebx + 0x8c]
fmul dword [0x54fb3c]
fsubp st(1)
fst dword [edi + 0xc8]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x4226c2
mov dword [edi + 0xc8], 0
fld dword [esi + 0x1cc]
fmul dword [edi + 0xc8]
fst dword [edi + 0xc8]
fstp dword [edi + 0xac]
fld dword [edi + 0xe4]
fmul dword [edi + 0xc8]
fstp dword [edi + 0xc8]
fld dword [ebx + 0x88]
fmul dword [0x550ed0]
call fcn.004eaa58
mov edx, 1
sub edx, eax
push edx
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
jge 0x42271e
fadd dword [0x550c50]
fmul dword [0x550234]
fadd dword [ebx + 0x60]
fld dword [ebx + 0x88]
fmul dword [0x54fb3c]
fsubp st(1)
fst dword [edi + 0xc4]
fcomp dword [0x54fb38]
fnstsw ax
test ah, 5
jp 0x422752
mov dword [edi + 0xc4], 0
fld dword [esi + 0x1c8]
fmul dword [edi + 0xc4]
fmul dword [esi + 0x1bc]
fmul dword [edi + 0xb0]
fst dword [edi + 0xc4]
fstp dword [edi + 0xa8]
fld dword [edi + 0xe0]
fmul dword [edi + 0xc4]
fstp dword [edi + 0xc4]
fld dword [ebx + 0x84]
fmul dword [0x550ed0]
call fcn.004eaa58
mov ecx, 1
sub ecx, eax
push ecx
mov ecx, edi
call fcn.0041d150
test eax, eax
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
jge 0x4227ba
fadd dword [0x550c50]
fmul dword [0x550234]
fadd dword [ebx + 0x5c]
fld dword [ebx + 0x84]
fmul dword [0x54fb3c]
fsubp st(1)
fst dword [edi + 0xc0]
fmul dword [esi + 0x1c0]
fmul dword [edi + 0xb0]
fst dword [edi + 0xc0]
fstp dword [edi + 0xa0]
fld dword [edi + 0xdc]
fmul dword [edi + 0xc0]
fstp dword [edi + 0xc0]
fld dword [ebx + 0xcc]
fst dword [edi + 0xb8]
fstp dword [edi + 0xbc]
fld dword [edi + 0xcc]
fmul dword [edi + 0xb8]
fstp dword [edi + 0xb8]
mov edx, dword [esi + 0x204]
mov dword [edi + 0x204], edx
mov eax, dword [esi + 0x208]
mov dword [edi + 0x208], eax
mov ecx, dword [esi + 0x20c]
mov dword [edi + 0x20c], ecx
mov ecx, edi
call fcn.0041f300
mov ecx, edi
call fcn.0041f3c0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x421740
mov eax, dword [esp + 0x44]
mov ecx, dword [esi + 0x184]
inc eax
cmp eax, ecx
mov dword [esp + 0x44], eax
jl 0x421489
mov ecx, dword [esp + 0x74]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push 0
push 0x550ee0
call fcn.00515e6f
mov ecx, dword [esp + 0x74]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4
fstp st(0)
fstp st(0)
call fcn.004fd76e
mov edi, edi
clc
and dword [edx], eax
mov esp, dword [edx]
inc edx
add byte [ecx + 0x23], cl
inc edx
add al, bh
and dword [edx], eax
int3