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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x58c8b9
push eax
mov dword fs:[0], esp
sub esp, 0x1a8
push ebx
mov ebx, dword [ebp + 8]
cmp byte [ebx + 0x248], 0
push esi
push edi
jne 0x415c22
mov esi, ebx
call fcn.00416d50
lea eax, [ebx + 0x114]
xor edi, edi
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
cmp dword [ecx], 0
je 0x41447a
push edi
mov esi, ebx
call fcn.0041bed0
cmp byte [edi + ebx + 0x1be], 0
je 0x41448c
push edi
call fcn.00422ba0
jmp 0x41448c
cmp byte [ebx + 0x1bc], 0
je 0x41448c
push 0
push edi
push ebx
call fcn.00417d80
add dword [esp + 0x28], 4
add edi, 1
cmp edi, 4
jl 0x414457
fld dword [0x5ecdfc]
lea eax, [ebx + 0x244]
fst dword [esp + 0x24]
xor edx, edx
fld dword [0x5ecdf8]
mov dword [esp + 0x14], eax
fst dword [esp + 0x44]
fstp dword [esp + 0x3c]
fstp dword [esp + 0x40]
fld dword [0x5ec7b4]
fstp dword [eax]
mov ecx, dword [ebx + 0x34]
cmp ecx, edx
jne 0x4144d4
xor eax, eax
jmp 0x4144dc
mov eax, dword [ebx + 0x38]
sub eax, ecx
sar eax, 2
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x1bc], edx
lea esi, [eax - 1]
test esi, esi
mov dword [esp + 0x34], esi
jl 0x4150c2
jmp 0x414504
mov esi, dword [esp + 0x34]
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x414517
mov eax, dword [ebx + 0x38]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x41451d
call dword [0x58e3e0]
mov edx, dword [ebx + 0x34]
mov esi, dword [edx + esi*4]
cmp dword [esi + 0x54], 0
mov dword [esp + 0x10], esi
je 0x41455f
call dword [0x58e3e8]
and eax, 0x80000001
jns 0x41453f
dec eax
or eax, 0xfffffffe
inc eax
jne 0x41455f
cmp dword [esi + 0x13c], 2
jne 0x41455f
mov edi, dword [esp + 0x10]
call fcn.0043d000
test al, al
je 0x41455f
push ebx
mov ecx, edi
call fcn.00415f20
cmp byte [ebx + 0x2e4], 0
jne 0x414643
call dword [0x58e3e8]
cdq
mov ecx, 0x14
idiv ecx
test edx, edx
jne 0x414643
mov ecx, dword [ebx + 0x22c]
test ecx, ecx
jne 0x414590
xor eax, eax
jmp 0x41459b
mov eax, dword [ebx + 0x230]
sub eax, ecx
sar eax, 2
xor edi, edi
test eax, eax
mov dword [esp + 0x28], eax
jle 0x414643
mov edx, dword [esp + 0x10]
add edx, 8
mov dword [esp + 0x2c], edx
mov ecx, dword [ebx + 0x22c]
test ecx, ecx
je 0x4145cd
mov eax, dword [ebx + 0x230]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x4145d3
call dword [0x58e3e0]
mov eax, dword [ebx + 0x22c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov esi, dword [eax + edi*4]
mov eax, dword [edx + 0xc]
call eax
fld dword [esi + 0x7c]
fsub dword [eax + 4]
push ecx
fstp dword [esp + 0x20]
fld dword [esi + 0x80]
fsub dword [eax + 8]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld dword [esp + 0x20]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
call fcn.00401df0
fcomp qword [0x5ec5f8]
add esp, 4
fnstsw ax
test ah, 5
jp 0x414636
mov ecx, esi
call fcn.00444040
add edi, 1
cmp edi, dword [esp + 0x28]
jl 0x4145b4
mov edi, dword [esp + 0x10]
cmp dword [edi + 0x13c], 0xd
jne 0x41465c
push edi
push ebx
call fcn.0041aea0
jmp 0x4150b7
mov eax, edi
call fcn.0043d930
test al, al
je 0x414735
mov edx, dword [edi + 8]
mov eax, dword [edx + 0xc]
lea esi, [edi + 8]
mov ecx, esi
call eax
mov edx, dword [esp + 0x14]
fld dword [edx]
mov ecx, eax
fld dword [ecx + 8]
add ecx, 8
fcompp
fnstsw ax
test ah, 0x41
je 0x414691
mov ecx, edx
fld dword [ecx]
mov ecx, esi
fstp dword [edx]
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
call eax
mov ecx, eax
fld dword [ecx + 4]
add ecx, 4
fld dword [esp + 0x24]
fcompp
fnstsw ax
test ah, 0x41
je 0x4146b7
lea ecx, [esp + 0x24]
fld dword [ecx]
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
fstp dword [esp + 0x24]
mov ecx, esi
call eax
fld dword [esp + 0x44]
mov ecx, eax
fld dword [ecx + 4]
add ecx, 4
fcompp
fnstsw ax
test ah, 0x41
je 0x4146df
lea ecx, [esp + 0x44]
fld dword [ecx]
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
fstp dword [esp + 0x44]
mov ecx, esi
call eax
mov ecx, eax
fld dword [ecx + 8]
add ecx, 8
fld dword [esp + 0x40]
fcompp
fnstsw ax
test ah, 0x41
je 0x414707
lea ecx, [esp + 0x40]
fld dword [ecx]
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
fstp dword [esp + 0x40]
mov ecx, esi
call eax
fld dword [esp + 0x3c]
mov ecx, eax
fld dword [ecx + 8]
add ecx, 8
fcompp
fnstsw ax
test ah, 0x41
je 0x41472f
lea ecx, [esp + 0x3c]
fld dword [ecx]
fstp dword [esp + 0x3c]
mov eax, dword [edi + 0x13c]
cmp eax, 1
je 0x414830
cmp eax, 5
je 0x414830
cmp eax, 3
je 0x414830
cmp eax, 0xa
je 0x414830
fldz
mov ecx, dword [edi + 0x174]
fcomp dword [ecx + 0x78]
fnstsw ax
test ah, 5
jp 0x414830
cmp byte [edi + 0x6c0], 0
jne 0x414830
cmp byte [edi + 0x6b4], 0
jne 0x414830
mov ecx, dword [ebx + 0x74]
test ecx, ecx
jne 0x41479a
xor eax, eax
jmp 0x4147a2
mov eax, dword [ebx + 0x78]
sub eax, ecx
sar eax, 2
test eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], 0
jle 0x414830
mov ecx, dword [ebx + 0x74]
test ecx, ecx
je 0x4147cb
mov eax, dword [ebx + 0x78]
sub eax, ecx
sar eax, 2
cmp dword [esp + 0x28], eax
jb 0x4147d1
call dword [0x58e3e0]
mov edx, dword [ebx + 0x74]
mov eax, dword [esp + 0x28]
mov edi, dword [edx + eax*4]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 8]
mov esi, dword [edi]
mov eax, dword [edx + 0xc]
add ecx, 8
add esi, 0x44
call eax
mov edx, dword [esi]
push eax
mov ecx, edi
call edx
test al, al
je 0x41480e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x13c]
cmp eax, 3
je 0x41480e
cmp eax, 6
jne 0x414821
mov eax, dword [esp + 0x28]
add eax, 1
cmp eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
jl 0x4147b6
jmp 0x41482c
mov edi, dword [esp + 0x10]
mov cl, 1
call fcn.0043cec0
mov edi, dword [esp + 0x10]
mov edx, dword [edi]
mov eax, dword [edx + 0x48]
mov ecx, edi
call eax
test al, al
jne 0x414883
mov eax, dword [edi + 0x13c]
sub eax, 0
je 0x414856
sub eax, 2
je 0x414b4f
sub eax, 5
jne 0x414883
mov edx, dword [edi]
mov eax, dword [edx + 0x3c]
mov ecx, edi
call eax
test al, al
jne 0x414883
mov edx, dword [edi]
mov ecx, edi
mov eax, dword [edx + 0x88]
call eax
test al, al
jne 0x414883
lea ebx, [esp + 0x10]
lea esi, [esp + 0x60]
call fcn.00422e30
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x10]
mov edx, dword [edi]
mov eax, dword [edx + 0x90]
mov ecx, edi
call eax
cmp byte [ebx + 0xa4], 0
je 0x414db6
mov eax, dword [ebx + 0x94]
test eax, eax
je 0x414db6
mov ecx, dword [edi + 0x174]
add ecx, 4
push ecx
call fcn.00440520
test al, al
je 0x414db6
cmp byte [edi + 0x688], 0
jne 0x414db6
mov eax, dword [edi + 0x174]
cmp byte [eax + 0x74], 0
je 0x414db6
mov eax, dword [edi + 0x13c]
cmp eax, 2
je 0x4148ff
cmp eax, 1
je 0x4148ff
cmp eax, 7
je 0x4148ff
test eax, eax
jne 0x414db6
mov ecx, dword [ebx + 0x94]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov edx, dword [edi + 8]
lea ecx, [edi + 8]
mov esi, eax
mov eax, dword [edx + 0xc]
call eax
fld dword [eax + 4]
fsub dword [esi + 4]
push ecx
fstp dword [esp + 0x4c]
fld dword [eax + 8]
fsub dword [esi + 8]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fld dword [esp + 0x4c]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
call fcn.00401df0
mov eax, dword [edi + 0x174]
fstp dword [esp + 0x20]
mov edx, dword [eax + 0x20]
lea ecx, [eax + 0x24]
add eax, 0x20
add esp, 4
cmp edx, dword [ecx]
jge 0x41496a
mov eax, ecx
mov eax, dword [eax]
fld dword [esp + 0x1c]
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
fmul qword [0x5ec650]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fadd qword [0x5ec798]
fcompp
fnstsw ax
test ah, 0x41
jne 0x414db6
mov edi, dword [esp + 0x10]
xor cl, cl
call fcn.0043cec0
mov ecx, dword [ebx + 0xf0]
mov eax, dword [ecx + 0x40]
push edi
mov edi, eax
call fcn.004bc5e0
mov eax, dword [ebx + 0xac]
add eax, 1
cmp eax, 0xc
jge 0x4149c9
mov dword [ebx + 0xac], eax
mov edi, dword [esp + 0x10]
push 0xb
mov eax, edi
call fcn.00437390
mov esi, dword [ebx + 0x2dc]
add dword [ebx + 0xb8], 1
call fcn.0046a790
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], eax
mov byte [esp + 0x5c], al
mov byte [esp + 0x1bc], 1
mov ecx, dword [0x619874]
push ebx
lea edx, [esp + 0xd8]
push edx
call fcn.00460200
mov byte [esp + 0x1bc], 2
call fcn.00404bf0
mov eax, dword [eax + 8]
lea ecx, [esp + 0xd4]
push ecx
lea esi, [eax + 0x2c]
call fcn.004109a0
test eax, eax
je 0x414bf4
mov eax, dword [eax + 0x70]
test eax, eax
jl 0x414bf4
cmp dword [ebx + 0xb8], eax
jne 0x414bf4
push 0x5d04a8
lea ecx, [esp + 0xbc]
call dword [0x58e220]
mov byte [esp + 0x1bc], 3
mov edx, dword [0x619c48]
mov eax, dword [edx + 0x5c]
mov ecx, 0x619c48
call eax
mov edx, dword [eax]
mov edx, dword [edx + 0x24]
lea ecx, [esp + 0xb8]
push ecx
lea ecx, [esp + 0x84]
push ecx
mov ecx, eax
call edx
mov byte [esp + 0x1bc], 4
mov esi, eax
lea eax, [esp + 0x50]
call fcn.00485390
mov byte [esp + 0x1bc], 3
lea esi, [esp + 0x80]
call fcn.0040d980
mov byte [esp + 0x1bc], 2
lea ecx, [esp + 0xb8]
call dword [0x58e21c]
mov eax, dword [ebx + 0x94]
mov esi, eax
call dword [0x58e3e8]
cdq
mov ecx, 0x14
idiv ecx
sub esp, 8
mov ecx, esi
sub edx, 0xa
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
fstp dword [esp + 4]
fld dword [0x5ec678]
fstp dword [esp]
call eax
fld dword [eax + 8]
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
push ecx
mov ecx, esi
fstp dword [esp]
call eax
fld dword [eax + 4]
push ecx
mov ecx, 0x5cfd10
fstp dword [esp]
lea edx, [esp + 0x60]
mov eax, ebx
call fcn.004223a0
fld1
push ecx
fstp dword [esp]
push 0
push 0x5d04c8
call fcn.00480740
add esp, 0xc
jmp 0x414cb9
mov eax, dword [edi + 0x34]
test eax, eax
je 0x414b70
push eax
call fcn.0057590a
fld dword [eax]
fstp dword [edi + 0x104]
add esp, 4
fld dword [eax + 4]
fstp dword [edi + 0x108]
fld dword [edi + 0x108]
push ecx
fld dword [edi + 0x104]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
call fcn.00401df0
fcomp qword [0x5ec960]
add esp, 4
fnstsw ax
test ah, 5
jp 0x414883
cmp dword [ebx + 0x94], 0
je 0x414bd6
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
add ecx, 8
call eax
mov esi, dword [ebx + 0x94]
mov edi, eax
call fcn.004404c0
test al, al
jne 0x414883
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
call eax
test al, al
jne 0x414883
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
jmp 0x414867
mov ecx, dword [ebx + 0xb8]
push ecx
lea edx, [esp + 0x74]
push 0x5d04e4
push edx
call fcn.00484f80
add esp, 0xc
mov byte [esp + 0x1bc], 5
mov esi, eax
lea eax, [esp + 0x50]
call fcn.00485390
mov byte [esp + 0x1bc], 2
mov eax, dword [esp + 0x70]
xor esi, esi
cmp eax, esi
je 0x414c3f
push eax
call fcn.00574e1e
add esp, 4
mov dword [esp + 0x70], esi
mov eax, dword [esp + 0x74]
cmp eax, esi
mov dword [esp + 0x78], esi
je 0x414c58
push eax
call fcn.00574e1e
add esp, 4
mov dword [esp + 0x74], esi
mov eax, dword [ebx + 0x94]
mov esi, eax
call dword [0x58e3e8]
cdq
mov ecx, 0x14
idiv ecx
sub esp, 8
mov ecx, esi
sub edx, 0xa
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
fstp dword [esp + 4]
fld dword [0x5ec678]
fstp dword [esp]
call eax
fld dword [eax + 8]
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
push ecx
mov ecx, esi
fstp dword [esp]
call eax
fld dword [eax + 4]
push ecx
mov ecx, 0x5cfd00
fstp dword [esp]
lea edx, [esp + 0x60]
mov eax, ebx
call fcn.004223a0
mov eax, dword [ebx + 0xa8]
fldz
fstp dword [edi + 0x664]
mov dword [edi + 0x65c], eax
mov dword [edi + 0x660], 0
mov eax, dword [ebx + 0xb4]
cmp dword [ebx + 0xb8], eax
jle 0x414cf9
fld1
push 0
push ecx
fstp dword [esp]
mov ecx, 5
mov esi, edi
call fcn.0043a810
push 6
push ebx
mov eax, edi
call fcn.0041b6a0
mov ecx, dword [ebx + 0xac]
mov eax, dword [0x619c48]
push ecx
mov ecx, dword [eax + 0xa0]
push 0x5d04e8
push 0x40
lea edx, [esp + 0xfc]
push edx
push 0x619c48
call ecx
fld1
add esp, 0x10
fstp dword [esp]
lea edx, [esp + 0xf4]
push 0
push edx
call fcn.00480740
mov ecx, dword [ebx + 0xc]
add esp, 0xc
test ecx, ecx
je 0x414d54
mov eax, dword [ecx]
mov edx, dword [eax + 0x2c]
push edi
call edx
mov ebx, dword [ebx + 0xd0]
call fcn.00475ba0
mov byte [esp + 0x1bc], 1
lea ecx, [esp + 0xd4]
call dword [0x58e21c]
xor ebx, ebx
mov byte [esp + 0x1bc], bl
mov eax, dword [esp + 0x50]
cmp eax, ebx
je 0x414d92
push eax
call fcn.00574e1e
add esp, 4
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0x54]
cmp eax, ebx
mov dword [esp + 0x58], ebx
je 0x414daf
push eax
call fcn.00574e1e
add esp, 4
mov dword [esp + 0x54], 0
mov edi, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
cmp dword [edi + 0x13c], 0xb
jne 0x414e0e
mov eax, dword [edi + 0x65c]
mov edx, dword [eax + 0x90]
add eax, 0x8c
test edx, edx
jne 0x414dd8
xor eax, eax
jmp 0x414ded
mov ecx, dword [eax + 8]
sub ecx, edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, 0xfffffffe
cmp dword [edi + 0x660], eax
jne 0x414e0e
fld1
fcomp dword [edi + 0x664]
fnstsw ax
test ah, 0x41
jp 0x414e0e
push edi
push ebx
call fcn.00421c30
cmp dword [edi + 0x54], 0
jne 0x414e1d
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, edi
call edx
mov ecx, dword [ebx + 0x34]
test ecx, ecx
jne 0x414e28
xor eax, eax
jmp 0x414e30
mov eax, dword [ebx + 0x38]
sub eax, ecx
sar eax, 2
cmp dword [ebx + 0x224], eax
jl 0x414e42
mov dword [ebx + 0x224], 0
mov ecx, dword [ebx + 0x34]
test ecx, ecx
mov esi, dword [ebx + 0x224]
je 0x414e5b
mov eax, dword [ebx + 0x38]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x414e61
call dword [0x58e3e0]
mov eax, dword [ebx + 0x34]
mov ecx, dword [eax + esi*4]
cmp byte [ecx + 0x680], 0
jne 0x4150b7
cmp byte [edi + 0x680], 0
je 0x4150b7
mov edx, dword [edi]
mov eax, dword [edx + 0x90]
mov ecx, edi
call eax
mov byte [esp + 0x3b], al
mov eax, dword [edi + 0x174]
fld dword [eax + 0x128]
mov edx, dword [eax + 0x20]
lea ecx, [eax + 0x24]
fstp dword [esp + 0x48]
add eax, 0x20
cmp edx, dword [ecx]
jge 0x414eb0
mov eax, ecx
mov ecx, dword [ebx + 0x34]
test ecx, ecx
mov eax, dword [eax]
mov esi, dword [ebx + 0x224]
mov dword [esp + 0x1c], eax
je 0x414ecf
mov eax, dword [ebx + 0x38]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x414ed5
call dword [0x58e3e0]
mov ecx, dword [ebx + 0x34]
mov edx, dword [ecx + esi*4]
mov eax, dword [edx + 0x174]
mov edx, dword [eax + 0x20]
lea ecx, [eax + 0x24]
add eax, 0x20
cmp edx, dword [ecx]
jge 0x414ef0
mov eax, ecx
fild dword [esp + 0x1c]
mov eax, dword [eax]
fld qword [0x5ec650]
mov ecx, dword [ebx + 0x34]
test ecx, ecx
fmul st(1), st(0)
mov esi, dword [ebx + 0x224]
fxch st(1)
mov dword [esp + 0x2c], eax
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fadd dword [esp + 0x48]
fild dword [esp + 0x2c]
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x1c]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x2c]
je 0x414f3d
mov eax, dword [ebx + 0x38]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x414f43
call dword [0x58e3e0]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + esi*4]
mov edx, dword [eax + 8]
lea ecx, [eax + 8]
mov eax, dword [edx + 0xc]
call eax
mov edx, dword [edi + 8]
lea ecx, [edi + 8]
mov esi, eax
mov eax, dword [edx + 0xc]
call eax
fld dword [eax + 4]
fsub dword [esi + 4]
push ecx
fstp dword [esp + 0x4c]
fld dword [eax + 8]
fsub dword [esi + 8]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fld dword [esp + 0x4c]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
call fcn.00401df0
add esp, 4
fstp dword [esp + 0x1c]
cmp byte [esp + 0x3b], 0
fld dword [esp + 0x1c]
je 0x415034
fcom qword [0x5ec5f8]
fnstsw ax
test ah, 5
jp 0x415034
mov ecx, dword [ebx + 0x34]
fstp st(0)
test ecx, ecx
mov esi, dword [ebx + 0x224]
je 0x414fd4
mov eax, dword [ebx + 0x38]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x414fda
call dword [0x58e3e0]
mov ecx, dword [ebx + 0x34]
mov esi, dword [ecx + esi*4]
cmp byte [esi + 0x680], 0
jne 0x4150b7
push 1
mov ebx, esi
call fcn.004399d0
mov eax, dword [esi + 0x174]
cmp byte [eax + 0x168], 0
je 0x4150b4
fld dword [0x5ec8dc]
mov edx, dword [ebp + 8]
push ecx
fstp dword [esp]
push 1
fld dword [0x5ec7f0]
sub esp, 8
fstp dword [esp + 4]
fld dword [0x5ec820]
fstp dword [esp]
push edx
jmp 0x4150ad
fld dword [esp + 0x2c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4150b7
mov ecx, dword [ebx + 0x34]
test ecx, ecx
mov esi, dword [ebx + 0x224]
je 0x41505a
mov eax, dword [ebx + 0x38]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x415060
call dword [0x58e3e0]
mov eax, dword [ebx + 0x34]
mov esi, dword [eax + esi*4]
cmp byte [esi + 0x680], 0
jne 0x4150b7
push 1
mov ebx, esi
call fcn.004399d0
mov eax, dword [esi + 0x174]
cmp byte [eax + 0x168], 0
je 0x4150b4
fld dword [0x5ec8dc]
push ecx
mov ecx, dword [ebp + 8]
fstp dword [esp]
fld dword [0x5ec7f0]
push 1
sub esp, 8
fstp dword [esp + 4]
fld dword [0x5ec820]
fstp dword [esp]
push ecx
mov ebx, esi
call fcn.00413690
mov ebx, dword [ebp + 8]
sub dword [esp + 0x34], 1
jns 0x414500
mov ecx, dword [esp + 0x64]
test ecx, ecx
mov eax, dword [esp + 0x68]
jne 0x4150d2
xor edx, edx
jmp 0x4150d9
mov edx, eax
sub edx, ecx
sar edx, 2
lea edi, [edx - 1]
test edi, edi
jl 0x41526d
jmp 0x4150ee
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x4150fb
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x415105
call dword [0x58e3e0]
mov ecx, dword [esp + 0x64]
mov esi, dword [ecx + edi*4]
mov edx, dword [esi]
mov eax, dword [edx + 0x90]
mov ecx, esi
call eax
test al, al
jne 0x415264
cmp byte [esi + 0x680], al
jne 0x41517e
mov eax, dword [esi + 0x34]
test eax, eax
je 0x415145
push eax
call fcn.0057590a
fld dword [eax]
fstp dword [esi + 0x104]
add esp, 4
fld dword [eax + 4]
fstp dword [esi + 0x108]
fld dword [esi + 0x108]
push ecx
fld dword [esi + 0x104]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
call fcn.00401df0
fcomp dword [0x5ec668]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x415264
cmp dword [esi + 0x13c], 2
jne 0x41523b
mov eax, dword [esi + 0x34]
test eax, eax
je 0x4151ac
push eax
call fcn.0057590a
fld dword [eax]
fstp dword [esi + 0x104]
add esp, 4
fld dword [eax + 4]
fstp dword [esi + 0x108]
fld dword [esi + 0x108]
push ecx
fld dword [esi + 0x104]
fmul st(0), st(0)
fld st(1)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
call fcn.00401df0
fstp dword [esp + 0x14]
add esp, 4
fld dword [0x5ec988]
fstp dword [esp + 0x14]
fld dword [esp + 0x10]
fcomp qword [0x5ec960]
fnstsw ax
test ah, 0x41
lea eax, [esp + 0x14]
je 0x4151fb
lea eax, [esp + 0x10]
fld dword [eax]
fstp dword [esp + 0x10]
fld dword [0x5ec820]
fst dword [esp + 0x14]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
lea eax, [esp + 0x14]
je 0x41521e
lea eax, [esp + 0x10]
fld dword [eax]
push ecx
fstp dword [esp + 0x14]
fld1
fstp dword [esp]
fldz
push 0
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x20]
jmp 0x415256
fld1
push ecx
fstp dword [esp]
fld dword [0x5ec7f0]
push 0
sub esp, 8
fstp dword [esp + 4]
fld dword [0x5ec820]
fstp dword [esp]
push ebx
mov ebx, esi
call fcn.00413690
mov ebx, dword [ebp + 8]
sub edi, 1
jns 0x4150e6
mov edi, ebx
call fcn.00416f40
mov eax, ebx
call fcn.0041ea00
mov ecx, ebx
call fcn.004176e0
xor esi, esi
push ebx
mov ecx, esi
call fcn.00417420
add esi, 1
cmp esi, 4
jl 0x415284
call fcn.004171f0
mov edi, dword [0x58e3e8]
call edi
cdq
mov ecx, 0xa
idiv ecx
test edx, edx
jne 0x4152fd
mov eax, dword [0x619860]
test eax, eax
jne 0x4152ea
push 0xac
call fcn.00574f62
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x1bc], 6
test eax, eax
je 0x4152db
push eax
call fcn.00401f80
jmp 0x4152dd
xor eax, eax
mov byte [esp + 0x1bc], 0
mov dword [0x619860], eax
mov eax, dword [eax + 8]
cmp dword [eax + 0xc], 3
mov esi, dword [ebp + 8]
jne 0x415300
call fcn.004165e0
jmp 0x415300
mov esi, dword [ebp + 8]
call edi
cdq
mov ecx, 0x32
idiv ecx
test edx, edx
jne 0x41535b
mov eax, dword [0x619860]
test eax, eax
jne 0x41534b
push 0xac
call fcn.00574f62
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x1bc], 7
test eax, eax
je 0x41533c
push eax
call fcn.00401f80
jmp 0x41533e
xor eax, eax
mov byte [esp + 0x1bc], 0
mov dword [0x619860], eax
mov eax, dword [eax + 8]
cmp dword [eax + 0xc], 3
jne 0x41535b
mov ecx, esi
call fcn.00416750
fld dword [esp + 0x24]
mov edx, dword [esi + 0xf0]
fld qword [0x5ecdf0]
add dword [esi + 0x224], 1
fsub st(1), st(0)
sub esp, 0x10
fxch st(1)
fstp dword [esp + 0x34]
fadd dword [esp + 0x54]
fstp dword [esp + 0x54]
fld dword [esp + 0x50]
fld qword [0x5ecde8]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x50]
fadd dword [esp + 0x4c]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fstp dword [esp + 0xc]
fld dword [esp + 0x50]
fstp dword [esp + 8]
fld dword [esp + 0x54]
fstp dword [esp + 4]
fld dword [esp + 0x34]
fstp dword [esp]
call fcn.004811c0
call edi
cdq
mov ecx, 0x14
idiv ecx
test edx, edx
jne 0x4153d8
mov eax, esi
call fcn.0041ad10
mov ecx, dword [esi + 0x94]
test ecx, ecx
mov byte [esp + 0x2c], 0
je 0x415417
mov edx, dword [esi + 0xf0]
mov eax, dword [ecx]
mov edi, dword [edx + 0x20]
mov edx, dword [eax + 0xc]
call edx
fldz
sub esp, 0xc
fst dword [esp + 8]
fst dword [esp + 4]
fstp dword [esp]
push eax
push edi
call fcn.004800e0
test al, al
jne 0x415417
mov byte [esp + 0x2c], 1
mov ecx, dword [esi + 0xb0]
mov eax, dword [ecx]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 0x28]
push edx
call eax
mov ecx, esi
call fcn.00416f90
mov edi, esi
call fcn.00416590
push 1
push esi
call fcn.00415c40
mov eax, dword [0x619860]
test eax, eax
jne 0x41547c
push 0xac
call fcn.00574f62
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x1bc], 8
test eax, eax
je 0x41546d
push eax
call fcn.00401f80
jmp 0x41546f
xor eax, eax
mov byte [esp + 0x1bc], 0
mov dword [0x619860], eax
fld dword [eax + 0x2c]
mov edx, dword [0x619c48]
mov eax, dword [edx + 0x28]
fstp dword [esp + 0x14]
mov ecx, 0x619c48
call eax
fld dword [esp + 0x14]
push ecx
mov ecx, dword [esi + 0xf0]
fstp dword [esp]
call fcn.00481240
push 0
push esi
call fcn.00415c40
mov ecx, dword [0x619860]
test ecx, ecx
jne 0x4154ef
push 0xac
call fcn.00574f62
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x1bc], 0xa
test eax, eax
je 0x4154dd
push eax
call fcn.00401f80
jmp 0x4154df
xor eax, eax
mov byte [esp + 0x1bc], 0
mov ecx, eax
mov dword [0x619860], ecx
fld dword [ecx + 0x2c]
fstp dword [esp + 0x14]
fldz
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x44
jnp 0x415592
fld dword [ecx + 0x2c]
mov edx, dword [0x619c48]
mov eax, dword [edx + 0x28]
fstp dword [esp + 0x14]
mov ecx, 0x619c48
call eax
fld dword [esp + 0x14]
push ecx
mov ecx, dword [esi + 0xcc]
fstp dword [esp]
call fcn.00481240
mov eax, dword [0x619860]
test eax, eax
jne 0x41556e
push 0xac
call fcn.00574f62
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x1bc], 0xd
test eax, eax
je 0x41555f
push eax
call fcn.00401f80
jmp 0x415561
xor eax, eax
mov byte [esp + 0x1bc], 0
mov dword [0x619860], eax
fld dword [eax + 0x2c]
mov ecx, dword [esi + 0xcc]
mov eax, dword [ecx + 0x40]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
push ecx
fstp dword [esp]
push eax
call fcn.004bc270
mov ecx, dword [0x619860]
fldz
or edi, 0xffffffff
fcomp dword [esi + 0xd8]
fnstsw ax
test ah, 5
jp 0x415647
test ecx, ecx
jne 0x4155e0
push 0xac
call fcn.00574f62
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x1bc], 0xe
test eax, eax
je 0x4155d1
push eax
call fcn.00401f80
jmp 0x4155d3
xor eax, eax
mov byte [esp + 0x1bc], 0
mov dword [0x619860], eax
mov edx, dword [0x619c48]
mov eax, dword [edx + 0x1c]
mov ecx, 0x619c48
call eax
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fsub dword [esi + 0xd4]
fld dword [esi + 0xd8]
fcompp
fnstsw ax
test ah, 5
jp 0x415647
mov eax, dword [esi + 0x2d4]
test eax, eax
je 0x415647
mov dword [eax + 0xb8], edi
mov dword [eax + 0xbc], edi
mov dword [eax + 0xc0], edi
mov dword [eax + 0xc4], edi
mov dword [eax + 0xc8], edi
mov dword [eax + 0xcc], edi
mov dword [eax + 0xd0], edi
mov dword [eax + 0xd4], edi
push esi
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [0x619874]
call fcn.00460200
mov byte [esp + 0x1bc], 0xf
mov edi, dword [0x58e230]
lea edx, [esp + 0x9c]
push 0x5cff80
push edx
call edi
add esp, 8
test al, al
jne 0x4156ab
lea eax, [esp + 0x9c]
push 0x5cff88
push eax
call edi
add esp, 8
test al, al
jne 0x4156ab
lea ecx, [esp + 0x9c]
push 0x5cff90
push ecx
call edi
add esp, 8
test al, al
je 0x4156f3
mov ecx, dword [0x619860]
test ecx, ecx
jne 0x4156ec
push 0xac
call fcn.00574f62
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x1bc], 0x10
test eax, eax
je 0x4156da
push eax
call fcn.00401f80
jmp 0x4156dc
xor eax, eax
mov byte [esp + 0x1bc], 0xf
mov ecx, eax
mov dword [0x619860], ecx
push 0
call fcn.00404f90
fld dword [esi + 0x2d0]
fld dword [esi + 0x2cc]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x415768
fld dword [esi + 0x2cc]
push ecx
fsub dword [esi + 0x2d0]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fstp dword [esp]
call fcn.00401dd0
fcomp qword [0x5ec7c0]
add esp, 4
fnstsw ax
test ah, 5
jp 0x41573d
fld dword [esi + 0x2cc]
jmp 0x415762
fldz
fld dword [esp + 0x2c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x415756
fmul qword [0x5ecd68]
jmp 0x41575c
fmul qword [0x5ecde0]
fadd dword [esi + 0x2d0]
fstp dword [esi + 0x2d0]
xor ebx, ebx
lea ebx, [ebx]
cmp byte [esi + ebx + 0x1be], 0
je 0x415918
mov eax, dword [0x619c48]
mov ecx, dword [eax + 0xa0]
push ebx
push 0x5d0500
push 0x80
lea edx, [esp + 0x13c]
push edx
push 0x619c48
call ecx
add esp, 0x14
lea edx, [esp + 0x130]
push edx
lea ecx, [esp + 0x84]
call dword [0x58e220]
mov byte [esp + 0x1bc], 0x11
mov eax, dword [esi + 0xf0]
lea edi, [eax + 0x34]
lea eax, [esp + 0x80]
push eax
mov eax, edi
call fcn.00460ca0
test edi, edi
mov dword [esp + 0x20], eax
jne 0x4157e9
call dword [0x58e3e0]
mov ecx, dword [esp + 0x20]
cmp ecx, dword [edi + 4]
mov dword [esp + 0x1c], edi
je 0x415817
mov edx, ecx
add edx, 0xc
push edx
lea eax, [esp + 0x84]
push eax
call dword [0x58e268]
add esp, 8
test al, al
jne 0x415817
lea ecx, [esp + 0x1c]
jmp 0x415826
mov ecx, dword [edi + 4]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], edi
lea ecx, [esp + 0x48]
mov eax, dword [ecx]
test eax, eax
mov edx, dword [ecx + 4]
mov ecx, dword [edi + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], ecx
je 0x415842
cmp eax, edi
je 0x41584c
call dword [0x58e3e0]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x18], edx
jne 0x41585a
xor eax, eax
jmp 0x41587e
test eax, eax
jne 0x415868
call dword [0x58e3e0]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
cmp ecx, dword [eax + 4]
jne 0x415877
call dword [0x58e3e0]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x28]
push 0
push 0x6121bc
push 0x612028
push 0
push eax
call fcn.00574e30
add esp, 0x14
mov edi, eax
mov byte [esp + 0x1bc], 0xf
lea ecx, [esp + 0x80]
call dword [0x58e21c]
mov eax, dword [0x619c48]
mov edx, dword [eax + 0x40]
push ebx
mov ecx, 0x619c48
call edx
fldz
mov ecx, dword [esi + 0xf0]
mov ecx, dword [ecx + 0x20]
push ecx
fstp dword [esp]
add eax, 0x28
push eax
lea edx, [esp + 0x58]
push edx
push ecx
call fcn.0047fd50
mov byte [esp + 0x1bc], 0x12
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0x50]
push ecx
mov ecx, edi
call edx
call dword [0x58e3e8]
cdq
mov ecx, 0x32
idiv ecx
test edx, edx
jne 0x415908
push ebx
call fcn.004226a0
mov byte [esp + 0x1bc], 0xf
mov dword [esp + 0x50], 0x5cf904
add ebx, 1
cmp ebx, 4
jl 0x415770
cmp byte [esi + 0x208], 0
je 0x415b08
mov edx, dword [esi + 0xf0]
mov edi, dword [edx + 0x20]
fld dword [edi + 0x78]
push ecx
fmul qword [0x5ec650]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
call int.0047f820
mov eax, dword [0x619c48]
fstp dword [esp + 0x18]
fld dword [edi + 0x50]
mov edx, dword [eax + 0x34]
fadd st(0), st(0)
add esp, 4
mov ecx, 0x619c48
fmul dword [esp + 0x14]
fstp dword [esp + 0x1c]
call edx
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x90]
call eax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
push ecx
fdiv dword [esp + 0x20]
fstp dword [esp + 0x18]
fld dword [edi + 0x74]
fstp dword [esp + 0x20]
fld dword [esp + 0x18]
fdiv dword [esp + 0x20]
fstp dword [esp + 0x30]
fld dword [esi + 0x204]
fmul dword [esi + 0x200]
fmul dword [esi + 0x1f8]
fstp dword [esp + 0x38]
fld dword [esp + 0x30]
fsub dword [esp + 0x38]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
call fcn.00401dd0
fcomp qword [0x5ecdd8]
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x415a7c
fld dword [esp + 0x34]
fld dword [esp + 0x2c]
fld st(0)
fsubp st(2)
fxch st(1)
fmul qword [0x5ec7c0]
faddp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fld dword [edi + 0x7c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x415a1a
fld dword [edi + 0x7c]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fld dword [edi + 0x80]
fcompp
fnstsw ax
test ah, 5
jp 0x415a37
fld dword [edi + 0x80]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
mov ecx, 0x619c48
fstp dword [edi + 0x70]
mov edx, dword [0x619c48]
mov eax, dword [edx + 0x34]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x90]
call eax
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fdiv dword [edi + 0x50]
fld dword [edi + 0x70]
fmul dword [edi + 0x74]
fdivp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
jmp 0x415af7
fld dword [esp + 0x34]
fst dword [esp + 0x28]
fld dword [edi + 0x7c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x415a97
fld dword [edi + 0x7c]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fld dword [edi + 0x80]
fcompp
fnstsw ax
test ah, 5
jp 0x415ab4
fld dword [edi + 0x80]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
mov ecx, 0x619c48
fstp dword [edi + 0x70]
mov edx, dword [0x619c48]
mov eax, dword [edx + 0x34]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x90]
call eax
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fdiv dword [edi + 0x50]
fld dword [edi + 0x70]
fmul dword [edi + 0x74]
fdivp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
push ecx
fstp dword [esp]
call fcn.0040b1f0
fadd st(0), st(0)
add esp, 4
fstp dword [edi + 0x78]
mov ecx, dword [esi + 0x84]
xor edi, edi
cmp ecx, edi
jne 0x415b18
xor eax, eax
jmp 0x415b23
mov eax, dword [esi + 0x88]
sub eax, ecx
sar eax, 2
add eax, 0xffffffff
cmp eax, edi
mov dword [esp + 0x24], eax
jl 0x415be5
mov ecx, dword [esi + 0x84]
test ecx, ecx
je 0x415b4d
mov eax, dword [esi + 0x88]
sub eax, ecx
sar eax, 2
cmp dword [esp + 0x24], eax
jb 0x415b53
call dword [0x58e3e0]
mov ecx, dword [esi + 0x84]
mov edx, dword [esp + 0x24]
mov ebx, dword [ecx + edx*4]
mov eax, dword [ebx]
mov edx, dword [eax + 4]
mov ecx, ebx
call edx
test al, al
je 0x415bd8
mov edi, dword [esi + 0x84]
cmp edi, dword [esi + 0x88]
jbe 0x415b81
call dword [0x58e3e0]
mov eax, dword [esp + 0x24]
lea edi, [edi + eax*4]
cmp edi, dword [esi + 0x88]
ja 0x415b98
cmp edi, dword [esi + 0x84]
jae 0x415b9e
call dword [0x58e3e0]
mov eax, dword [esi + 0x88]
lea ecx, [edi + 4]
sub eax, ecx
sar eax, 2
test eax, eax
jle 0x415bc1
add eax, eax
add eax, eax
push eax
push ecx
push eax
push edi
call dword [0x58e3c4]
add esp, 0x10
add dword [esi + 0x88], 0xfffffffc
cmp byte [ebx + 4], 0
je 0x415bd8
mov edx, dword [ebx]
mov eax, dword [edx]
push 1
mov ecx, ebx
call eax
sub dword [esp + 0x24], 1
jns 0x415b32
xor edi, edi
mov byte [esp + 0x1bc], 0
lea ecx, [esp + 0x9c]
call dword [0x58e21c]
mov dword [esp + 0x1bc], 0xffffffff
mov eax, dword [esp + 0x64]
cmp eax, edi
je 0x415c16
push eax
call fcn.00574dce
add esp, 4
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov ecx, dword [esp + 0x1b4]
pop edi
pop esi
xor al, al
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4