Function at 0x4136e0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push esi
push edi
push ebx
sub esp, 0x134
mov eax, dword [0x4f6e34]
mov ebx, dword [ebp + 8]
xor eax, esp
mov dword [esp + 0x108], eax
test ebx, ebx
je 0x41370c
cmp dword [ebx], 0xfff88e3b
je 0x41373e
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x108], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x415734
mov eax, 0xffffffff
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [ebx + 0x120]
test edi, edi
je 0x4159ab
cmp dword [edi], 0xfff88e3b
jne 0x41378c
cmp dword [edi + 4], 0
jle 0x41378c
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x108], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x415734
mov eax, 0xffffffff
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [edi], 0xfff88e3b
mov dword [edi + 4], 0
cmp dword [ebx + 0xc], 0
jle 0x415706
mov eax, dword [ebx + 8]
dec eax
cmp eax, 1
ja 0x4156d8
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x4137d5
mov dword [esp + 0x20], 0
lea eax, [esp + 0x20]
push eax
push edx
call fcn.0041e970
add esp, 8
test eax, eax
jl 0x415986
mov eax, dword [ebx + 0xb4]
lea esi, [edi + 0x14]
mov dword [esi + 0x6c], eax
mov edx, dword [ebx + 0x20]
mov dword [esi + 0x7c], edx
test edx, edx
je 0x4137f2
mov dword [ebx + 0x24], 0
cmp dword [edi + 0x14f30], 0
je 0x413802
mov dword [ebx + 0x24], 0
mov eax, dword [ebx + 0x110]
mov dword [edi + 0x14f44], eax
mov edx, dword [ebx + 0x114]
mov dword [edi + 0x14f48], edx
mov ecx, dword [ebx + 0x118]
mov dword [edi + 0x14f4c], ecx
cmp dword [ebx + 0x128], 0
jne 0x413841
movzx eax, byte [edi + 0x14f00]
and eax, 0xfffffffd
mov byte [edi + 0x14f00], al
jmp 0x41385f
call fcn.0041fd90
mov edx, eax
and edx, 1
movzx eax, byte [edi + 0x14f00]
add edx, edx
and eax, 0xfffffffd
or eax, edx
mov byte [edi + 0x14f00], al
cmp dword [ebx + 0x124], 0
jne 0x413873
and eax, 0xfffffffe
mov byte [edi + 0x14f00], al
jmp 0x41388f
call fcn.0041fd80
mov edx, eax
movzx eax, byte [edi + 0x14f00]
and edx, 1
and eax, 0xfffffffe
or eax, edx
mov byte [edi + 0x14f00], al
cmp dword [ebx + 0x12c], 0
jne 0x4138a3
and eax, 0xfffffff3
mov byte [edi + 0x14f00], al
jmp 0x4138e1
call fcn.0041fda0
mov edx, eax
and edx, 1
movzx eax, byte [edi + 0x14f00]
shl edx, 2
and eax, 0xfffffffb
or eax, edx
mov byte [edi + 0x14f00], al
call fcn.0041fdb0
mov edx, eax
and edx, 1
movzx eax, byte [edi + 0x14f00]
shl edx, 3
and eax, 0xfffffff7
or eax, edx
mov byte [edi + 0x14f00], al
mov eax, dword [ebx + 0x9c]
mov dword [esi + 0x58], eax
mov edx, dword [ebx + 0x78]
mov dword [esi + 0x90], edx
mov ecx, dword [ebx + 0x68]
mov dword [edi + 0xa8], ecx
mov eax, dword [ebx + 0x6c]
mov dword [edi + 0xac], eax
mov edx, dword [ebx + 0x70]
mov dword [edi + 0xb0], edx
mov ecx, dword [ebx + 0x74]
mov dword [edi + 0xb4], ecx
mov eax, dword [ebx + 8]
mov dword [esi + 0x34], eax
cmp eax, 1
je 0x41597a
cmp dword [ebx + 0x30], 3
je 0x413935
mov dword [esi + 0x38], 2
jmp 0x41393c
mov dword [esi + 0x38], 1
cmp dword [ebx + 0x30], 1
je 0x41394d
mov dword [ebx + 0x34], 0
xor eax, eax
jmp 0x413950
mov eax, dword [ebx + 0x34]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x58]
test eax, eax
jne 0x413974
mov edx, dword [ebx + 0xa8]
cmp edx, 0x80
je 0x413974
cmp dword [ebx + 0x60], 0
jne 0x413974
mov dword [ebx + 0x60], edx
mov eax, dword [esi + 0x58]
cmp eax, 1
jbe 0x41398c
cmp eax, 4
je 0x41398c
mov dword [ebx + 0x38], 0
xor edx, edx
mov eax, dword [esi + 0x58]
jmp 0x41398f
mov edx, dword [ebx + 0x38]
mov dword [esi + 0x88], edx
test eax, eax
jne 0x413a84
movss xmm2, dword [ebx + 0x64]
cmp dword [ebx + 0x60], 0
jne 0x4139fe
movaps xmm1, xmm2
andps xmm1, xmmword [0x4895d0]
pxor xmm0, xmm0
comiss xmm1, xmm0
jbe 0x4139de
pxor xmm1, xmm1
cvtss2sd xmm1, xmm2
andps xmm1, xmmword [0x4895e0]
movsd xmm0, qword [0x4896a8]
mulsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x4139e7
jmp 0x4139fe
pxor xmm0, xmm0
comiss xmm0, xmm1
jb 0x4139fe
movss xmm2, dword [0x489764]
movss dword [ebx + 0x64], xmm2
cmp dword [esi + 0x58], 0
jne 0x413a84
pxor xmm0, xmm0
comiss xmm2, xmm0
jbe 0x413a84
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x413a34
pxor xmm0, xmm0
cvtsi2sd xmm0, dword [ebx + 0xc]
mulsd xmm0, qword [0x4896e8]
cvttsd2si eax, xmm0
push eax
call fcn.0041e870
add esp, 4
mov dword [ebx + 0x10], eax
movss xmm2, dword [ebx + 0x64]
push esi
push eax
shl eax, 4
pxor xmm0, xmm0
imul eax, dword [esi + 0x38]
cvtss2sd xmm2, xmm2
cvtsi2sd xmm0, eax
mulsd xmm2, qword [0x4896f0]
divsd xmm0, xmm2
cvttsd2si eax, xmm0
mov dword [ebx + 0x60], eax
call fcn.0041e970
add esp, 8
mov dword [esi + 4], eax
cmp dword [esi + 0x88], 0
jne 0x413a84
push dword [ebx + 0x10]
push dword [edi + 0x14]
push dword [ebx + 0x60]
call fcn.0041e5c0
add esp, 0xc
mov dword [ebx + 0x60], eax
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x413b26
cmp edx, 0x3e80
jge 0x413abd
mov eax, 8
cmp dword [ebx + 0xa8], 8
cmovge eax, dword [ebx + 0xa8]
mov ecx, 0x40
cmp eax, 0x40
cmovl ecx, eax
mov dword [ebx + 0xa8], ecx
jmp 0x413b13
cmp edx, 0x7d00
jge 0x413aed
mov eax, 8
cmp dword [ebx + 0xa8], 8
cmovge eax, dword [ebx + 0xa8]
mov ecx, 0xa0
cmp eax, 0xa0
cmovl ecx, eax
mov dword [ebx + 0xa8], ecx
jmp 0x413b13
mov eax, 0x20
cmp dword [ebx + 0xa8], 0x20
cmovge eax, dword [ebx + 0xa8]
mov ecx, 0x140
cmp eax, 0x140
cmovl ecx, eax
mov dword [ebx + 0xa8], ecx
mov ecx, dword [ebx + 0xb8]
test ecx, ecx
je 0x413c4c
jmp 0x414089
mov eax, dword [esi + 0x58]
cmp eax, 1
je 0x413b3e
cmp eax, 4
je 0x413b3e
mov ecx, dword [ebx + 0xb8]
jmp 0x413c44
pxor xmm0, xmm0
mov eax, 0xc0
cvtsi2ss xmm0, dword [ebx + 0xa4]
movups xmm1, xmmword [0x489440]
movsd xmm2, qword [0x489450]
addss xmm0, dword [ebx + 0xa0]
movups xmmword [esp + 0xf0], xmm1
movsd qword [esp + 0x100], xmm2
movups xmm1, xmmword [eax + 0x489370]
movups xmm2, xmmword [eax + 0x489360]
movups xmm3, xmmword [eax + str.L__R]
movups xmm4, xmmword [eax + str._MS]
movups xmmword [esp + eax + 0x20], xmm1
movups xmmword [esp + eax + 0x10], xmm2
movups xmmword [esp + eax], xmm3
movups xmmword [esp + eax - 0x10], xmm4
sub eax, 0x40
jne 0x413b77
mov dword [esp + 0x14], 2
mov ecx, 0x30
mov dword [esp + 0x24], edi
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x14]
cmp eax, dword [esp + ecx + 0x30]
jne 0x413c15
movss xmm1, dword [esp + ecx + 0x34]
comiss xmm1, xmm0
jbe 0x413c17
movaps xmm2, xmm0
pxor xmm3, xmm3
divss xmm2, xmm1
pxor xmm1, xmm1
cvtss2sd xmm2, xmm2
cvtss2sd xmm1, dword [esp + ecx + 0x3c]
mulsd xmm2, xmm1
cvttsd2si esi, xmm2
cvtsi2sd xmm3, esi
mov dword [ebx + 0xa4], esi
subsd xmm2, xmm3
cvtsd2ss xmm2, xmm2
movss dword [ebx + 0xa0], xmm2
jmp 0x413c17
jl 0x413c2d
comiss xmm0, dword [esp + ecx + 0x34]
jb 0x413c2d
movss xmm1, dword [esp + ecx + 0x38]
comiss xmm1, xmm0
ja 0x415739
inc edi
add ecx, 0x18
cmp edi, 9
jl 0x413bc7
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
mov ecx, dword [ebx + 0xb8]
test ecx, ecx
jne 0x413ead
mov eax, dword [esi + 0x58]
cmp eax, 4
ja 0x413e27
movzx eax, word [eax*2 + 0x4897bc]
add eax, 0x413c67
jmp eax
movsd xmm2, qword [0x4896f8]
jmp 0x413e91
movups xmm0, xmmword [0x4894c0]
movups xmm1, xmmword [0x4894d0]
movsd xmm2, qword [0x4894e0]
mov eax, dword [0x4894e8]
movups xmmword [esp + 0x30], xmm0
movups xmmword [esp + 0x40], xmm1
movsd qword [esp + 0x50], xmm2
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0xa4]
cmp eax, 9
ja 0x413d0c
pxor xmm2, xmm2
pxor xmm1, xmm1
cvtsi2sd xmm2, dword [esp + eax*4 + 0x30]
cvtsi2sd xmm1, dword [esp + eax*4 + 0x34]
pxor xmm0, xmm0
subsd xmm1, xmm2
cvtss2sd xmm0, dword [ebx + 0xa0]
mulsd xmm1, xmm0
addsd xmm2, xmm1
cmp dword [ebx + 0x30], 3
je 0x4157c0
cvttsd2si ecx, xmm2
mov dword [ebx + 0xb8], ecx
test edx, edx
jne 0x414089
mov edx, dword [ebx + 0xc]
lea eax, [ecx + ecx]
mov dword [esp + 0x10], edx
cmp eax, edx
jle 0x413ecc
mov eax, edx
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
mov dword [ebx + 0xb8], ecx
cmp dword [esp + 0x10], 0xbb80
jl 0x413ee0
mov edx, 0xbb80
jmp 0x413f73
cmp dword [esp + 0x10], 0xac44
jge 0x413f6e
cmp dword [esp + 0x10], 0x7d00
jl 0x413eff
mov edx, 0x7d00
jmp 0x413f73
cmp dword [esp + 0x10], 0x5dc0
jl 0x413f10
mov edx, 0x5dc0
jmp 0x413f73
cmp dword [esp + 0x10], 0x5622
jl 0x413f21
mov edx, 0x5622
jmp 0x413f73
cmp dword [esp + 0x10], 0x3e80
jl 0x413f32
mov edx, 0x3e80
jmp 0x413f73
cmp dword [esp + 0x10], 0x2ee0
jl 0x413f43
mov edx, 0x2ee0
jmp 0x413f73
cmp dword [esp + 0x10], 0x2b11
jl 0x413f54
mov edx, 0x2b11
jmp 0x413f73
mov edx, 0xac44
mov eax, 0x1f40
cmp dword [esp + 0x10], 0x1f40
mov ebx, dword [ebp + 8]
cmovge edx, eax
jmp 0x413f73
mov edx, 0xac44
cmp ecx, 0xffffffff
je 0x414086
mov eax, 0xac44
cmp ecx, 0x3e58
cmovle edx, eax
mov eax, 0x7d00
cmp ecx, 0x3b92
cmovle edx, eax
mov eax, 0x5dc0
cmp ecx, 0x2bd4
cmovle edx, eax
mov eax, 0x5622
cmp ecx, 0x26f2
cmovle edx, eax
mov eax, 0x3e80
cmp ecx, 0x1c3e
cmovle edx, eax
mov eax, 0x2ee0
cmp ecx, 0x152c
cmovle edx, eax
mov eax, 0x2b11
cmp ecx, 0x119e
cmovle edx, eax
mov eax, 0x1f40
cmp ecx, 0xf82
cmovle edx, eax
cmp edx, dword [esp + 0x10]
jle 0x414086
cmp dword [esp + 0x10], 0xac44
jg 0x414081
cmp dword [esp + 0x10], 0x7d00
jg 0x41407a
cmp dword [esp + 0x10], 0x5dc0
jg 0x414073
cmp dword [esp + 0x10], 0x5622
jg 0x41406c
cmp dword [esp + 0x10], 0x3e80
jg 0x414065
cmp dword [esp + 0x10], 0x2ee0
jg 0x41405e
cmp dword [esp + 0x10], 0x2b11
jg 0x414057
mov edx, 0x1f40
mov eax, 0x2b11
cmp dword [esp + 0x10], 0x1f40
cmovg edx, eax
jmp 0x414086
mov edx, 0x2ee0
jmp 0x414086
mov edx, 0x3e80
jmp 0x414086
mov edx, 0x5622
jmp 0x414086
mov edx, 0x5dc0
jmp 0x414086
mov edx, 0x7d00
jmp 0x414086
mov edx, 0xac44
jmp 0x414086
mov edx, 0xbb80
mov dword [ebx + 0x10], edx
mov eax, dword [esi + 0x58]
cmp eax, 1
je 0x4140a6
cmp eax, 4
je 0x4140a6
mov eax, 0x5014
cmp ecx, 0x5014
cmovl eax, ecx
jmp 0x4140b4
mov eax, 0x5dc0
cmp ecx, 0x5dc0
cmovl eax, ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
cmp ecx, eax
cmovl eax, ecx
mov dword [ebx + 0xb8], eax
mov ecx, dword [esi + 0x58]
test ecx, ecx
jne 0x414101
mov eax, edx
pxor xmm0, xmm0
shl eax, 4
pxor xmm1, xmm1
imul eax, dword [esi + 0x38]
cvtsi2sd xmm0, dword [ebx + 0x60]
cvtsi2sd xmm1, eax
mulsd xmm0, qword [0x4896f0]
divsd xmm1, xmm0
cvtsd2ss xmm1, xmm1
movss dword [ebx + 0x64], xmm1
mov ecx, dword [esi + 0x58]
cmp ecx, 3
jne 0x414139
shl edx, 4
pxor xmm0, xmm0
imul edx, dword [esi + 0x38]
pxor xmm1, xmm1
cvtsi2sd xmm0, dword [ebx + 0xa8]
cvtsi2sd xmm1, edx
mulsd xmm0, qword [0x4896f0]
divsd xmm1, xmm0
cvtsd2ss xmm1, xmm1
movss dword [ebx + 0x64], xmm1
mov ecx, dword [esi + 0x58]
mov edx, dword [ebx + 0x80]
mov dword [esi + 0x80], edx
mov eax, dword [ebx + 0xb8]
mov dword [esi + 0x24], eax
mov edx, dword [ebx + 0xbc]
mov dword [esi + 0x28], edx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x2c], eax
mov eax, 1
mov edx, dword [ebx + 0x10]
cmp edx, 0x5dc0
mov dword [esp + 0x10], edx
mov dword [esi + 0x30], edx
mov edx, 2
cmovle edx, eax
lea eax, [ecx - 1]
mov dword [esi + 0x3c], edx
cmp eax, 1
jbe 0x4141f8
cmp ecx, 4
je 0x4141f8
cmp ecx, 3
jne 0x4141c5
mov eax, dword [esp + 0x10]
pxor xmm0, xmm0
shl eax, 4
pxor xmm1, xmm1
imul eax, dword [esi + 0x38]
cvtsi2sd xmm0, dword [ebx + 0xa8]
cvtsi2sd xmm1, eax
mulsd xmm0, qword [0x4896f0]
divsd xmm1, xmm0
cvtsd2ss xmm1, xmm1
movss dword [ebx + 0x64], xmm1
jmp 0x41422b
mov eax, dword [esp + 0x10]
pxor xmm0, xmm0
shl eax, 4
pxor xmm1, xmm1
imul eax, dword [esi + 0x38]
cvtsi2sd xmm0, dword [ebx + 0x60]
cvtsi2sd xmm1, eax
mulsd xmm0, qword [0x4896f0]
divsd xmm1, xmm0
cvtsd2ss xmm1, xmm1
movss dword [ebx + 0x64], xmm1
jmp 0x41422b
movups xmm0, xmmword [0x4894f0]
movups xmm1, xmmword [0x489500]
movsd xmm2, qword [0x489510]
movups xmmword [esp + 0x30], xmm0
movups xmmword [esp + 0x40], xmm1
movsd qword [esp + 0x50], xmm2
mov eax, dword [ebx + 0xa4]
mov edx, dword [esp + eax*4 + 0x30]
mov dword [ebx + 0x64], edx
mov eax, dword [ebx + 0x30]
cmp eax, 4
jne 0x41423f
mov dword [ebx + 0x30], 1
mov eax, 1
mov edx, dword [esi + 0x28]
mov dword [esi + 0xa4], eax
test edx, edx
jle 0x41595a
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
movss xmm2, dword [0x489768]
mulss xmm0, xmm2
movss dword [esi + 0xf0], xmm0
mov eax, dword [ebx + 0xc4]
test eax, eax
jl 0x414286
add edx, eax
pxor xmm1, xmm1
cvtsi2ss xmm1, edx
mulss xmm2, xmm1
jmp 0x414289
movaps xmm2, xmm0
pxor xmm1, xmm1
cvtsi2ss xmm1, dword [esi + 0x30]
divss xmm0, xmm1
divss xmm2, xmm1
movss dword [esi + 0xf0], xmm0
movss dword [esi + 0xf4], xmm2
mov eax, dword [esi + 0x24]
pxor xmm3, xmm3
movaps xmm1, xmm3
test eax, eax
jle 0x414323
mov edx, dword [esi + 0x30]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
cmp eax, ecx
jge 0x414323
pxor xmm1, xmm1
cvtsi2ss xmm1, eax
movss xmm4, dword [0x489768]
mulss xmm1, xmm4
mov dword [esi + 0xe8], 0
movss dword [esi + 0xec], xmm1
mov ecx, dword [ebx + 0xc0]
test ecx, ecx
jl 0x414310
sub eax, ecx
pxor xmm3, xmm3
cvtsi2ss xmm3, eax
mulss xmm4, xmm3
pxor xmm3, xmm3
maxss xmm3, xmm4
jmp 0x414313
movaps xmm3, xmm1
pxor xmm4, xmm4
cvtsi2ss xmm4, edx
divss xmm3, xmm4
divss xmm1, xmm4
pxor xmm4, xmm4
comiss xmm3, xmm4
ja 0x41434f
movss xmm4, dword [0x48976c]
movss dword [esi + 0xec], xmm1
movss dword [esi + 0xe8], xmm3
movss dword [esp + 0x34], xmm4
jmp 0x414532
movups xmm4, xmmword [0x489630]
xor eax, eax
rcpps xmm7, xmm4
mulps xmm4, xmm7
mulps xmm4, xmm7
addps xmm7, xmm7
movdqu xmm5, xmmword [0x489600]
subps xmm7, xmm4
shufps xmm3, xmm3, 0
movdqu xmmword [esp + 0x10], xmm5
shufps xmm1, xmm1, 0
movups xmmword [esp + 0x50], xmm3
movdqu xmm6, xmmword [0x489610]
movdqu xmm5, xmmword [0x489620]
movss dword [esp + 0x80], xmm0
movss dword [esp + 0x30], xmm2
movups xmmword [esp + 0x40], xmm7
movups xmmword [esp + 0x60], xmm1
movdqu xmm3, xmmword [esp + 0x10]
cvtdq2ps xmm4, xmm3
mulps xmm4, xmmword [esp + 0x40]
movdqa xmm1, xmm6
movups xmm7, xmmword [esp + 0x60]
pcmpgtd xmm1, xmm3
movaps xmm2, xmm7
add eax, 4
cmpleps xmm2, xmm4
movaps xmm0, xmm2
pandn xmm0, xmm6
movdqu xmmword [esp + 0x70], xmm0
movdqa xmm0, xmm6
pxor xmm0, xmm3
pand xmm1, xmm0
movups xmm0, xmmword [esp + 0x50]
pxor xmm1, xmm6
movdqu xmmword [esp + 0x10], xmm3
pand xmm1, xmm2
cmpltps xmm0, xmm4
cmpltps xmm4, xmm7
movdqa xmm6, xmm1
movdqa xmm2, xmm5
movdqa xmm1, xmm3
pcmpgtd xmm2, xmm3
pxor xmm1, xmm5
pand xmm2, xmm1
pand xmm0, xmm4
pxor xmm2, xmm5
movaps xmm4, xmm0
pand xmm2, xmm0
pandn xmm4, xmm5
movdqa xmm5, xmm2
por xmm6, xmmword [esp + 0x70]
por xmm5, xmm4
paddd xmm3, xmmword [0x4895f0]
cmp eax, 0x20
jb 0x4143b1
movdqa xmm1, xmm5
movdqa xmm3, xmm5
psrldq xmm1, 8
movdqa xmm7, xmm6
pcmpgtd xmm3, xmm1
pxor xmm1, xmm5
pand xmm3, xmm1
movdqa xmm1, xmm6
psrldq xmm7, 8
pxor xmm3, xmm5
movdqa xmm5, xmm3
pcmpgtd xmm1, xmm7
pxor xmm7, xmm6
movdqa xmm4, xmm3
psrldq xmm5, 4
pand xmm1, xmm7
pcmpgtd xmm4, xmm5
pxor xmm5, xmm3
pxor xmm1, xmm6
pand xmm4, xmm5
movdqa xmm6, xmm1
pxor xmm4, xmm3
psrldq xmm6, 4
movdqa xmm3, xmm1
pcmpgtd xmm3, xmm6
pxor xmm6, xmm1
movd eax, xmm4
pand xmm3, xmm6
pxor xmm3, xmm1
movss xmm0, dword [esp + 0x80]
movss xmm2, dword [esp + 0x30]
movd edx, xmm3
movsd xmm1, qword [0x489710]
movsd xmm4, qword [0x489718]
cmp eax, 0x3e7
je 0x415941
pxor xmm3, xmm3
cvtsi2sd xmm3, eax
subsd xmm3, xmm1
divsd xmm3, xmm4
cvtsd2ss xmm3, xmm3
pxor xmm1, xmm1
cvtsi2ss xmm1, edx
movss xmm4, dword [0x48976c]
divss xmm1, xmm4
movss dword [esi + 0xe8], xmm3
movss dword [esp + 0x34], xmm4
movss dword [esi + 0xec], xmm1
pxor xmm4, xmm4
comiss xmm2, xmm4
jbe 0x41458d
pxor xmm5, xmm5
cvtss2sd xmm5, xmm2
movsd xmm4, qword [0x489720]
comisd xmm4, xmm5
jbe 0x41458d
push str.Warning:_highpass_filter_disabled.__highpass_frequency_too_small_n
push edi
xor eax, eax
mov dword [esi + 0xf0], eax
mov dword [esi + 0xf4], eax
call fcn.0041fd50
add esp, 8
movss xmm2, dword [esi + 0xf4]
movss xmm0, dword [esi + 0xf0]
movss xmm3, dword [esi + 0xe8]
movss xmm1, dword [esi + 0xec]
pxor xmm4, xmm4
comiss xmm2, xmm4
jbe 0x414739
movups xmm4, xmmword [0x489630]
xor eax, eax
rcpps xmm7, xmm4
mulps xmm4, xmm7
pcmpeqd xmm6, xmm6
mulps xmm4, xmm7
addps xmm7, xmm7
movdqu xmm5, xmmword [0x489600]
subps xmm7, xmm4
movdqu xmmword [esp + 0x10], xmm5
movdqa xmm5, xmm6
shufps xmm2, xmm2, 0
movss dword [esp + 0x28], xmm1
shufps xmm0, xmm0, 0
movups xmmword [esp + 0x40], xmm7
movups xmmword [esp + 0x50], xmm2
movss dword [esp + 0x2c], xmm3
movdqu xmm1, xmmword [esp + 0x10]
nop dword [eax]
cvtdq2ps xmm2, xmm1
mulps xmm2, xmmword [esp + 0x40]
movdqa xmm4, xmm6
movaps xmm3, xmm2
pcmpgtd xmm4, xmm1
cmpleps xmm3, xmm0
movaps xmm7, xmm3
add eax, 4
pandn xmm7, xmm6
pxor xmm6, xmm1
pand xmm4, xmm6
pxor xmm4, xmm1
pand xmm4, xmm3
movaps xmm3, xmm0
cmpltps xmm3, xmm2
cmpltps xmm2, xmmword [esp + 0x50]
pand xmm3, xmm2
movdqa xmm6, xmm4
movdqa xmm2, xmm5
movaps xmm4, xmm3
pcmpgtd xmm2, xmm1
pandn xmm4, xmm5
pxor xmm5, xmm1
por xmm6, xmm7
pand xmm2, xmm5
pxor xmm2, xmm1
pand xmm2, xmm3
movdqa xmm5, xmm2
paddd xmm1, xmmword [0x4895f0]
por xmm5, xmm4
cmp eax, 0x20
jb 0x4145f0
movdqa xmm0, xmm5
movdqa xmm2, xmm5
psrldq xmm0, 8
movdqa xmm7, xmm6
pcmpgtd xmm2, xmm0
pxor xmm5, xmm0
pand xmm2, xmm5
psrldq xmm7, 8
pxor xmm2, xmm0
movdqa xmm0, xmm6
pxor xmm6, xmm7
pcmpgtd xmm0, xmm7
movdqa xmm4, xmm2
pand xmm0, xmm6
movdqa xmm5, xmm2
psrldq xmm4, 4
pxor xmm0, xmm7
pcmpgtd xmm5, xmm4
pxor xmm2, xmm4
movdqa xmm6, xmm0
pand xmm5, xmm2
psrldq xmm6, 4
movdqa xmm2, xmm0
pcmpgtd xmm2, xmm6
pxor xmm0, xmm6
pand xmm2, xmm0
pxor xmm0, xmm0
pxor xmm2, xmm6
pxor xmm5, xmm4
movd edx, xmm2
movd eax, xmm5
movss xmm1, dword [esp + 0x28]
movss xmm3, dword [esp + 0x2c]
cvtsi2ss xmm0, edx
divss xmm0, dword [esp + 0x34]
movss dword [esi + 0xf0], xmm0
cmp eax, 0xffffffff
je 0x415918
pxor xmm2, xmm2
cvtsi2sd xmm2, eax
addsd xmm2, qword [0x489710]
divsd xmm2, qword [0x489718]
cvtsd2ss xmm2, xmm2
movss dword [esi + 0xf4], xmm2
movaps xmm4, xmm1
movaps xmm6, xmm2
movsd xmm5, qword [0x489728]
xor eax, eax
movss dword [esp + 0x80], xmm0
mov ebx, eax
subss xmm4, xmm3
subss xmm6, xmm0
cvtss2sd xmm4, xmm4
cvtss2sd xmm6, xmm6
addsd xmm4, xmm5
addsd xmm5, xmm6
movsd qword [esp + 0x18], xmm5
movsd qword [esp + 0x38], xmm4
movss xmm5, dword [0x489740]
pxor xmm6, xmm6
cvtsi2ss xmm6, ebx
comiss xmm2, dword [esp + 0x80]
divss xmm6, dword [esp + 0x34]
ja 0x41479d
movaps xmm4, xmm5
jmp 0x414817
movaps xmm0, xmm2
subss xmm0, xmm6
cvtss2sd xmm0, xmm0
divsd xmm0, qword [esp + 0x18]
cvtsd2ss xmm0, xmm0
comiss xmm0, xmm5
ja 0x414813
pxor xmm4, xmm4
comiss xmm4, xmm0
jae 0x414798
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x489730]
movss dword [esp + 0x10], xmm6
movss dword [esp + 0x30], xmm2
movss dword [esp + 0x28], xmm1
movss dword [esp + 0x2c], xmm3
call fcn.00447110
pxor xmm4, xmm4
movss xmm3, dword [esp + 0x2c]
movss xmm1, dword [esp + 0x28]
movss xmm2, dword [esp + 0x30]
movss xmm6, dword [esp + 0x10]
movss xmm5, dword [0x489740]
cvtsd2ss xmm4, xmm0
jmp 0x414817
pxor xmm4, xmm4
comiss xmm1, xmm3
ja 0x414821
movaps xmm0, xmm5
jmp 0x414897
subss xmm6, xmm3
cvtss2sd xmm6, xmm6
divsd xmm6, qword [esp + 0x38]
cvtsd2ss xmm6, xmm6
comiss xmm6, xmm5
ja 0x414893
pxor xmm0, xmm0
comiss xmm0, xmm6
jae 0x41481c
cvtss2sd xmm6, xmm6
mulsd xmm6, qword [0x489730]
movaps xmm0, xmm6
movss dword [esp + 0x14], xmm4
movss dword [esp + 0x30], xmm2
movss dword [esp + 0x28], xmm1
movss dword [esp + 0x2c], xmm3
call fcn.00447110
movss xmm3, dword [esp + 0x2c]
movss xmm1, dword [esp + 0x28]
movss xmm2, dword [esp + 0x30]
movss xmm4, dword [esp + 0x14]
movss xmm5, dword [0x489740]
cvtsd2ss xmm0, xmm0
jmp 0x414897
pxor xmm0, xmm0
mulss xmm4, xmm0
movss dword [edi + ebx*4 + 0x90b0], xmm4
inc ebx
cmp ebx, 0x20
jb 0x414780
push esi
push dword [esi + 0x30]
mov ebx, dword [ebp + 8]
call fcn.0041e970
add esp, 8
mov dword [esi + 4], eax
cmp dword [esi + 0x58], 0
jne 0x414913
cmp dword [esi + 0x88], 0
je 0x4148db
mov dword [edi + 0x14b08], 0
jmp 0x41491d
push dword [esi + 0x30]
push dword [edi + 0x14]
push dword [ebx + 0x60]
call fcn.0041e5c0
mov dword [ebx + 0x60], eax
push dword [esi + 0x30]
push dword [edi + 0x14]
push eax
call fcn.0041e8f0
add esp, 0x18
test eax, eax
jle 0x414907
mov dword [edi + 0x14b08], eax
jmp 0x41491d
mov dword [edi + 0x14b08], 8
jmp 0x41491d
mov dword [edi + 0x14b08], 1
push edi
call fcn.00425e80
add esp, 4
mov eax, dword [edi + 0x14]
xor ecx, ecx
cmp dword [esi + 0x30], 0x3e80
lea edx, [eax + eax*2]
mov eax, 1
cmovl ecx, eax
add edx, dword [esi + 4]
lea eax, [ecx + ecx*2]
lea ecx, [edx + eax*2]
imul eax, ecx, 0xcc
lea edx, [edi + 4]
mov dword [esp + 0x2c], eax
and edx, 0xf
je 0x41497c
neg edx
xor eax, eax
add edx, 0x10
shr edx, 2
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + eax*4 + 0x48d820]
mov dword [edi + eax*4 + 0x5374], ecx
inc eax
cmp eax, edx
jb 0x414966
mov ebx, dword [ebp + 8]
mov eax, edx
neg eax
mov ecx, dword [esp + 0x2c]
add eax, 3
and eax, 3
neg eax
add eax, 0x17
lea ecx, [ecx + edx*4 + 0x48d820]
test cl, 0xf
je 0x4149ba
mov ecx, dword [esp + 0x2c]
movdqu xmm0, xmmword [ecx + edx*4 + 0x48d820]
movdqu xmmword [edi + edx*4 + 0x5374], xmm0
add edx, 4
cmp edx, eax
jb 0x41499f
jmp 0x4149d7
mov ecx, dword [esp + 0x2c]
movdqu xmm0, xmmword [ecx + edx*4 + 0x48d820]
movdqu xmmword [edi + edx*4 + 0x5374], xmm0
add edx, 4
cmp edx, eax
jb 0x4149be
cmp eax, 0x17
jae 0x4149f4
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + eax*4 + 0x48d820]
mov dword [edi + eax*4 + 0x5374], edx
inc eax
cmp eax, 0x17
jb 0x4149e0
mov ecx, dword [edi + 0x53cc]
mov eax, 0x2aaaaaab
sub ecx, dword [edi + 0x53c8]
imul ecx
sar ecx, 0x1f
sub edx, ecx
movdqu xmm4, xmmword [0x489650]
movdqu xmm2, xmmword [0x489660]
movdqa xmm3, xmm4
psrlq xmm2, 0x20
movd xmm5, edx
pshufd xmm0, xmm5, 0
movdqa xmm1, xmm0
psrlq xmm1, 0x20
movdqa xmm6, xmm1
pmuludq xmm3, xmm0
pmuludq xmm6, xmm2
movdqu xmm5, xmmword [0x489670]
psllq xmm6, 0x20
movd xmm7, dword [edi + 0x53c8]
pand xmm3, xmm5
movdqu xmmword [esp + 0x10], xmm2
por xmm3, xmm6
pshufd xmm2, xmm7, 0
movdqa xmm7, xmm0
paddd xmm4, xmmword [0x489640]
paddd xmm3, xmm2
movdqa xmm6, xmm4
movq qword [edi + 0x5408], xmm3
psrlq xmm6, 0x20
movdqa xmm3, xmm1
pmuludq xmm7, xmm4
pmuludq xmm3, xmm6
pand xmm7, xmm5
psllq xmm3, 0x20
por xmm7, xmm3
movdqu xmm3, xmmword [0x489640]
paddd xmm7, xmm2
paddd xmm3, xmm4
movdqu xmmword [esp + 0x30], xmm6
movdqa xmm6, xmm3
psrlq xmm6, 0x20
pmuludq xmm0, xmm3
pmuludq xmm1, xmm6
mov eax, dword [esp + 0x2c]
pand xmm0, xmm5
psllq xmm1, 0x20
por xmm0, xmm1
paddd xmm2, xmm0
mov ecx, dword [eax + 0x48d8b0]
mov ebx, dword [eax + 0x48d8ac]
movq qword [edi + 0x5418], xmm2
movdqu xmm0, xmmword [eax + 0x48d87c]
movdqu xmm1, xmmword [eax + 0x48d88c]
movdqu xmmword [edi + 0x53d0], xmm0
movdqu xmmword [edi + 0x53e0], xmm1
movdqu xmm2, xmmword [eax + 0x48d89c]
mov dword [edi + 0x5404], ecx
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar ecx, 0x1f
sub edx, ecx
movq qword [edi + 0x5410], xmm7
movdqu xmmword [edi + 0x53f0], xmm2
movd xmm0, edx
pshufd xmm0, xmm0, 0
movdqa xmm1, xmm0
movdqu xmm2, xmmword [0x489650]
psrlq xmm1, 0x20
movdqu xmm7, xmmword [esp + 0x10]
pmuludq xmm2, xmm0
pmuludq xmm7, xmm1
pmuludq xmm4, xmm0
pmuludq xmm0, xmm3
pand xmm2, xmm5
psllq xmm7, 0x20
movdqu xmmword [esp + 0x40], xmm6
por xmm2, xmm7
movdqu xmm7, xmmword [esp + 0x30]
movd xmm6, ebx
pmuludq xmm7, xmm1
pand xmm4, xmm5
pmuludq xmm1, xmmword [esp + 0x40]
psllq xmm7, 0x20
pand xmm5, xmm0
psllq xmm1, 0x20
por xmm4, xmm7
pshufd xmm6, xmm6, 0
por xmm5, xmm1
mov dword [edi + 0x5400], ebx
paddd xmm2, xmm6
mov ebx, dword [esi + 0x3c]
paddd xmm4, xmm6
paddd xmm6, xmm5
mov dword [esp + 0x28], ebx
mov dword [edi + 0x5420], 0x240
movq qword [edi + 0x5424], xmm2
movq qword [edi + 0x542c], xmm4
movq qword [edi + 0x5434], xmm6
mov dword [edi + 0x543c], 0xc0
mov edx, dword [esi + 0x38]
cmp ebx, 2
mov ebx, dword [ebp + 8]
je 0x415903
mov ecx, 0xd
mov eax, 0x15
cmp edx, 1
cmove eax, ecx
cmp dword [esi + 0x90], 0
je 0x414c2c
add eax, 2
mov dword [esi + 8], eax
jmp 0x414c2f
mov dword [esi + 8], eax
imul edx, edx, 0x2bc
lea eax, [edi + 0xc]
pxor xmm0, xmm0
imul edx, dword [esp + 0x28]
cvtsi2ss xmm0, edx
and eax, 0xf
je 0x414c62
neg eax
xor edx, edx
add eax, 0x10
shr eax, 2
movss dword [edi + edx*4 + 0x9b4c], xmm0
inc edx
cmp edx, eax
jb 0x414c54
mov edx, eax
movaps xmm1, xmm0
neg edx
add edx, 3
and edx, 7
neg edx
shufps xmm1, xmm1, 0
lea ecx, [edx + 0x13]
movups xmmword [edi + eax*4 + 0x9b4c], xmm1
movups xmmword [edi + eax*4 + 0x9b5c], xmm1
add eax, 8
cmp eax, ecx
jb 0x414c78
lea eax, [edx + 0x14]
cmp eax, 0x13
ja 0x414d04
neg ecx
add ecx, 0x13
cmp ecx, 2
jb 0x4158f6
mov eax, ecx
and eax, 0xfffffffe
mov dword [esp + 0x18], eax
lea eax, [edi + edx*4 + 0x4c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
movlps qword [ebx + edi*4 + 0x9b4c], xmm1
add edi, 2
cmp edi, eax
jb 0x414cce
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x24]
mov ebx, dword [ebp + 8]
cmp ecx, dword [esp + 0x18]
jbe 0x414d04
lea eax, [edi + edx*4 + 0x4c]
mov edx, dword [esp + 0x18]
movss dword [eax + edx*4 + 0x9b4c], xmm0
inc edx
cmp edx, ecx
jb 0x414cf6
cmp dword [ebx + 0xdc], 0xffffffff
jne 0x414d17
mov dword [ebx + 0xdc], 4
mov eax, dword [esi + 0x58]
cmp eax, 1
je 0x414de6
cmp eax, 4
je 0x414de6
cmp eax, 2
jne 0x414d9d
mov eax, dword [ebx + 0xa4]
push 0
lea edx, [eax + eax*8]
add edx, eax
neg edx
add edx, 0x1f4
push edx
push ebx
call fcn.0042bbd0
add esp, 0xc
cmp dword [ebx + 0x8c], 0
jne 0x414d6e
cmp dword [esi + 0x30], 0xabe0
jle 0x414d6e
mov dword [edi + 0x14c64], 1
jmp 0x414d78
mov dword [edi + 0x14c64], 0
mov eax, 6
cmp dword [ebx + 0x2c], 6
cmovl eax, dword [ebx + 0x2c]
test eax, eax
jl 0x414d91
mov dword [ebx + 0x2c], eax
jmp 0x414e6a
mov dword [ebx + 0x2c], 3
jmp 0x414e6a
mov dword [edi + 0x14c64], 0
cmp dword [ebx + 0x2c], 0
jge 0x414db7
mov dword [ebx + 0x2c], 3
mov eax, dword [esi + 0x58]
test eax, eax
jne 0x414dc7
push dword [ebx + 0x60]
push ebx
call fcn.004163c0
add esp, 8
push 0
push dword [ebx + 0xa8]
push ebx
call fcn.0042bbd0
add esp, 0xc
mov eax, dword [esi + 0x58]
mov dword [ebx + 0x9c], eax
jmp 0x414e6a
cmp dword [ebx + 0x7c], 0
jge 0x414df3
mov dword [ebx + 0x7c], 2
mov eax, dword [ebx + 0xf4]
mov edx, eax
mov ecx, dword [ebx + 0xa4]
sar edx, 0x1f
not edx
and edx, eax
lea eax, [ecx + ecx*8]
add eax, ecx
neg eax
push 0
add eax, 0x1f4
push eax
push ebx
mov dword [ebx + 0xf4], edx
call fcn.0042bbd0
add esp, 0xc
mov eax, dword [ebx + 0x2c]
test eax, eax
jl 0x414e32
cmp eax, 5
jge 0x414e34
xor eax, eax
mov edx, 7
cmp eax, 7
cmovl edx, eax
mov dword [ebx + 0x2c], edx
cmp dword [ebx + 0x8c], 0
jne 0x414e60
cmp dword [esi + 0x30], 0xabe0
jle 0x414e60
mov dword [edi + 0x14c64], 1
jmp 0x414e6a
mov dword [edi + 0x14c64], 0
movss xmm1, dword [ebx + 0xc8]
movss dword [edi + 0x14bb0], xmm1
movss xmm2, dword [ebx + 0xcc]
movss dword [edi + 0x14bb4], xmm2
cmp dword [ebx + 0x100], 0
je 0x414ebb
movss xmm0, dword [ebx + 0x104]
addss xmm1, xmm0
movss dword [edi + 0x14bb0], xmm1
movss xmm1, dword [ebx + 0x104]
addss xmm2, xmm1
movss dword [edi + 0x14bb4], xmm2
cmp dword [esi + 0x58], 0
je 0x414fc9
mov eax, dword [esi + 0x30]
mov dword [esi + 0x60], 1
cmp eax, 0x3e80
jge 0x414edf
mov dword [esi + 0x64], 8
jmp 0x414ee6
mov dword [esi + 0x64], 0xe
mov edx, dword [ebx + 0xac]
test edx, edx
jne 0x414ef7
mov eax, 1
jmp 0x414f2b
push eax
push dword [edi + 0x14]
push edx
call fcn.0041e5c0
mov dword [ebx + 0xac], eax
push dword [esi + 0x30]
push dword [edi + 0x14]
push eax
call fcn.0041e8f0
add esp, 0x18
test eax, eax
jl 0x414f1f
mov dword [esi + 0x60], eax
jmp 0x414f2b
mov dword [esi + 0x60], 1
mov eax, 1
mov edx, dword [ebx + 0xb0]
test edx, edx
je 0x414f64
push dword [esi + 0x30]
push dword [edi + 0x14]
push edx
call fcn.0041e5c0
mov dword [ebx + 0xb0], eax
push dword [esi + 0x30]
push dword [edi + 0x14]
push eax
call fcn.0041e8f0
add esp, 0x18
test eax, eax
jl 0x4158cf
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x60]
mov edx, dword [edi + 0x14]
shl edx, 6
mov ecx, dword [edx + eax*4 + 0x48c8e0]
mov dword [ebx + 0xac], ecx
mov eax, dword [edi + 0x14]
shl eax, 6
mov edx, dword [esi + 0x64]
mov ecx, dword [eax + edx*4 + 0x48c8e0]
mov dword [ebx + 0xb0], ecx
mov eax, dword [edi + 0x14]
shl eax, 6
mov edx, dword [esi + 0x64]
mov ecx, dword [eax + edx*4 + 0x48c8e0]
mov eax, dword [ebx + 0xa8]
cmp ecx, eax
cmovl eax, ecx
mov dword [ebx + 0xa8], eax
mov edx, dword [edi + 0x14]
shl edx, 6
mov ecx, dword [esi + 0x60]
mov edx, dword [edx + ecx*4 + 0x48c8e0]
cmp edx, eax
cmovge eax, edx
mov dword [ebx + 0xa8], eax
mov eax, dword [ebx + 0x98]
mov dword [esi + 0x54], eax
mov edx, dword [ebx + 0x24]
mov dword [esi + 0x8c], edx
mov ecx, dword [ebx + 0x50]
mov dword [edi + 0x14c68], ecx
mov eax, dword [ebx + 0x54]
mov dword [esi + 0xc], eax
mov edx, dword [ebx + 0x58]
mov dword [esi + 0x10], edx
mov ecx, dword [ebx + 0x5c]
mov dword [esi + 0x14], ecx
mov eax, dword [ebx + 0x60]
mov dword [esi + 0x68], eax
mov edx, dword [ebx + 0xa8]
mov dword [esi + 0x5c], edx
mov ecx, dword [ebx + 0x64]
mov dword [esi + 0xe4], ecx
mov eax, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x120]
cmp eax, 8
ja 0x415212
movzx eax, word [eax*2 + 0x4897c8]
add eax, 0x41502f
jmp eax
xor eax, eax
mov dword [edx + 0x20], eax
mov dword [edx + 0x2c], eax
mov dword [edx + 0x30], eax
mov dword [edx + 0x28], eax
mov dword [edx + 0x34], eax
mov eax, dword [ebx + 0xe8]
test eax, eax
jl 0x415237
mov edx, dword [edi + 0x14f28]
mov dword [edx], eax
jmp 0x415243
mov eax, dword [edi + 0x14f28]
mov dword [eax], 3
pxor xmm1, xmm1
cvtss2sd xmm1, dword [ebx + 0xec]
divsd xmm1, qword [0x489738]
movsd xmm0, qword [0x489690]
call fcn.00445ec0
cvtsd2ss xmm0, xmm0
mov eax, dword [edi + 0x14f28]
movss dword [eax + 4], xmm0
mov eax, dword [ebx + 0xf0]
cmp eax, 0xffffffff
je 0x4158be
test eax, eax
jne 0x4152a1
test dword [esi + 0xa4], 0xfffffffe
jne 0x4152a1
mov dword [ebx + 0xf0], 1
mov eax, 1
push ebx
mov dword [esi + 0xa8], eax
call fcn.00416100
add esp, 4
test eax, eax
jl 0x4158ae
push ebx
call fcn.00416150
add esp, 4
test eax, eax
jl 0x41589e
push ebx
call fcn.00416dd0
fstp dword [esp + 0x14]
movss xmm1, dword [esp + 0x14]
add esp, 4
pxor xmm0, xmm0
comiss xmm0, xmm1
jbe 0x4152f7
mov dword [esp], ebx
pxor xmm0, xmm0
movsd qword [esp + 4], xmm0
call fcn.00416da0
push ebx
call fcn.00416200
or eax, 1
push eax
push ebx
call fcn.004161d0
add esp, 0xc
cmp dword [ebx + 0xdc], 0
jge 0x41531d
mov dword [ebx + 0xdc], 4
pxor xmm0, xmm0
comiss xmm0, dword [ebx + 0xe0]
jbe 0x415334
mov dword [ebx + 0xe0], 0x40800000
cmp dword [ebx + 0xf4], 0
pxor xmm0, xmm0
maxss xmm0, dword [ebx + 0xf8]
movss dword [ebx + 0xf8], xmm0
jge 0x41535b
mov dword [ebx + 0xf4], 1
movss dword [esi + 0xac], xmm0
mov eax, dword [ebx + 0xfc]
pxor xmm2, xmm2
mov dword [esi + 0xb0], eax
movss xmm1, dword [0x489778]
movss xmm0, dword [0x489774]
subss xmm2, dword [ebx + 0xe4]
mulss xmm1, xmm2
movss dword [esi + 0xb4], xmm2
call fcn.004472f0
movss dword [esi + 0xb8], xmm0
mov eax, dword [ebx + 0xe0]
mov dword [esi + 0xbc], eax
mov edx, dword [ebx + 0xdc]
mov dword [esi + 0xc0], edx
mov ecx, dword [ebx + 0xd0]
mov dword [esi + 0xc4], ecx
mov eax, dword [ebx + 0xd4]
mov dword [esi + 0xc8], eax
mov edx, dword [ebx + 0xd8]
mov dword [esi + 0xcc], edx
mov ecx, dword [ebx + 0x84]
mov dword [esi + 0x44], ecx
mov eax, dword [ebx + 0x88]
mov dword [esi + 0x48], eax
mov edx, dword [ebx + 0xf4]
mov dword [esi + 0x4c], edx
cmp dword [esi + 0xa4], 1
je 0x41540d
mov dword [esi + 0x50], 0
jmp 0x415419
mov eax, dword [ebx + 0x94]
and eax, 2
mov dword [esi + 0x50], eax
mov eax, dword [ebx + 0x94]
pxor xmm2, xmm2
shr eax, 2
pxor xmm4, xmm4
and eax, 0x3f
pxor xmm6, xmm6
cvtsi2ss xmm2, eax
movss xmm1, dword [0x48977c]
movaps xmm3, xmm2
comiss xmm2, xmm1
subss xmm3, dword [0x489780]
jae 0x415450
movaps xmm3, xmm2
movss xmm0, dword [0x489784]
pxor xmm7, xmm7
mulss xmm3, xmm0
movss dword [esi + 0xd8], xmm3
movzx edx, byte [ebx + 0x95]
and edx, 0x3f
cvtsi2ss xmm4, edx
comiss xmm4, xmm1
movaps xmm5, xmm4
subss xmm5, dword [0x489788]
jae 0x415489
movaps xmm5, xmm4
mulss xmm5, xmm0
movss dword [esi + 0xd4], xmm5
mov ecx, dword [ebx + 0x94]
shr ecx, 0xe
and ecx, 0x3f
cvtsi2ss xmm6, ecx
comiss xmm6, xmm1
movaps xmm2, xmm6
subss xmm2, dword [0x489788]
jae 0x4154b8
movaps xmm2, xmm6
mulss xmm2, xmm0
movss dword [esi + 0xdc], xmm2
mov eax, dword [ebx + 0x94]
shr eax, 0x14
and eax, 0x3f
cvtsi2ss xmm7, eax
comiss xmm7, xmm1
movaps xmm6, xmm7
subss xmm6, dword [0x489788]
jae 0x4154e7
movaps xmm6, xmm7
mulss xmm6, xmm0
addss xmm2, xmm6
movss dword [esi + 0xe0], xmm2
movups xmm1, xmmword [0x489520]
movss xmm3, dword [0x489524]
movss xmm4, dword [0x48952c]
movss xmm2, dword [ebx + 0x14]
movaps xmm0, xmm1
unpckhps xmm1, xmm1
mulss xmm0, xmm2
mulss xmm3, xmm2
mulss xmm1, xmm2
mulss xmm4, xmm2
movss xmm5, dword [ebx + 0x18]
mulss xmm0, xmm5
mulss xmm5, xmm3
movss xmm3, dword [ebx + 0x1c]
mulss xmm1, xmm3
mulss xmm3, xmm4
cmp dword [esi + 0x34], 2
je 0x415870
movss dword [edi + 0x10c], xmm0
movss dword [edi + 0x110], xmm5
movss dword [edi + 0x114], xmm1
movss dword [edi + 0x118], xmm3
cmp dword [esi + 0x58], 0
jne 0x415595
imul eax, dword [edi + 0x14], 0x11940
add eax, 0x11940
imul eax, dword [esi + 0x68]
cdq
idiv dword [esi + 0x30]
mov dword [edi + 0x9b98], edx
mov dword [edi + 0x9b9c], edx
jmp 0x4155a3
xor eax, eax
mov dword [edi + 0x9b9c], eax
mov dword [edi + 0x9b98], eax
cmp dword [ebx], 0xfff88e3b
jne 0x415655
mov edx, dword [ebx + 0x120]
test edx, edx
je 0x415655
mov dword [edx + 0x14b0c], 0
cmp dword [ebx + 0x44], 0
je 0x4155de
push ebx
mov dword [esp + 0x14], edx
call fcn.0041a3e0
mov edx, dword [esp + 0x14]
add esp, 4
mov eax, 0x140
pxor xmm0, xmm0
movdqu xmmword [edx + eax + 0x14838], xmm0
movdqu xmmword [edx + eax + 0x14828], xmm0
movdqu xmmword [edx + eax + 0x14818], xmm0
movdqu xmmword [edx + eax + 0x14808], xmm0
sub eax, 0x40
jne 0x4155e7
mov eax, 0x180
movdqu xmmword [edx + eax + 0x14978], xmm0
movdqu xmmword [edx + eax + 0x14968], xmm0
movdqu xmmword [edx + eax + 0x14958], xmm0
movdqu xmmword [edx + eax + 0x14948], xmm0
sub eax, 0x40
jne 0x415615
mov dword [edx + 0x14eb4], 0
cmp dword [edx + 0xa0], 0
jne 0x415862
push edi
call fcn.0042af80
push ebx
call fcn.00430cc0
push dword [ebx + 0x7c]
push esi
call fcn.0041ff60
add esp, 0x10
mov dword [esi + 0x84], eax
mov edx, dword [ebx + 0x3c]
mov dword [esi + 0x70], edx
mov eax, dword [ebx + 0x40]
mov dword [esi + 0x78], eax
test eax, eax
je 0x41569e
mov dword [esi + 0x74], 1
test edx, edx
jne 0x415831
cmp dword [ebx + 0x28], 0
je 0x4157dd
jmp 0x4156a6
test edx, edx
jne 0x415831
mov dword [edi + 4], 1
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x108], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x415734
xor eax, eax
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x108], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x415734
mov eax, 0xffffffff
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x108], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x415734
mov eax, 0xffffffff
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.00466f40
movss xmm3, dword [esp + ecx + 0x3c]
pxor xmm4, xmm4
movss xmm1, dword [esp + ecx + 0x34]
movss xmm2, dword [esp + ecx + 0x40]
subss xmm0, xmm1
subss xmm2, xmm3
mulss xmm2, xmm0
movss xmm0, dword [esp + ecx + 0x38]
mov edx, dword [esp + ecx + 0x30]
subss xmm0, xmm1
divss xmm2, xmm0
mov ecx, dword [ebx + 0xb8]
addss xmm3, xmm2
cvtss2sd xmm3, xmm3
cvttsd2si eax, xmm3
cvtsi2sd xmm4, eax
mov esi, dword [esp + 0x10]
subsd xmm3, xmm4
cvtsd2ss xmm3, xmm3
mov edi, dword [esp + 0x24]
mov dword [ebx + 0xa4], eax
movss dword [ebx + 0xa0], xmm3
mov dword [ebx + 0x10], edx
test ecx, ecx
jne 0x413ea5
mov dword [ebx + 0xb8], 0xffffffff
mov ecx, 0xffffffff
jmp 0x413ea5
mov eax, dword [esi + 0x58]
test eax, eax
je 0x4157d0
cmp eax, 3
jne 0x413e9b
mulsd xmm2, qword [0x489708]
jmp 0x413e9b
mov eax, dword [edi + 0x14f34]
test eax, eax
je 0x4157f0
push eax
call fcn.00417760
add esp, 4
call fcn.00417780
mov dword [edi + 0x14f34], eax
push dword [ebx + 0x118]
push eax
call fcn.00417740
push dword [ebx + 0x114]
push dword [edi + 0x14f34]
call fcn.00417700
push dword [ebx + 0x110]
push dword [edi + 0x14f34]
call fcn.00417720
add esp, 0x18
jmp 0x4156a6
push dword [esi + 0x30]
push dword [edi + 0x14eac]
call fcn.00426f60
add esp, 8
test eax, eax
jne 0x415852
mov dword [esi + 0x70], 0
mov eax, dword [esi + 0x78]
jmp 0x415855
mov eax, dword [esi + 0x78]
test eax, eax
jne 0x415692
jmp 0x4156a6
push ebx
call fcn.0041d750
add esp, 4
jmp 0x415655
cmp dword [esi + 0x38], 1
jne 0x41554d
movss xmm2, dword [0x48978c]
addss xmm0, xmm1
addss xmm5, xmm3
mulss xmm0, xmm2
mulss xmm5, xmm2
pxor xmm1, xmm1
movaps xmm3, xmm1
jmp 0x41554d
push 0
push ebx
call fcn.00416120
add esp, 8
jmp 0x4152c9
push 1
push ebx
call fcn.004160d0
add esp, 8
jmp 0x4152b8
mov dword [ebx + 0xf0], 0
xor eax, eax
jmp 0x415286
cmp dword [esi + 0x30], 0x3e80
jge 0x4158e7
mov dword [esi + 0x64], 8
mov eax, dword [esi + 0x60]
jmp 0x414f64
mov dword [esi + 0x64], 0xe
mov eax, dword [esi + 0x60]
jmp 0x414f64
mov dword [esp + 0x18], 0
jmp 0x414ce8
mov ecx, 0x15
mov eax, 0x24
cmp edx, 1
cmove eax, ecx
jmp 0x414c1b
pxor xmm2, xmm2
cvtsi2sd xmm2, edx
addsd xmm2, qword [0x489710]
divsd xmm2, qword [0x489718]
cvtsd2ss xmm2, xmm2
movss dword [esi + 0xf4], xmm2
jmp 0x414739
pxor xmm3, xmm3
cvtsi2sd xmm3, edx
subsd xmm3, xmm1
divsd xmm3, xmm4
cvtsd2ss xmm3, xmm3
jmp 0x414508
mov dword [esi + 0xf0], 0
pxor xmm0, xmm0
mov dword [esi + 0xf4], 0
movaps xmm2, xmm0
jmp 0x4142aa
mov dword [ebx + 0x30], 3
jmp 0x413935
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x108], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x415734
jmp 0x41372c
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x108], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x415734
jmp 0x41372c