Function at 0x4218b0
Capabilities:
Check http status code
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [esp - 0x60]
sub esp, 0x124
push ebx
push esi
push edi
xorps xmm0, xmm0
mov ebx, dword [ebp + 0x68]
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 4]
mov dword [ebp + 0x58], eax
xor eax, eax
mov esi, dword [ebx]
mov dword [ebp - 0x80], eax
mov ecx, dword [esi + 8]
mov dword [ebp + 0x38], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x90], eax
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x20]
mov dword [ebp + 0x30], ecx
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x68], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp + 0x68], ecx
xor ecx, ecx
test eax, eax
setne cl
cmp dword [ebp + 0x78], 2
mov edi, dword [esi + 4]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x74], 0xf
movss dword [ebp - 0x84], xmm0
movss dword [ebp - 0x64], xmm0
movss dword [ebp - 0x78], xmm0
movss dword [ebp - 0x34], xmm0
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], eax
mov dword [ebp - 8], ecx
movss dword [ebp - 0x5c], xmm0
jl 0x424252
cmp dword [ebp + 0x6c], 0
je 0x424252
mov eax, dword [ebx + 0x1c]
imul eax, dword [ebp + 0x70]
xor ecx, ecx
mov dword [ebp + 0x70], eax
mov dword [ebp + 0x54], ecx
cmp ecx, dword [esi + 0x24]
jg 0x424252
mov eax, dword [esi + 0x2c]
shl eax, cl
mov ecx, dword [ebp + 0x54]
cmp eax, dword [ebp + 0x70]
je 0x421976
inc ecx
mov dword [ebp + 0x54], ecx
cmp ecx, dword [esi + 0x24]
jle 0x421960
cmp ecx, dword [esi + 0x24]
jg 0x424252
mov ecx, dword [ebp + 0x54]
mov eax, 1
shl eax, cl
mov ecx, dword [esi + 0x2c]
imul ecx, eax
mov dword [ebp - 0x20], ecx
mov ecx, edi
imul ecx, edx
mov dword [ebp - 0x18], eax
lea eax, [ebx + ecx*4 + 0xf4]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x30]
imul eax, edx
add edi, 0x400
imul edi, edx
mov dword [ebp - 0x88], eax
add eax, eax
add eax, eax
lea ecx, [ebx + edi*4 + 0xf4]
mov dword [ebp + 0x14], ecx
add ecx, eax
mov dword [ebp - 0x60], ecx
add ecx, eax
mov dword [ebp - 0x38], eax
add eax, ecx
cmp dword [ebp + 0x7c], 0
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x50], eax
jne 0x4219f3
mov edx, 1
mov dword [ebp + 0x5c], edx
mov dword [ebp - 0x6c], edx
mov dword [ebp + 0x2c], 0
jmp 0x421a1e
mov edi, dword [ebp + 0x7c]
push edi
call fcn.00435590
bsr ecx, dword [edi + 0x1c]
mov dword [ebp - 0x6c], eax
mov eax, dword [edi + 0x14]
sub eax, ecx
dec eax
mov dword [ebp + 0x5c], eax
mov edx, dword [ebp + 0x5c]
add eax, 4
add esp, 4
sar eax, 3
mov dword [ebp - 0x30], ecx
mov dword [ebp + 0x2c], eax
mov ecx, dword [ebp + 0x78]
cmp ecx, 0x4fb
jl 0x421a31
mov ecx, 0x4fb
mov dword [ebp + 0x78], ecx
mov eax, ecx
sub eax, dword [ebp + 0x2c]
cmp dword [ebx + 0x2c], 0
mov dword [ebp - 0x2c], eax
je 0x421a66
mov edi, dword [ebx + 0x28]
cmp edi, 0xffffffff
je 0x421a66
mov ecx, dword [esi]
mov eax, edi
imul eax, dword [ebp + 0x70]
sar ecx, 3
mov edx, ecx
sar edx, 1
add eax, edx
cdq
idiv ecx
mov dword [ebp - 0x1c], eax
sar eax, 6
mov dword [ebp - 0x24], eax
jmp 0x421ac0
mov edi, dword [ebx + 0x28]
mov eax, edi
imul eax, dword [ebp + 0x70]
mov dword [ebp - 0x1c], 0
cmp edx, 1
jle 0x421a7d
add eax, edx
cmp edi, 0xffffffff
je 0x421aba
mov ecx, dword [esi]
lea eax, [eax + ecx*4]
add ecx, ecx
add ecx, ecx
add ecx, ecx
cdq
idiv ecx
mov ecx, dword [ebp + 0x78]
xor edx, edx
cmp dword [ebx + 0x30], edx
setne dl
sub eax, edx
mov edx, ecx
cmp ecx, eax
jl 0x421aa5
mov edx, eax
cmp edx, 2
jge 0x421ab1
mov ecx, 2
jmp 0x421ab7
cmp ecx, eax
jl 0x421aba
mov ecx, eax
mov dword [ebp + 0x78], ecx
sub ecx, dword [ebp + 0x2c]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp + 0x54]
mov ecx, edx
mov eax, 0x190
sar eax, cl
mov ecx, dword [ebp + 0x58]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx*8 + 0x14]
sub eax, 0x32
imul eax, ecx
mov ecx, 3
sub ecx, edx
mov edx, dword [ebp + 0x78]
imul edx, edx, 0x190
sar edx, cl
mov dword [ebp - 4], ecx
sub edx, eax
mov dword [ebp - 0x58], edx
cmp edi, 0xffffffff
je 0x421b07
sub edi, eax
cmp edx, edi
jl 0x421b07
mov dword [ebp - 0x58], edi
cmp dword [ebp + 0x7c], 0
jne 0x421b2d
mov edx, dword [ebp + 0x78]
mov eax, dword [ebp + 0x74]
push edx
push eax
lea ecx, [ebp - 0xc4]
push ecx
call fcn.004249a0
lea edx, [ebp - 0xc4]
add esp, 0xc
mov dword [ebp + 0x7c], edx
cmp dword [ebp - 0x1c], 0
jle 0x421b86
cmp dword [ebx + 0x34], 0
je 0x421b86
mov eax, dword [ebp - 0x1c]
lea ecx, [eax + eax]
sub ecx, dword [ebx + 0xd0]
mov eax, dword [ebp + 0x5c]
dec eax
sar ecx, 6
neg eax
sbb eax, eax
and eax, 0xfffffffe
add eax, 2
mov edx, eax
cmp eax, ecx
jg 0x421b5e
mov edx, ecx
cmp edx, dword [ebp - 0x2c]
jge 0x421b86
cmp eax, ecx
jg 0x421b69
mov eax, ecx
cmp eax, dword [ebp - 0x2c]
jge 0x421b86
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x7c]
add ecx, eax
push ecx
push edx
mov dword [ebp + 0x78], ecx
mov dword [ebp - 0x2c], eax
call fcn.00424c20
add esp, 8
mov eax, dword [ebp + 0x78]
mov esi, dword [esi + 0xc]
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0x10], eax
cmp eax, esi
jle 0x421ba2
mov dword [ebp + 0x10], esi
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp + 0x44]
lea eax, [esi + edi]
mov dword [ebp + 0x28], eax
imul eax, dword [ebp - 0x10]
add eax, eax
add eax, eax
call fcn.00426570
mov eax, esi
sub eax, edi
imul eax, dword [ebp + 0x58]
cdq
idiv dword [ebx + 0x1c]
mov edi, dword [ebp + 0x6c]
movss xmm5, dword [ebx + 0xe0]
mov dword [ebp + 4], esp
mov esi, eax
call fcn.0041c900
xorps xmm2, xmm2
cvtps2pd xmm1, xmm5
cvtss2sd xmm2, xmm0
comisd xmm1, xmm2
ja 0x421bef
movaps xmm5, xmm0
mov eax, dword [ebp + 0x44]
imul eax, dword [ebp + 0x58]
cdq
idiv dword [ebx + 0x1c]
mov ecx, edi
lea edi, [ecx + esi*4]
movss dword [ebp + 0x34], xmm5
mov esi, eax
call fcn.0041c900
xorps xmm2, xmm2
cvtps2pd xmm1, xmm5
cvtss2sd xmm2, xmm0
comisd xmm1, xmm2
movss dword [ebx + 0xe0], xmm0
ja 0x421c2b
movaps xmm5, xmm0
movss dword [ebp + 0x34], xmm5
mov ecx, dword [ebx + 0x3c]
movsd xmm2, qword [0x451328]
mov edx, 1
shl edx, cl
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtps2pd xmm0, xmm5
cvtsi2ss xmm1, edx
cvtps2pd xmm1, xmm1
divsd xmm2, xmm1
comisd xmm2, xmm0
jb 0x421c5e
mov esi, 1
jmp 0x421c60
xor esi, esi
cmp dword [ebp + 0x5c], 1
mov dword [ebp - 0x54], esi
jne 0x421d1b
mov edi, dword [ebp + 0x7c]
push 0xf
push esi
push edi
call fcn.00424a90
add esp, 0xc
test esi, esi
je 0x421cd0
cmp dword [ebp - 0x1c], 0
mov esi, dword [ebp + 0x78]
jle 0x421cb6
mov eax, dword [ebp + 0x2c]
add eax, 2
cmp esi, eax
jl 0x421c98
mov esi, eax
mov dword [ebp + 0x78], esi
lea eax, [esi*8]
push esi
push edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x2c], 2
call fcn.00424c20
add esp, 8
add esi, esi
add esi, esi
bsr ecx, dword [edi + 0x1c]
lea eax, [esi + esi]
mov edx, ecx
mov dword [ebp + 0x5c], eax
lea eax, [edx + eax + 1]
mov dword [ebp - 0x30], ecx
mov dword [edi + 0x14], eax
mov ecx, dword [ebp + 0x40]
mov eax, dword [ebp + 0x28]
mov edx, dword [ebp + 0x6c]
xor esi, esi
add ecx, 0x10
mov dword [ebp - 0x30], ecx
lea ecx, [eax*4]
mov eax, dword [ebp + 4]
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x24], ecx
mov ecx, dword [ebp + 0x44]
lea edx, [ebx + 0xc0]
mov dword [ebp + 0x4c], edx
lea edi, [eax + ecx*4]
cmp dword [ebx + 0x10], 0
je 0x421d24
movss xmm0, dword [ebp + 0x34]
comiss xmm0, dword [0x451f18]
jbe 0x421d24
mov eax, 1
jmp 0x421d26
mov dword [ebp - 0x54], 0
jmp 0x421cd0
xor eax, eax
mov edx, dword [ebp + 0x4c]
mov ecx, dword [ebx + 0x1c]
push eax
mov eax, dword [ebp - 0x30]
push edx
mov edx, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, dword [ebp + 0x2c]
push edx
push eax
push edi
push ecx
call fcn.0041dcc0
add edi, dword [ebp + 0x24]
mov eax, 4
add dword [ebp + 0x4c], eax
add dword [ebp + 0x2c], eax
inc esi
add esp, 0x20
cmp esi, dword [ebp - 0x10]
jl 0x421d00
cmp dword [ebx + 0x40], 0
mov esi, dword [ebp - 0x2c]
je 0x421d6a
cmp esi, 3
jg 0x421d78
mov eax, dword [ebp + 0x58]
lea edx, [eax + eax*2]
add edx, edx
add edx, edx
cmp esi, edx
jle 0x421d97
cmp dword [ebp - 8], 0
jne 0x421d97
cmp dword [ebp - 0x54], 0
jne 0x421d97
cmp dword [ebx + 0x14], 0
jne 0x421d97
cmp dword [ebx + 0x18], 5
jl 0x421d97
mov edx, 1
jmp 0x421d99
xor edx, edx
mov eax, dword [ebx + 0x64]
lea ecx, [ebx + 0x78]
push ecx
push esi
push edx
lea ecx, [ebp + 0x3c]
push ecx
lea edx, [ebp - 0x84]
push edx
mov edx, dword [ebp - 0x20]
lea ecx, [ebp - 0x74]
push ecx
mov ecx, dword [ebp + 0x3c]
push eax
push edx
mov edx, dword [ebp + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x10]
push eax
push ecx
push edx
mov esi, ebx
call fcn.00421050
movss xmm1, dword [ebp - 0x84]
movsd xmm0, qword [0x451fd0]
mov edi, dword [ebp - 0x74]
add esp, 0x2c
cvtps2pd xmm1, xmm1
comisd xmm1, xmm0
mov dword [ebp - 0x8c], eax
ja 0x421dff
movss xmm1, dword [ebx + 0x6c]
cvtps2pd xmm1, xmm1
comisd xmm1, xmm0
jbe 0x421e4e
cmp dword [ebx + 0x78], 0
je 0x421e17
movss xmm0, dword [ebx + 0x7c]
cvtps2pd xmm0, xmm0
comisd xmm0, xmmword [0x452090]
jbe 0x421e4e
movd xmm0, dword [ebx + 0x68]
cvtdq2pd xmm0, xmm0
xorps xmm1, xmm1
movapd xmm2, xmm0
mulsd xmm2, qword [0x452088]
cvtsi2sd xmm1, edi
comisd xmm1, xmm2
ja 0x421e47
mulsd xmm0, qword [0x452080]
comisd xmm0, xmm1
jbe 0x421e4e
mov dword [ebp - 0x70], 1
test eax, eax
jne 0x421e78
cmp dword [ebp - 8], eax
jne 0x421edc
mov eax, dword [ebp + 0x5c]
add eax, 0x10
cmp eax, dword [ebp - 0xc]
jg 0x421edc
mov ecx, dword [ebp + 0x7c]
push 1
push 0
push ecx
call fcn.00424a90
add esp, 0xc
jmp 0x421edc
mov edx, dword [ebp + 0x7c]
push 1
push 1
push edx
call fcn.00424a90
mov ecx, dword [ebp + 0x7c]
inc edi
bsr eax, edi
mov esi, eax
push 6
add esi, 0xfffffffc
push esi
push ecx
mov dword [ebp + 0x24], eax
call fcn.00424d90
mov ecx, esi
mov eax, 0x10
shl eax, cl
lea edx, [esi + 4]
mov esi, dword [ebp + 0x7c]
push edx
mov ecx, edi
sub ecx, eax
push ecx
push esi
call fcn.00424b20
mov edx, dword [ebp + 0x3c]
push 3
push edx
dec edi
push esi
mov dword [ebp - 0x74], edi
call fcn.00424b20
mov eax, dword [ebp - 0x30]
push 2
push 0x451d98
push eax
push esi
call fcn.00424ac0
add esp, 0x40
xor eax, eax
xor edi, edi
mov esi, 1
mov dword [ebp + 8], eax
mov dword [ebp + 0x2c], edi
cmp dword [ebx + 0x18], esi
jl 0x421f33
cmp dword [ebx + 0x40], eax
jne 0x421f33
cmp dword [ebp - 8], eax
je 0x421f0d
cmp dword [ebp - 0x24], 0xf
jge 0x421f0d
cmp dword [ebx + 0xb8], 2
je 0x421f0d
mov eax, esi
jmp 0x421f0f
xor eax, eax
lea ecx, [ebp + 0xc]
push ecx
mov ecx, dword [ebp - 0x10]
push eax
lea edx, [ebp + 0x38]
push edx
mov edx, dword [ebp + 0x28]
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp + 4]
push ecx
push edx
push eax
call fcn.0041ca30
add esp, 0x1c
mov dword [ebp + 8], eax
cmp dword [ebp + 0x54], edi
jle 0x421f5b
mov ecx, dword [ebp + 0x7c]
bsr edx, dword [ecx + 0x1c]
mov ecx, dword [ecx + 0x14]
sub ecx, edx
add ecx, 2
mov dword [ebp + 0x24], edx
cmp ecx, dword [ebp - 0xc]
jg 0x421f5b
test eax, eax
je 0x421f64
mov edi, dword [ebp - 0x18]
mov dword [ebp + 0x2c], edi
jmp 0x421f64
mov dword [ebp + 8], edi
mov dword [ebp - 0x90], esi
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x10]
add eax, eax
add eax, eax
call fcn.00426570
mov esi, dword [ebp - 0x38]
mov eax, esi
mov dword [ebp + 0x18], esp
call fcn.00426570
mov eax, esi
mov dword [ebp - 0x28], esp
call fcn.00426570
mov dword [ebp + 0x20], esp
test edi, edi
je 0x421f9f
cmp dword [ebx + 0x18], 8
mov dword [ebp + 0x28], 1
jge 0x421fa6
mov dword [ebp + 0x28], 0
mov esi, dword [ebp + 0x30]
mov edi, dword [ebp + 0x58]
imul esi, edi
lea eax, [esi*4]
mov dword [ebp - 0x48], esi
call fcn.00426570
cmp dword [ebp + 0x28], 0
mov dword [ebp - 0x14], esp
je 0x4220ed
mov edx, dword [ebx + 0x48]
mov eax, dword [ebx + 0x1c]
mov ecx, dword [ebp - 0x10]
push edx
mov edx, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 4]
push ecx
mov ecx, dword [ebp + 0x40]
push edi
push edx
push eax
push 0
push ecx
mov ecx, dword [ebp + 0x54]
call fcn.0041d980
mov edx, dword [ebx + 0x48]
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp - 0x28]
push eax
mov eax, dword [ebp + 0x18]
push edi
push ecx
mov ecx, dword [ebp + 0x40]
push edx
push eax
push ecx
call fcn.00428950
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 0x68]
push edi
push edx
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0x40]
push ecx
push edx
push eax
call fcn.0042f9d0
add esp, 0x54
xor ecx, ecx
cmp esi, 4
jl 0x4220b8
mov eax, dword [ebp - 0x14]
movd xmm0, dword [ebp + 0x54]
lea edx, [esi - 4]
shr edx, 2
cvtdq2ps xmm0, xmm0
add eax, 8
inc edx
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x451450]
lea ecx, [edx*4]
lea esp, [esp]
movss xmm1, dword [eax - 8]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [eax - 8], xmm1
movss xmm1, dword [eax - 4]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [eax - 4], xmm1
movss xmm1, dword [eax]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [eax], xmm1
movss xmm1, dword [eax + 4]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [eax + 4], xmm1
add eax, 0x10
dec edx
jne 0x422060
cmp ecx, esi
jge 0x4220ed
movd xmm0, dword [ebp + 0x54]
mov eax, dword [ebp - 0x14]
cvtdq2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x451450]
movss xmm1, dword [eax + ecx*4]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [eax + ecx*4], xmm1
inc ecx
cmp ecx, esi
jl 0x4220d3
mov ecx, dword [ebx + 0x48]
mov edx, dword [ebx + 0x1c]
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 4]
push edx
mov edx, dword [ebp + 0x2c]
push esi
push edi
push eax
mov eax, dword [ebp + 0x40]
push ecx
mov ecx, dword [ebp + 0x54]
push edx
push eax
call fcn.0041d980
add esp, 0x20
cmp esi, 2
jne 0x422126
cmp edi, 1
jne 0x422126
mov dword [ebp + 0x38], 0
mov ecx, dword [ebx + 0x48]
mov edx, dword [ebp + 0x54]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 0x28]
push ecx
mov ecx, dword [ebp + 0x18]
push edx
mov edx, dword [ebp + 0x40]
push edi
push eax
push esi
push ecx
push edx
call fcn.00428950
add esp, 0x1c
cmp dword [ebx + 0x40], 0
je 0x4222bd
mov edx, dword [ebp + 0x68]
mov ecx, 2
cmp edx, ecx
jle 0x4222bd
movsd xmm3, qword [0x452078]
movss xmm2, dword [0x451f90]
lea eax, [edx - 2]
cmp eax, 4
jl 0x422271
add edx, 0xfffffffa
shr edx, 2
inc edx
lea eax, [esi + 0x10]
lea ecx, [edx*4 + 2]
mov edi, edi
movss xmm0, dword [esi]
movss xmm1, dword [eax - 8]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm3
cvtps2pd xmm4, xmm1
comisd xmm0, xmm4
jbe 0x4221af
xorps xmm0, xmm0
cvtps2pd xmm0, xmm1
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm2
movss dword [eax - 8], xmm0
ja 0x4221c0
movaps xmm0, xmm2
movss xmm1, dword [eax - 4]
movss dword [eax - 8], xmm0
movss xmm0, dword [esi]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm3
cvtps2pd xmm4, xmm1
comisd xmm0, xmm4
jbe 0x4221e4
xorps xmm0, xmm0
cvtps2pd xmm0, xmm1
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm2
movss dword [eax - 4], xmm0
ja 0x4221f5
movaps xmm0, xmm2
movss xmm1, dword [eax]
movss dword [eax - 4], xmm0
movss xmm0, dword [esi]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm3
cvtps2pd xmm4, xmm1
comisd xmm0, xmm4
jbe 0x422218
xorps xmm0, xmm0
cvtps2pd xmm0, xmm1
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm2
movss dword [eax], xmm0
ja 0x422228
movaps xmm0, xmm2
movss xmm1, dword [eax + 4]
movss dword [eax], xmm0
movss xmm0, dword [esi]
cvtps2pd xmm0, xmm0
xorps xmm4, xmm4
mulsd xmm0, xmm3
cvtps2pd xmm4, xmm1
comisd xmm0, xmm4
jbe 0x42224e
xorps xmm0, xmm0
cvtps2pd xmm0, xmm1
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm2
movss dword [eax + 4], xmm0
ja 0x42225f
movaps xmm0, xmm2
movss dword [eax + 4], xmm0
add eax, 0x10
dec edx
jne 0x422190
mov edx, dword [ebp + 0x68]
cmp ecx, edx
jge 0x4222bd
jmp 0x422280
movss xmm0, dword [esi]
movss xmm1, dword [esi + ecx*4]
cvtps2pd xmm0, xmm0
xorps xmm4, xmm4
mulsd xmm0, xmm3
cvtps2pd xmm4, xmm1
comisd xmm0, xmm4
jbe 0x4222a2
xorps xmm0, xmm0
cvtps2pd xmm0, xmm1
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm2
movss dword [esi + ecx*4], xmm0
ja 0x4222b3
movaps xmm0, xmm2
movss dword [esi + ecx*4], xmm0
inc ecx
cmp ecx, edx
jl 0x422280
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 0x68]
push edi
push ecx
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp + 0x40]
push eax
push ecx
push edx
call fcn.0042f9d0
mov eax, dword [ebp - 0x48]
add eax, eax
add esp, 0x18
add eax, eax
call fcn.00426570
mov eax, dword [ebp + 0x68]
add eax, eax
mov esi, esp
add eax, eax
push eax
push 0
push esi
mov dword [ebp], esi
call sub.MSVCR80.DLL_memset
xorps xmm7, xmm7
add esp, 0xc
cmp dword [ebp - 8], 0
jne 0x422b5c
mov ecx, dword [ebx + 0xec]
xor edx, edx
cmp ecx, edx
je 0x422b5c
cmp dword [ebx + 0x40], edx
jne 0x422b5c
mov eax, dword [ebx + 0x5c]
xorps xmm3, xmm3
movaps xmm1, xmm3
movaps xmm2, xmm3
mov dword [ebp + 0x4c], edx
cmp eax, 2
jge 0x42233d
mov eax, 2
movss xmm5, dword [0x452074]
mov dword [ebp + 0x5c], eax
cmp edi, edx
jle 0x422592
movss xmm4, dword [0x4514c8]
mov dword [ebp - 0x4c], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x3c], edi
xor eax, eax
cmp dword [ebp + 0x5c], 2
mov dword [ebp - 0x40], eax
mov dword [ebp + 0x44], eax
jl 0x4224c1
mov esi, dword [ebp + 0x5c]
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov ecx, 3
sub ecx, esi
add esi, 0xfffffffe
shr esi, 1
add eax, 2
inc esi
mov dword [ebp + 0x34], edx
lea edx, [esi + esi]
mov dword [ebp + 0x50], edx
mov edx, dword [ebp + 0x34]
movss xmm0, dword [edx]
comiss xmm5, xmm0
jbe 0x422435
comiss xmm0, xmm4
jbe 0x42243d
comiss xmm0, xmm3
jbe 0x4223c2
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x451450]
cvtpd2ps xmm0, xmm0
movsx edi, word [eax - 2]
movsx edx, word [eax]
xorps xmm6, xmm6
sub edx, edi
add dword [ebp - 0x40], edx
cvtsi2ss xmm6, edx
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
mulsd xmm6, xmm7
cvtss2sd xmm1, xmm1
addsd xmm6, xmm1
xorps xmm1, xmm1
cvtpd2ps xmm1, xmm6
xorps xmm6, xmm6
lea edx, [ecx - 2]
cvtsi2ss xmm6, edx
mov edx, dword [ebp + 0x34]
cvtss2sd xmm0, xmm0
cvtps2pd xmm6, xmm6
mulsd xmm6, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
addsd xmm6, xmm0
movss xmm0, dword [edx + 4]
comiss xmm5, xmm0
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm6
jbe 0x422430
comiss xmm0, xmm4
jbe 0x422442
comiss xmm5, xmm0
ja 0x422447
movaps xmm0, xmm5
jmp 0x42244c
movaps xmm0, xmm5
jmp 0x4223b3
movaps xmm0, xmm4
jmp 0x4223c2
movaps xmm0, xmm4
jmp 0x42245b
comiss xmm0, xmm3
jbe 0x42245b
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x451450]
cvtpd2ps xmm0, xmm0
movsx edx, word [eax + 2]
movsx edi, word [eax]
add dword [ebp + 0x34], 8
xorps xmm6, xmm6
sub edx, edi
add dword [ebp + 0x44], edx
cvtsi2ss xmm6, edx
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
mulsd xmm6, xmm7
cvtps2pd xmm1, xmm1
addsd xmm6, xmm1
xorps xmm1, xmm1
cvtpd2ps xmm1, xmm6
xorps xmm6, xmm6
cvtsi2ss xmm6, ecx
cvtss2sd xmm0, xmm0
cvtps2pd xmm6, xmm6
mulsd xmm6, xmm0
xorps xmm0, xmm0
cvtps2pd xmm0, xmm2
add eax, 4
add ecx, 4
dec esi
addsd xmm6, xmm0
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm6
jne 0x422395
mov eax, dword [ebp + 0x50]
mov esi, dword [ebp + 0x5c]
cmp eax, esi
jge 0x422567
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebx + 0xec]
add ecx, eax
movss xmm0, dword [edx + ecx*4]
comiss xmm5, xmm0
jbe 0x4224eb
comiss xmm0, xmm4
jbe 0x4224f0
comiss xmm5, xmm0
ja 0x4224f5
movaps xmm0, xmm5
jmp 0x4224fa
movaps xmm0, xmm4
jmp 0x422509
comiss xmm0, xmm3
jbe 0x422509
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x451450]
cvtpd2ps xmm0, xmm0
mov edx, dword [ebp - 0x68]
add eax, eax
movsx ecx, word [eax + edx + 2]
movsx edx, word [eax + edx]
xorps xmm6, xmm6
sub ecx, edx
add dword [ebp + 0x4c], ecx
cvtsi2ss xmm6, ecx
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
mulsd xmm6, xmm7
cvtss2sd xmm1, xmm1
addsd xmm6, xmm1
sub eax, esi
xorps xmm1, xmm1
cvtpd2ps xmm1, xmm6
xorps xmm6, xmm6
inc eax
cvtsi2ss xmm6, eax
cvtss2sd xmm0, xmm0
cvtps2pd xmm6, xmm6
mulsd xmm6, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
addsd xmm6, xmm0
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm6
mov eax, dword [ebp + 0x44]
add eax, dword [ebp - 0x40]
add dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x30]
add dword [ebp - 0x4c], eax
add eax, eax
add eax, eax
add dword [ebp + 0x1c], eax
dec dword [ebp + 0x3c]
jne 0x422361
xorps xmm7, xmm7
mov esi, dword [ebp]
mov eax, dword [ebp + 0x5c]
mov edi, dword [ebp + 0x58]
lea edx, [eax - 1]
lea ecx, [eax + 1]
imul edx, ecx
xorps xmm0, xmm0
imul edx, eax
cvtss2sd xmm0, xmm1
imul edx, edi
movd xmm1, dword [ebp + 0x4c]
cvtdq2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
addsd xmm0, qword [0x4514c0]
xorps xmm1, xmm1
xorps xmm6, xmm6
cvtpd2ps xmm6, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
mulsd xmm0, qword [0x451f38]
movss xmm2, dword [0x452070]
cvtsi2ss xmm1, edx
cvtps2pd xmm1, xmm1
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x451450]
xorps xmm4, xmm4
cvtpd2ps xmm4, xmm0
movsd xmm0, qword [0x452068]
xorps xmm1, xmm1
cvtps2pd xmm1, xmm4
comisd xmm0, xmm1
jbe 0x422624
movaps xmm1, xmm4
jmp 0x422627
movaps xmm1, xmm2
cvtss2sd xmm1, xmm1
comisd xmm1, xmmword [0x452060]
jbe 0x422646
xorps xmm1, xmm1
cvtps2pd xmm1, xmm4
comisd xmm0, xmm1
ja 0x42264e
movaps xmm4, xmm2
jmp 0x42264e
movss xmm4, dword [0x452058]
mov ecx, dword [ebp - 0x68]
movsx eax, word [ecx + eax*2]
cdq
sub eax, edx
movsx edx, word [ecx + 2]
add ecx, 2
sar eax, 1
mov dword [ebp + 0x44], 0
cmp edx, eax
jge 0x42267e
lea esp, [esp]
movsx edx, word [ecx + 2]
inc dword [ebp + 0x44]
add ecx, 2
cmp edx, eax
jl 0x422670
xor eax, eax
cmp dword [ebp + 0x5c], 4
mov dword [ebp + 0x50], eax
jl 0x42292b
mov ecx, dword [ebx + 0xec]
add esi, 0xc
mov dword [ebp + 0x4c], esi
mov esi, dword [ebp + 0x30]
lea esi, [ecx + esi*4]
mov dword [ebp + 0x34], esi
mov esi, dword [ebp]
sub esi, ecx
lea edx, [ecx + 4]
mov ecx, 2
sub ecx, dword [ebp + 0x44]
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x3c], ecx
jmp 0x4226c3
mov ecx, dword [ebp + 0x3c]
add ecx, eax
xorps xmm0, xmm0
lea esi, [ecx - 2]
cvtsi2ss xmm0, esi
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtss2sd xmm1, xmm4
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm6
addsd xmm0, xmm1
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm0
movss xmm0, dword [edx - 4]
cmp edi, 2
jne 0x422718
mov esi, dword [ebp + 0x34]
movss xmm1, dword [esi]
xorps xmm3, xmm3
cvtps2pd xmm3, xmm0
xorps xmm7, xmm7
cvtps2pd xmm7, xmm1
comisd xmm3, xmm7
xorps xmm3, xmm3
ja 0x422718
movaps xmm0, xmm1
comiss xmm3, xmm0
ja 0x422720
movaps xmm0, xmm3
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x42274e
mov esi, dword [ebp + 0x4c]
inc dword [ebp + 0x50]
cvtss2sd xmm0, xmm0
subsd xmm0, qword [0x451d78]
cvtpd2ps xmm0, xmm0
movss dword [esi - 0xc], xmm0
xorps xmm0, xmm0
lea esi, [ecx - 1]
cvtsi2ss xmm0, esi
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtss2sd xmm1, xmm4
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm6
addsd xmm0, xmm1
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm0
movss xmm0, dword [edx]
cmp edi, 2
jne 0x4227a1
mov esi, dword [ebp + 0x34]
movss xmm1, dword [esi + 4]
xorps xmm3, xmm3
cvtps2pd xmm3, xmm0
xorps xmm7, xmm7
cvtps2pd xmm7, xmm1
comisd xmm3, xmm7
xorps xmm3, xmm3
ja 0x4227a1
movaps xmm0, xmm1
comiss xmm3, xmm0
ja 0x4227a9
movaps xmm0, xmm3
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x4227d7
mov esi, dword [ebp + 0x24]
inc dword [ebp + 0x50]
cvtss2sd xmm0, xmm0
subsd xmm0, qword [0x451d78]
cvtpd2ps xmm0, xmm0
movss dword [esi + edx], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtss2sd xmm1, xmm4
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm6
addsd xmm0, xmm1
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm0
movss xmm0, dword [edx + 4]
cmp edi, 2
jne 0x422832
mov ecx, dword [ebp + 0x30]
lea esi, [eax + ecx]
mov ecx, dword [ebx + 0xec]
movss xmm1, dword [ecx + esi*4 + 8]
xorps xmm3, xmm3
cvtps2pd xmm3, xmm0
xorps xmm7, xmm7
cvtps2pd xmm7, xmm1
comisd xmm3, xmm7
xorps xmm3, xmm3
ja 0x422832
movaps xmm0, xmm1
comiss xmm3, xmm0
ja 0x42283a
movaps xmm0, xmm3
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x422868
mov ecx, dword [ebp + 0x4c]
inc dword [ebp + 0x50]
cvtss2sd xmm0, xmm0
subsd xmm0, qword [0x451d78]
cvtpd2ps xmm0, xmm0
movss dword [ecx - 4], xmm0
mov ecx, dword [ebp + 0x3c]
add ecx, eax
xorps xmm0, xmm0
inc ecx
cvtsi2ss xmm0, ecx
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtss2sd xmm1, xmm4
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm6
addsd xmm0, xmm1
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm0
movss xmm0, dword [edx + 8]
cmp edi, 2
jne 0x4228c9
mov ecx, dword [ebp + 0x30]
lea esi, [eax + ecx]
mov ecx, dword [ebx + 0xec]
movss xmm1, dword [ecx + esi*4 + 0xc]
xorps xmm3, xmm3
cvtps2pd xmm3, xmm0
xorps xmm7, xmm7
cvtps2pd xmm7, xmm1
comisd xmm3, xmm7
xorps xmm3, xmm3
ja 0x4228c9
movaps xmm0, xmm1
comiss xmm3, xmm0
ja 0x4228d1
movaps xmm0, xmm3
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm2
subsd xmm0, xmm1
movsd xmm1, qword [0x451d78]
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x422905
mov ecx, dword [ebp + 0x4c]
inc dword [ebp + 0x50]
cvtss2sd xmm0, xmm0
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ecx], xmm0
mov ecx, 0x10
add dword [ebp + 0x34], ecx
add dword [ebp + 0x4c], ecx
add edx, ecx
mov ecx, dword [ebp + 0x5c]
add eax, 4
add ecx, 0xfffffffd
cmp eax, ecx
jl 0x4226c0
xorps xmm7, xmm7
mov esi, dword [ebp]
jmp 0x422933
movsd xmm1, qword [0x451d78]
cmp eax, dword [ebp + 0x5c]
jge 0x422a02
mov ecx, dword [ebx + 0xec]
mov esi, dword [ebp + 0x30]
add esi, eax
lea esi, [ecx + esi*4]
mov dword [ebp + 0x1c], esi
mov esi, dword [ebp]
lea edi, [ecx + eax*4]
sub esi, ecx
mov ecx, dword [ebp + 0x5c]
mov edx, eax
sub edx, dword [ebp + 0x44]
sub ecx, eax
cmp dword [ebp + 0x58], 2
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtss2sd xmm1, xmm4
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm6
addsd xmm0, xmm1
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm0
movss xmm0, dword [edi]
jne 0x4229af
mov eax, dword [ebp + 0x1c]
movss xmm1, dword [eax]
xorps xmm3, xmm3
cvtps2pd xmm3, xmm0
xorps xmm7, xmm7
cvtps2pd xmm7, xmm1
comisd xmm3, xmm7
xorps xmm3, xmm3
ja 0x4229af
movaps xmm0, xmm1
comiss xmm3, xmm0
ja 0x4229b7
movaps xmm0, xmm3
cvtps2pd xmm0, xmm0
xorps xmm1, xmm1
cvtps2pd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x4229e5
inc dword [ebp + 0x50]
cvtss2sd xmm0, xmm0
subsd xmm0, qword [0x451d78]
cvtpd2ps xmm0, xmm0
movss dword [edi + esi], xmm0
add dword [ebp + 0x1c], 4
inc edx
add edi, 4
dec ecx
jne 0x42295f
xorps xmm7, xmm7
movsd xmm1, qword [0x451d78]
mov esi, dword [ebp]
cmp dword [ebp + 0x50], 3
jl 0x422b24
xorps xmm0, xmm0
cvtss2sd xmm0, xmm6
addsd xmm0, xmm1
xorps xmm6, xmm6
cvtpd2ps xmm6, xmm0
comiss xmm6, xmm3
jbe 0x422a55
mov ecx, dword [ebp + 0x5c]
lea edx, [ecx*4]
push edx
push 0
push esi
movss dword [ebp + 0x3c], xmm3
movss dword [ebp + 0x24], xmm3
call sub.MSVCR80.DLL_memset
movss xmm4, dword [ebp + 0x24]
movss xmm6, dword [ebp + 0x3c]
xorps xmm3, xmm3
add esp, 0xc
jmp 0x422b24
mov edi, dword [ebp + 0x5c]
xor edx, edx
cmp edi, 4
jl 0x422af4
lea ecx, [edi - 4]
shr ecx, 2
inc ecx
lea eax, [esi + 8]
lea edx, [ecx*4]
movss xmm0, dword [eax - 8]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
comisd xmm7, xmm0
jbe 0x422a8a
movapd xmm0, xmm7
cvtpd2ps xmm0, xmm0
movss dword [eax - 8], xmm0
movss xmm0, dword [eax - 4]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
comisd xmm7, xmm0
jbe 0x422aa9
movapd xmm0, xmm7
cvtpd2ps xmm0, xmm0
movss dword [eax - 4], xmm0
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
comisd xmm7, xmm0
jbe 0x422ac7
movapd xmm0, xmm7
cvtpd2ps xmm0, xmm0
movss dword [eax], xmm0
movss xmm0, dword [eax + 4]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
comisd xmm7, xmm0
jbe 0x422ae5
movapd xmm0, xmm7
cvtpd2ps xmm0, xmm0
movss dword [eax + 4], xmm0
add eax, 0x10
dec ecx
jne 0x422a74
cmp edx, edi
jge 0x422b24
jmp 0x422b00
movss xmm0, dword [esi + edx*4]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
comisd xmm7, xmm0
jbe 0x422b16
movapd xmm0, xmm7
cvtpd2ps xmm0, xmm0
movss dword [esi + edx*4], xmm0
inc edx
cmp edx, edi
jl 0x422b00
xorps xmm7, xmm7
mov edi, dword [ebp + 0x58]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm4
mulsd xmm0, qword [0x451d00]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x34], xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm6
addsd xmm0, qword [0x4514c0]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x64], xmm0
jmp 0x422b5f
xorps xmm3, xmm3
cmp dword [ebx + 0x40], 0
jne 0x422f0b
cmp dword [ebp + 0x2c], 0
movss xmm0, dword [0x452054]
je 0x422b8d
movd xmm1, dword [ebp + 0x54]
cvtdq2ps xmm1, xmm1
cvtss2sd xmm1, xmm1
mulsd xmm1, qword [0x451450]
jmp 0x422b91
movapd xmm1, xmm7
mov edx, dword [ebp + 0x48]
mov esi, dword [ebp + 0x68]
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm1
mov eax, edx
cmp edx, esi
jge 0x422e63
movsd xmm4, qword [0x451328]
mov ecx, esi
sub ecx, edx
cmp ecx, 4
jl 0x422dd1
mov ecx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x20]
lea ecx, [ecx + edx*4 + 8]
add edx, dword [ebp + 0x30]
lea edx, [esi + edx*4]
mov esi, dword [ebp + 0x68]
mov dword [ebp + 0x1c], edx
jmp 0x422bd8
mov edx, dword [ebp + 0x1c]
movss xmm1, dword [ecx - 8]
xorps xmm5, xmm5
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm5, xmm2
subsd xmm0, xmm4
subsd xmm1, xmm5
comisd xmm0, xmm1
ja 0x422bfd
movapd xmm0, xmm1
cvtsd2ss xmm0, xmm0
cmp edi, 2
jne 0x422c33
movss xmm1, dword [edx]
xorps xmm5, xmm5
cvtss2sd xmm5, xmm2
cvtps2pd xmm1, xmm1
subsd xmm1, xmm5
xorps xmm5, xmm5
cvtss2sd xmm5, xmm0
comisd xmm5, xmm1
jbe 0x422c2c
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm3
xorps xmm3, xmm3
cvtss2sd xmm3, xmm0
addsd xmm1, xmm3
xorps xmm3, xmm3
cvtpd2ps xmm3, xmm1
movss xmm1, dword [ecx - 4]
xorps xmm5, xmm5
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm5, xmm2
subsd xmm0, xmm4
subsd xmm1, xmm5
comisd xmm0, xmm1
ja 0x422c71
movapd xmm0, xmm1
cvtsd2ss xmm0, xmm0
cmp edi, 2
jne 0x422ca8
movss xmm1, dword [edx + 4]
xorps xmm5, xmm5
cvtss2sd xmm5, xmm2
cvtps2pd xmm1, xmm1
subsd xmm1, xmm5
xorps xmm5, xmm5
cvtss2sd xmm5, xmm0
comisd xmm5, xmm1
jbe 0x422ca1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm1
cvtps2pd xmm1, xmm3
xorps xmm3, xmm3
cvtss2sd xmm3, xmm0
addsd xmm1, xmm3
xorps xmm3, xmm3
cvtpd2ps xmm3, xmm1
movss xmm1, dword [ecx]
xorps xmm5, xmm5
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm5, xmm2
subsd xmm0, xmm4
subsd xmm1, xmm5
comisd xmm0, xmm1
ja 0x422ce1
movapd xmm0, xmm1
cvtsd2ss xmm0, xmm0
cmp edi, 2
jne 0x422d24
mov edx, dword [ebp + 0x30]
mov esi, dword [ebp + 0x20]
add edx, eax
movss xmm1, dword [esi + edx*4 + 8]
xorps xmm5, xmm5
cvtss2sd xmm5, xmm2
cvtps2pd xmm1, xmm1
subsd xmm1, xmm5
xorps xmm5, xmm5
cvtss2sd xmm5, xmm0
comisd xmm5, xmm1
jbe 0x422d1a
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
mov esi, dword [ebp + 0x68]
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm1
cvtps2pd xmm1, xmm3
xorps xmm3, xmm3
cvtss2sd xmm3, xmm0
addsd xmm1, xmm3
xorps xmm3, xmm3
cvtpd2ps xmm3, xmm1
movss xmm1, dword [ecx + 4]
xorps xmm5, xmm5
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm5, xmm2
subsd xmm0, xmm4
subsd xmm1, xmm5
comisd xmm0, xmm1
ja 0x422d5e
movapd xmm0, xmm1
cvtsd2ss xmm0, xmm0
cmp edi, 2
jne 0x422da1
mov edx, dword [ebp + 0x30]
mov esi, dword [ebp + 0x20]
add edx, eax
movss xmm1, dword [esi + edx*4 + 0xc]
xorps xmm5, xmm5
cvtss2sd xmm5, xmm2
cvtps2pd xmm1, xmm1
subsd xmm1, xmm5
xorps xmm5, xmm5
cvtss2sd xmm5, xmm0
comisd xmm5, xmm1
jbe 0x422d97
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
mov esi, dword [ebp + 0x68]
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm1
add dword [ebp + 0x1c], 0x10
xorps xmm1, xmm1
cvtps2pd xmm1, xmm3
xorps xmm3, xmm3
cvtss2sd xmm3, xmm0
addsd xmm1, xmm3
add eax, 4
lea edx, [esi - 3]
add ecx, 0x10
xorps xmm3, xmm3
cvtpd2ps xmm3, xmm1
cmp eax, edx
jl 0x422bd5
mov edx, dword [ebp + 0x48]
cmp eax, esi
jge 0x422e63
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x20]
add ecx, eax
lea ecx, [edx + ecx*4]
movss xmm1, dword [edx + eax*4]
xorps xmm5, xmm5
cvtss2sd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtss2sd xmm5, xmm2
subsd xmm0, xmm4
subsd xmm1, xmm5
comisd xmm0, xmm1
ja 0x422e09
movapd xmm0, xmm1
cvtsd2ss xmm0, xmm0
cmp edi, 2
jne 0x422e3f
movss xmm1, dword [ecx]
xorps xmm5, xmm5
cvtss2sd xmm5, xmm2
cvtps2pd xmm1, xmm1
subsd xmm1, xmm5
xorps xmm5, xmm5
cvtss2sd xmm5, xmm0
comisd xmm5, xmm1
jbe 0x422e38
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm3
xorps xmm3, xmm3
cvtss2sd xmm3, xmm0
addsd xmm1, xmm3
inc eax
add ecx, 4
xorps xmm3, xmm3
cvtpd2ps xmm3, xmm1
cmp eax, esi
jl 0x422de4
mov edx, dword [ebp + 0x48]
movss xmm1, dword [ebx + 0xf0]
movss xmm4, dword [0x452050]
xorps xmm2, xmm2
sub esi, edx
cvtsi2ss xmm2, esi
cvtps2pd xmm2, xmm2
xorps xmm0, xmm0
cvtss2sd xmm0, xmm3
movsd xmm3, qword [0x452048]
divsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
cvtps2pd xmm2, xmm1
cvtss2sd xmm0, xmm0
subsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
comisd xmm3, xmm2
movss dword [ebp - 0x78], xmm0
jbe 0x422ebc
movaps xmm2, xmm4
jmp 0x422ebf
movaps xmm2, xmm0
cvtss2sd xmm2, xmm2
comisd xmm2, xmmword [0x451cd8]
jbe 0x422ed7
movss xmm0, dword [0x452040]
jmp 0x422ee7
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
comisd xmm3, xmm2
jbe 0x422eec
movaps xmm0, xmm4
movss dword [ebp - 0x78], xmm0
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x451460]
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ebx + 0xf0], xmm0
cmp dword [ebp + 0x28], 0
jne 0x422f29
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp + 0x20]
add eax, eax
add eax, eax
push eax
mov eax, dword [ebp - 0x14]
push edx
push eax
call sub.MSVCR80.DLL_memcpy
add esp, 0xc
cmp dword [ebp + 0x54], 0
jle 0x423103
mov eax, dword [ebp + 0x7c]
bsr ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x14]
sub edx, ecx
add edx, 2
mov dword [ebp + 0x24], ecx
cmp edx, dword [ebp - 0xc]
jg 0x4230da
cmp dword [ebp + 8], 0
jne 0x4230da
cmp dword [ebx + 0x18], 5
jl 0x4230da
cmp dword [ebx + 0x40], 0
jne 0x4230da
cmp dword [ebp - 8], 0
jne 0x4230da
mov eax, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x48]
mov edx, dword [ebp + 0x30]
push edi
push eax
mov eax, dword [ebp + 0x14]
push ecx
mov ecx, dword [ebp + 0x20]
push edx
push eax
push ecx
call fcn.0041d280
add esp, 0x18
test eax, eax
je 0x4230da
mov edx, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp + 0x40]
push edx
mov edx, dword [ebp - 0x10]
push ecx
mov ecx, dword [ebp + 0x18]
push edx
mov edx, dword [ebp + 4]
push edi
push ecx
mov ecx, dword [ebp + 0x54]
push edx
push eax
push esi
mov dword [ebp + 8], 1
mov dword [ebp + 0x2c], eax
call fcn.0041d980
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebp + 0x54]
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x28]
push ecx
mov ecx, dword [ebp + 0x18]
push edi
push edx
push eax
push ecx
push esi
call fcn.00428950
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 0x68]
push edi
push edx
mov edx, dword [ebp + 0x10]
push eax
push ecx
push edx
push esi
call fcn.0042f9d0
mov esi, dword [ebp - 0x48]
add esp, 0x54
xor ecx, ecx
cmp esi, 4
jl 0x423098
mov eax, dword [ebp - 0x14]
movd xmm0, dword [ebp + 0x54]
lea edx, [esi - 4]
shr edx, 2
cvtdq2ps xmm0, xmm0
add eax, 8
inc edx
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x451450]
lea ecx, [edx*4]
jmp 0x423040
movss xmm1, dword [eax - 8]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [eax - 8], xmm1
movss xmm1, dword [eax - 4]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [eax - 4], xmm1
movss xmm1, dword [eax]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [eax], xmm1
movss xmm1, dword [eax + 4]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [eax + 4], xmm1
add eax, 0x10
dec edx
jne 0x423040
cmp ecx, esi
jge 0x4230cd
movd xmm0, dword [ebp + 0x54]
cvtdq2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x451450]
mov eax, dword [ebp - 0x14]
movss xmm1, dword [eax + ecx*4]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm1, xmm1
movss dword [eax + ecx*4], xmm1
inc ecx
cmp ecx, esi
jl 0x4230b0
movss xmm0, dword [0x451fdc]
movss dword [ebp - 0x5c], xmm0
mov eax, dword [ebp + 0x7c]
bsr ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x14]
sub edx, ecx
add edx, 2
mov dword [ebp + 0x24], ecx
cmp edx, dword [ebp - 0xc]
jg 0x423103
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x7c]
push 3
push eax
push ecx
call fcn.00424a90
add esp, 0xc
mov eax, dword [ebp - 0x20]
imul eax, edi
add eax, eax
add eax, eax
call fcn.00426570
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x10]
mov eax, esp
push edx
mov edx, dword [ebp - 0x28]
push edi
push ecx
mov ecx, dword [ebp + 0x40]
push edx
push eax
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x18]
push eax
push ecx
call fcn.00428a10
mov edx, edi
shl edx, 4
sub edx, edi
add esp, 0x1c
cmp dword [ebp - 0x24], edx
jl 0x42315a
cmp dword [ebp - 8], 0
jne 0x42315a
cmp dword [ebx + 0x18], 2
jl 0x42315a
cmp dword [ebx + 0x40], 0
mov dword [ebp + 0x3c], 1
je 0x423161
mov dword [ebp + 0x3c], 0
mov esi, dword [ebp + 0x30]
add esi, esi
add esi, esi
mov eax, esi
mov dword [ebp + 0x18], esi
call fcn.00426570
mov eax, esi
mov dword [ebp + 0x34], esp
call fcn.00426570
mov eax, esi
mov edi, esp
call fcn.00426570
mov ecx, dword [ebx + 0x40]
mov eax, esp
push eax
push edi
mov dword [ebp + 0x4c], eax
lea eax, [ebx + 0x78]
push eax
mov eax, dword [ebp]
push eax
mov eax, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp + 0x54]
lea edx, [ebp - 0x44]
push edx
mov edx, dword [ebp - 0x68]
push eax
mov eax, dword [ebx + 0x34]
push ecx
mov ecx, dword [ebx + 0x2c]
push edx
mov edx, dword [ebp + 8]
push eax
mov eax, dword [ebp + 0x40]
push ecx
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp + 0x34]
push edx
mov edx, dword [ebx + 0x3c]
push ecx
mov ecx, dword [ebp + 0x58]
push edx
mov edx, dword [ebp + 0x68]
push eax
mov eax, dword [ebp + 0x48]
push ecx
mov ecx, dword [ebp + 0x30]
push edx
mov edx, dword [ebp - 0x14]
push eax
mov eax, dword [ebp + 0x20]
push ecx
push edx
push eax
call fcn.0041f660
add esp, 0x54
mov eax, esi
movss dword [ebp - 0x7c], xmm0
call fcn.00426570
cmp dword [ebp + 0x3c], 0
mov esi, esp
mov dword [ebp + 0x24], esi
je 0x423260
mov eax, 0x5000
cdq
idiv dword [ebp - 0x24]
add eax, 2
cmp eax, 0x50
jge 0x423210
mov eax, 0x50
mov ecx, dword [ebp + 0x38]
movss xmm0, dword [ebp - 0x5c]
mov edx, dword [ebp + 0x54]
push edi
push ecx
push ecx
mov ecx, dword [ebp - 0x20]
movss dword [esp], xmm0
push edx
mov edx, dword [ebp + 4]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp + 0x40]
push eax
mov eax, dword [ebp + 8]
push esi
push eax
push ecx
push edx
call fcn.0041e4c0
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x10]
add esp, 0x2c
cmp eax, dword [ebp + 0x68]
jge 0x4232b6
mov edx, dword [ebp + 0x68]
mov ecx, eax
mov edi, dword [esi + ecx*4 - 4]
mov dword [esi + eax*4], edi
inc eax
cmp eax, edx
jl 0x423252
jmp 0x4232b6
cmp dword [ebp - 8], 0
je 0x42329f
cmp dword [ebp + 0xc], 0
je 0x423279
cmp dword [ebp + 0x68], 0
jle 0x4232af
mov eax, 1
jmp 0x4232a8
cmp dword [ebp - 0x24], 0xf
jge 0x42329f
cmp dword [ebx + 0xb8], 2
je 0x42329f
cmp dword [ebp + 0x68], 0
jle 0x423297
mov ecx, dword [ebp + 0x68]
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x44], eax
jmp 0x4232b6
cmp dword [ebp + 0x68], 0
jle 0x4232af
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x68]
mov edi, esi
rep stosd dword es:[edi], eax
mov dword [ebp + 0x44], 0
mov eax, dword [ebp - 0x48]
add eax, eax
add eax, eax
call fcn.00426570
mov ecx, dword [ebp + 0x20]
mov edi, dword [ebp - 0x50]
movsd xmm0, qword [0x451470]
movss xmm1, dword [0x4514b8]
movsd xmm3, qword [0x451d78]
xor eax, eax
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x48]
lea ecx, [ecx + eax*4 + 4]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp + 0x14]
lea edx, [edi + eax*4]
lea eax, [ecx + eax*4 + 0xc]
mov dword [ebp - 0x14], esp
mov dword [ebp + 0x3c], edx
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x48]
mov dword [ebp + 0x50], eax
cmp eax, dword [ebp + 0x68]
jge 0x4234d8
mov ecx, dword [ebp + 0x68]
sub ecx, eax
cmp ecx, 4
jl 0x423468
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x40]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x14]
sub eax, edi
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x68]
mov esi, edi
mov edi, dword [ebp + 0x48]
sub esi, dword [ebp + 0x20]
sub eax, edi
sub eax, 4
shr eax, 2
inc eax
lea edi, [edi + eax*4]
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x50], edi
jmp 0x423355
mov esi, dword [ebp + 0x28]
mov edi, dword [ebp + 0x38]
movss xmm2, dword [ecx - 4]
movss xmm5, dword [edi + edx]
cvtps2pd xmm4, xmm2
cvtps2pd xmm5, xmm5
subsd xmm4, xmm5
andpd xmm4, xmm0
cvtsd2ss xmm4, xmm4
comiss xmm1, xmm4
jbe 0x423394
movss xmm4, dword [edx]
cvtps2pd xmm2, xmm2
cvtps2pd xmm4, xmm4
mulsd xmm4, xmm3
subsd xmm2, xmm4
cvtpd2ps xmm2, xmm2
movss dword [ecx - 4], xmm2
movss xmm2, dword [ecx]
add esi, ecx
movss xmm5, dword [esi + edi]
cvtps2pd xmm4, xmm2
cvtps2pd xmm5, xmm5
subsd xmm4, xmm5
andpd xmm4, xmm0
cvtsd2ss xmm4, xmm4
comiss xmm1, xmm4
jbe 0x4233d0
movss xmm4, dword [esi]
cvtps2pd xmm2, xmm2
cvtps2pd xmm4, xmm4
mulsd xmm4, xmm3
subsd xmm2, xmm4
cvtpd2ps xmm2, xmm2
movss dword [ecx], xmm2
mov esi, dword [ebp + 0xc]
movss xmm2, dword [ecx + 4]
movss xmm5, dword [esi - 4]
cvtps2pd xmm4, xmm2
cvtps2pd xmm5, xmm5
subsd xmm4, xmm5
andpd xmm4, xmm0
cvtsd2ss xmm4, xmm4
comiss xmm1, xmm4
jbe 0x423410
movss xmm4, dword [edx + 8]
cvtps2pd xmm2, xmm2
cvtps2pd xmm4, xmm4
mulsd xmm4, xmm3
subsd xmm2, xmm4
cvtpd2ps xmm2, xmm2
movss dword [ecx + 4], xmm2
movss xmm2, dword [ecx + 8]
movss xmm5, dword [esi]
cvtps2pd xmm4, xmm2
cvtps2pd xmm5, xmm5
subsd xmm4, xmm5
andpd xmm4, xmm0
cvtsd2ss xmm4, xmm4
comiss xmm1, xmm4
jbe 0x42344c
movss xmm4, dword [edx + 0xc]
cvtps2pd xmm2, xmm2
cvtps2pd xmm4, xmm4
mulsd xmm4, xmm3
subsd xmm2, xmm4
cvtpd2ps xmm2, xmm2
movss dword [ecx + 8], xmm2
add esi, 0x10
add edx, 0x10
add ecx, 0x10
dec eax
mov dword [ebp + 0xc], esi
jne 0x423352
mov esi, dword [ebp + 0x24]
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp + 0x68]
jge 0x4234d8
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x20]
add eax, dword [ebp + 0x1c]
sub ecx, edi
mov dword [ebp + 0x38], ecx
mov ecx, edi
sub ecx, edx
mov dword [ebp + 0x28], ecx
mov ecx, dword [ebp + 0x68]
sub ecx, dword [ebp + 0x50]
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x38]
mov dword [ebp + 0xc], ecx
mov ecx, dword [ebp + 0x28]
movss xmm2, dword [eax]
add ecx, eax
movss xmm5, dword [edx + ecx]
cvtps2pd xmm4, xmm2
cvtps2pd xmm5, xmm5
subsd xmm4, xmm5
andpd xmm4, xmm0
cvtsd2ss xmm4, xmm4
comiss xmm1, xmm4
jbe 0x4234d0
movss xmm4, dword [ecx]
cvtps2pd xmm2, xmm2
cvtps2pd xmm4, xmm4
mulsd xmm4, xmm3
subsd xmm2, xmm4
cvtpd2ps xmm2, xmm2
movss dword [eax], xmm2
add eax, 4
dec dword [ebp + 0xc]
jne 0x423491
mov edx, dword [ebp + 0x30]
add dword [ebp + 0x1c], edx
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x3c]
inc dword [ebp + 0x5c]
add dword [ebp - 0x4c], eax
add dword [ebp - 0x40], eax
add edx, eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x3c], edx
cmp eax, dword [ebp + 0x58]
jl 0x423305
mov ecx, dword [ebx + 0x40]
mov edx, dword [ebx + 0x38]
push ecx
mov edi, dword [ebp + 0x7c]
push edx
mov edx, dword [ebx + 0xc]
xor eax, eax
cmp dword [ebx + 0x18], 4
lea ecx, [ebx + 0x54]
setge al
push eax
mov eax, dword [ebp - 0x2c]
push ecx
mov ecx, dword [ebp + 0x54]
push edx
mov edx, dword [ebp + 0x58]
push eax
mov eax, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0xc]
push edx
mov edx, dword [ebp + 0x14]
push edi
push eax
mov eax, dword [ebp + 0x20]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [ebp + 0x68]
push eax
mov eax, dword [ebp + 0x48]
push ecx
mov ecx, dword [ebp + 0x40]
push edx
push eax
push ecx
call fcn.0042ee70
mov edx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x68]
push edx
mov edx, dword [ebp + 0x48]
push eax
push esi
mov esi, dword [ebp + 8]
push esi
push ecx
push edx
mov eax, edi
call fcn.0041ebb0
bsr eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x14]
sub edx, eax
mov ecx, 3
add edx, ecx
add esp, 0x5c
mov dword [ebp + 0xc], eax
cmp edx, dword [ebp - 0xc]
jg 0x4235ad
xor eax, eax
cmp dword [ebx + 0x40], eax
je 0x423671
mov dword [ebx + 0x64], eax
mov dword [ebx + 0x50], 2
mov ecx, dword [ebx + 0x50]
push 5
push 0x451d94
push ecx
push edi
call fcn.00424ac0
add esp, 0x10
cmp dword [ebx + 0x40], 0
je 0x4235d1
mov eax, 0x55555556
imul dword [ebp - 0x24]
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 8
jle 0x4235cc
mov eax, 8
mov edx, dword [ebp + 0x34]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
call fcn.00426570
mov ecx, dword [ebp + 0x58]
mov edx, dword [ebp + 0x54]
mov eax, esp
push ecx
push edx
push eax
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x40]
push eax
call fcn.0042e7a0
shl dword [ebp - 0xc], 3
push edi
mov dword [ebp + 0x44], 6
mov dword [ebp + 0x4c], 0
call fcn.00435590
mov dword [ebp + 0x5c], eax
mov eax, dword [ebp + 0x48]
add esp, 0x14
mov dword [ebp + 0x50], eax
cmp eax, dword [ebp + 0x68]
jge 0x4237ca
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x48]
lea edx, [eax + ecx*4]
mov ecx, dword [ebp + 0x3c]
sub ecx, eax
mov dword [ebp + 0x38], edx
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp + 0x50]
movsx eax, word [edx + ecx*2 + 2]
movsx ecx, word [edx + ecx*2]
sub eax, ecx
imul eax, dword [ebp + 0x58]
mov ecx, dword [ebp + 0x54]
shl eax, cl
mov edx, 0x30
cmp eax, 0x30
jl 0x42365a
mov edx, eax
lea ecx, [eax*8]
cmp ecx, edx
jge 0x4236fe
mov dword [ebp - 0x18], ecx
jmp 0x42370d
cmp dword [ebp - 8], eax
je 0x423693
cmp dword [ebx + 0x18], eax
jne 0x423683
mov dword [ebx + 0x50], eax
jmp 0x423599
cmp esi, eax
jne 0x423592
mov dword [ebx + 0x50], ecx
jmp 0x423599
cmp dword [ebp + 0x2c], eax
jne 0x4236ed
cmp dword [ebx + 0x18], ecx
jl 0x4236ed
mov ecx, dword [ebp + 0x58]
lea edx, [ecx + ecx*4]
add edx, edx
cmp dword [ebp - 0x2c], edx
jl 0x4236ed
xor edx, edx
cmp dword [ebp - 0x8c], eax
setne dl
mov eax, edx
mov edx, dword [ebp + 0x4c]
push edx
mov edx, dword [ebp - 0x18]
push edx
push ecx
mov ecx, dword [ebp + 0x10]
push ecx
push eax
lea eax, [ebx + 0x64]
push eax
mov eax, dword [ebx + 0x50]
lea edx, [ebx + 0x60]
push edx
mov edx, dword [ebp + 4]
push eax
mov eax, dword [ebp + 0x40]
lea ecx, [ebx + 0x58]
push ecx
push edx
push eax
call fcn.004295d0
add esp, 0x2c
mov dword [ebx + 0x50], eax
jmp 0x423599
cmp dword [ebx + 0x18], eax
jne 0x423592
mov dword [ebx + 0x50], eax
jmp 0x423599
mov dword [ebp - 0x18], 0x30
cmp eax, 0x30
jl 0x42370d
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x44]
mov edx, dword [ebp + 0x5c]
sub eax, dword [ebp + 0x4c]
xor edi, edi
lea edx, [edx + ecx*8]
mov dword [ebp], edi
cmp edx, eax
jge 0x4237ac
mov edx, dword [ebp - 0x18]
neg edx
mov dword [ebp + 0x28], edx
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp]
mov esi, dword [ebp + 0x38]
cmp edx, dword [eax + esi]
jge 0x423795
mov edx, dword [ebp + 0x34]
mov esi, dword [ebp + 0x50]
xor eax, eax
cmp edi, dword [edx + esi*4]
push ecx
setl al
mov esi, eax
mov eax, dword [ebp + 0x7c]
push esi
push eax
call fcn.00424a90
mov ecx, dword [ebp + 0x7c]
push ecx
call fcn.00435590
add esp, 0x10
mov dword [ebp + 0x5c], eax
test esi, esi
je 0x423795
mov eax, dword [ebp - 0x18]
add dword [ebp], eax
add dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x28]
mov edx, dword [ebp + 0x5c]
add edx, 8
inc edi
mov dword [ebp + 0xc], eax
mov ecx, 1
cmp edx, eax
jl 0x423734
test edi, edi
je 0x4237ac
mov eax, dword [ebp + 0x44]
dec eax
mov dword [ebp + 0x44], 2
cmp eax, 2
jl 0x4237ac
mov dword [ebp + 0x44], eax
mov ecx, dword [ebp + 0x38]
mov eax, dword [ebp]
mov dword [ecx], eax
mov eax, dword [ebp + 0x50]
inc eax
add ecx, 4
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x38], ecx
cmp eax, dword [ebp + 0x68]
jl 0x423634
cmp dword [ebp + 0x58], 2
mov edi, dword [ebp + 0x54]
jne 0x42385e
test edi, edi
je 0x4237f4
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 0x40]
push ecx
push edx
push eax
mov ecx, edi
call fcn.0041f270
add esp, 0xc
mov dword [ebp - 0x80], eax
mov ecx, dword [ebx + 0xe8]
mov eax, 0x10624dd3
imul dword [ebp - 0x58]
push ecx
sar edx, 6
push 0x15
mov eax, edx
push 0x451e78
shr eax, 0x1f
push 0x451e20
add eax, edx
xorps xmm0, xmm0
push ecx
cvtsi2ss xmm0, eax
movss dword [esp], xmm0
call fcn.00428740
mov ecx, dword [ebp + 0x48]
add esp, 0x14
mov dword [ebx + 0xe8], eax
mov edx, ecx
cmp ecx, eax
jg 0x42383f
mov edx, eax
mov esi, dword [ebp + 0x68]
cmp esi, edx
jge 0x423850
mov eax, esi
mov dword [ebx + 0xe8], eax
jmp 0x423861
cmp ecx, eax
jle 0x423856
mov eax, ecx
mov dword [ebx + 0xe8], eax
jmp 0x423861
mov esi, dword [ebp + 0x68]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x5c]
sub eax, dword [ebp + 0x4c]
add ecx, 0x30
mov dword [ebp + 0x38], 5
cmp ecx, eax
jg 0x423909
cmp dword [ebp + 0x48], 0
jg 0x4238d9
cmp dword [ebx + 0x40], 0
jne 0x4238d9
mov edx, dword [ebx + 0x48]
mov eax, dword [ebp - 0x58]
movss xmm0, dword [ebp - 0x34]
push edx
push eax
push ecx
mov ecx, dword [ebx + 0xe8]
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0x5c]
push ecx
push ecx
mov ecx, dword [ebp + 0x58]
movss dword [esp], xmm0
lea edx, [ebx + 0xe4]
push edx
mov edx, dword [ebp + 0x20]
lea eax, [ebx + 0x78]
push eax
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp + 4]
push ecx
mov ecx, dword [ebp + 0x40]
push esi
push edx
push eax
push ecx
mov edx, edi
call fcn.0041ecf0
add esp, 0x34
jmp 0x4238e9
xorps xmm0, xmm0
movss dword [ebx + 0xe4], xmm0
mov eax, 5
mov esi, dword [ebp + 0x7c]
push 7
push 0x451d88
push eax
push esi
mov dword [ebp + 0x38], eax
call fcn.00424ac0
push esi
call fcn.00435590
add esp, 0x14
mov dword [ebp + 0x5c], eax
cmp dword [ebp - 0x1c], 0
jle 0x423b92
mov edx, dword [ebp + 0x40]
mov eax, dword [edx + 0x24]
mov ecx, dword [ebp - 4]
sub eax, edi
mov dword [ebp - 0x34], eax
mov eax, 0x4fb
sar eax, cl
cmp dword [ebp + 0x78], eax
jl 0x423930
mov dword [ebp + 0x78], eax
cmp dword [ebp - 8], 0
mov eax, dword [ebp + 0x58]
jne 0x42394c
mov edx, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
shl eax, 6
sub edx, eax
sub edx, 0xa0
jmp 0x423965
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x1c]
add ecx, ecx
add ecx, ecx
add ecx, ecx
sub eax, ecx
xor edx, edx
add eax, 0xffffffe0
sets dl
dec edx
and edx, eax
mov esi, dword [ebx + 0x34]
test esi, esi
je 0x423979
mov eax, dword [ebx + 0xd8]
mov ecx, dword [ebp - 0x34]
sar eax, cl
add edx, eax
cmp dword [ebp - 8], 0
jne 0x4239fd
movss xmm0, dword [ebp - 0x78]
mov eax, dword [ebx + 0x40]
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x64]
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0x7c]
xor ecx, ecx
cmp dword [ebx + 0xec], ecx
setne cl
push ecx
push eax
mov eax, dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x70]
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0x5c]
push ecx
push ecx
movss dword [esp], xmm0
movss xmm0, dword [ebx + 0xe4]
push eax
mov eax, dword [ebp + 0x58]
push ecx
mov ecx, dword [ebx + 0xe8]
movss dword [esp], xmm0
push esi
push ecx
mov ecx, dword [ebp - 0x58]
push eax
push ecx
push edi
push edx
mov edx, dword [ebx + 0x5c]
lea eax, [ebx + 0x78]
push eax
mov eax, dword [ebp + 0x40]
call fcn.00421590
add esp, 0x40
jmp 0x423a5d
mov esi, dword [ebx + 0xbc]
mov eax, edx
cmp esi, 0x64
jge 0x423a19
mov ecx, dword [ebp - 4]
mov eax, 0x60
sar eax, cl
add eax, edx
cmp esi, 0x64
jle 0x423a27
mov ecx, dword [ebp - 4]
mov edx, 0x90
sar edx, cl
sub eax, edx
movss xmm0, dword [ebp - 0x5c]
xorps xmm1, xmm1
cvtps2pd xmm1, xmm0
subsd xmm1, qword [0x451d78]
mulsd xmm1, qword [0x452038]
cvttsd2si ecx, xmm1
add eax, ecx
comiss xmm0, dword [0x452034]
jbe 0x423a5d
cmp eax, 0x190
jg 0x423a5d
mov eax, 0x190
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ebp + 0x4c]
add eax, ecx
lea ecx, [edx + ecx + 0x3f]
sar ecx, 6
add ecx, 2
cmp dword [ebp - 8], 0
je 0x423a88
mov esi, dword [ebp - 0x6c]
lea edx, [edx + esi + 0x167]
sar edx, 6
cmp ecx, edx
jg 0x423a88
mov ecx, edx
mov edi, dword [ebp + 0x78]
lea esi, [eax + 0x20]
sar esi, 6
cmp ecx, esi
cmovg esi, ecx
cmp edi, esi
cmovl esi, edi
sub eax, dword [ebp - 0x1c]
mov ecx, esi
shl ecx, 6
cmp dword [ebp - 0x54], 0
je 0x423ab3
mov esi, 2
lea ecx, [esi + 0x7e]
xor eax, eax
mov edx, dword [ebx + 0xdc]
cmp edx, 0x3ca
jge 0x423aea
inc edx
xorps xmm0, xmm0
mov dword [ebx + 0xdc], edx
add edx, 0x14
cvtsi2ss xmm0, edx
xorps xmm1, xmm1
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x451328]
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
jmp 0x423af2
movss xmm0, dword [0x452030]
mov edx, dword [ebx + 0x34]
test edx, edx
je 0x423b4a
sub ecx, dword [ebp - 0x1c]
add dword [ebx + 0xd0], ecx
test edx, edx
je 0x423b4a
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebx + 0xd4]
mov edi, 1
shl edi, cl
xorps xmm1, xmm1
cvtss2sd xmm0, xmm0
imul edi, eax
sub edi, dword [ebx + 0xd8]
sub edi, edx
cvtsi2ss xmm1, edi
mov edi, dword [ebp + 0x78]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm0
cvttsd2si eax, xmm1
add eax, edx
mov dword [ebx + 0xd4], eax
neg eax
mov dword [ebx + 0xd8], eax
cmp dword [ebx + 0x34], 0
je 0x423b7c
mov eax, dword [ebx + 0xd0]
test eax, eax
jns 0x423b7c
mov ecx, dword [ebp - 0x54]
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
neg eax
neg ecx
sbb ecx, ecx
not ecx
and ecx, eax
add esi, ecx
mov dword [ebx + 0xd0], 0
cmp edi, esi
jl 0x423b85
mov edi, esi
mov dword [ebp + 0x78], edi
mov edx, dword [ebp + 0x7c]
push edi
push edx
call fcn.00424c20
add esp, 8
mov esi, dword [ebp + 0x18]
mov eax, esi
call fcn.00426570
mov edi, esp
mov eax, esi
mov dword [ebp - 0x34], edi
call fcn.00426570
mov eax, esi
mov dword [ebp - 0x6c], esp
call fcn.00426570
mov eax, dword [ebp + 0x7c]
mov esi, dword [ebp + 0x78]
mov dword [ebp - 0x64], esp
push eax
shl esi, 6
call fcn.00435590
mov ecx, eax
mov eax, esi
sub eax, ecx
add esp, 4
dec eax
cmp dword [ebp + 8], 0
je 0x423bee
mov ecx, dword [ebp + 0x54]
cmp ecx, 2
jl 0x423bee
lea edx, [ecx*8 + 0x10]
cmp eax, edx
jl 0x423bee
mov ecx, 8
jmp 0x423bf0
xor ecx, ecx
mov edx, dword [ebp + 0x68]
sub eax, ecx
dec edx
cmp dword [ebx + 0x78], 0
mov dword [ebp - 4], ecx
je 0x423c5e
mov edx, dword [ebp + 0x58]
mov ecx, dword [ebp - 0x58]
imul edx, edx, 0x7d00
cmp ecx, edx
jge 0x423c16
mov ecx, 0xd
jmp 0x423c52
mov edx, dword [ebp + 0x58]
imul edx, edx, 0xbb80
cmp ecx, edx
jge 0x423c2a
mov ecx, 0x10
jmp 0x423c52
mov edx, dword [ebp + 0x58]
imul edx, edx, 0xea60
cmp ecx, edx
jge 0x423c3e
mov ecx, 0x12
jmp 0x423c52
mov ecx, dword [ebp + 0x58]
imul ecx, ecx, 0x13880
xor edx, edx
cmp dword [ebp - 0x58], ecx
setge dl
lea ecx, [edx + 0x13]
mov edx, dword [ebx + 0x98]
cmp edx, ecx
jg 0x423c5e
mov edx, ecx
cmp dword [ebx + 0x40], 0
je 0x423c69
mov edx, 1
push edx
mov edx, dword [ebx + 0x5c]
push edx
mov edx, dword [ebp + 0x7c]
push 1
push edx
mov edx, dword [ebp + 0x54]
push edx
mov edx, dword [ebp + 0x58]
push edx
mov edx, dword [ebp - 0x64]
push edx
mov edx, dword [ebp - 0x6c]
push edi
push edx
lea edx, [ebp - 0x94]
push edx
mov edx, dword [ebp + 0x3c]
push eax
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp + 0x34]
lea ecx, [ebx + 0xe8]
push ecx
mov ecx, dword [ebp + 0x38]
push ecx
mov ecx, dword [ebp + 0x68]
push edx
mov edx, dword [ebp + 0x48]
push eax
mov eax, dword [ebp + 0x40]
push ecx
push edx
push eax
call fcn.00435150
mov ecx, eax
mov eax, dword [ebx + 0x5c]
add esp, 0x4c
mov dword [ebp - 0x44], ecx
test eax, eax
je 0x423cde
lea edx, [eax - 1]
mov edi, edx
cmp edx, ecx
jg 0x423ccf
mov edi, ecx
inc eax
cmp eax, edi
jge 0x423cd8
mov ecx, eax
jmp 0x423cde
cmp edx, ecx
jle 0x423cde
mov ecx, edx
mov edx, dword [ebp + 0x7c]
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x14]
mov dword [ebx + 0x5c], ecx
mov ecx, dword [ebp + 0x58]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
mov edx, dword [ebp + 0x68]
push eax
mov eax, dword [ebp + 0x48]
push edi
push ecx
mov ecx, dword [ebp + 0x40]
push edx
push eax
push ecx
call fcn.0042f2c0
mov eax, dword [ebp - 0x48]
add esp, 0x20
call fcn.00426570
cmp dword [ebp + 0x58], 2
mov ecx, esp
jne 0x423d27
mov edx, dword [ebp + 4]
mov eax, dword [ebp - 0x20]
lea edx, [edx + eax*4]
mov dword [ebp - 0x70], edx
jmp 0x423d2e
mov dword [ebp - 0x70], 0
mov edx, dword [ebx + 0x44]
push edx
mov edx, dword [ebx + 0x48]
push edx
mov edx, dword [ebx + 0x18]
push edx
mov edx, dword [ebp + 0x54]
sub esi, dword [ebp - 4]
lea eax, [ebx + 0x4c]
push eax
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp + 0x7c]
push edx
mov edx, dword [ebp - 0x94]
push eax
mov eax, dword [ebp + 0x24]
push edx
mov edx, dword [ebx + 0xe8]
push esi
push eax
mov eax, dword [ebp - 0x80]
push edx
mov edx, dword [ebx + 0x50]
push eax
mov eax, dword [ebp + 0x2c]
push edx
mov edx, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x28]
push edx
mov edx, dword [ebp + 4]
push eax
mov eax, dword [ebp + 0x68]
push ecx
mov ecx, dword [ebp - 0x70]
push ecx
mov ecx, dword [ebp + 0x48]
push edx
mov edx, dword [ebp + 0x40]
push eax
push ecx
push edx
push 1
call fcn.0042bce0
mov esi, dword [ebp + 0x7c]
add esp, 0x5c
cmp dword [ebp - 4], 0
jle 0x423db4
xor eax, eax
cmp dword [ebx + 0x74], 2
push 1
setl al
push eax
push esi
call fcn.00424b20
add esp, 0xc
bsr ecx, dword [esi + 0x1c]
mov eax, dword [ebp + 0x78]
mov edx, dword [ebp + 0x58]
push edx
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x44]
push esi
lea ecx, [eax*8]
sub ecx, dword [esi + 0x14]
mov esi, dword [ebp + 0x48]
lea eax, [ecx + edx + 1]
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x34]
push eax
mov eax, dword [ebp + 0x14]
push ecx
mov ecx, dword [ebp + 0x68]
push edx
mov edx, dword [ebp + 0x40]
push edi
push eax
push ecx
push esi
push edx
call fcn.0042f480
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x50]
push eax
push 0
push ecx
call sub.MSVCR80.DLL_memset
movss xmm3, dword [0x4514cc]
movsd xmm4, qword [0x452028]
movss xmm5, dword [0x452020]
movsd xmm2, qword [0x451450]
add esp, 0x34
xor eax, eax
mov dword [ebp + 0x5c], eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x50]
lea edx, [edi + esi*4 + 4]
lea ecx, [eax + esi*4 + 8]
mov dword [ebp + 0x28], edx
mov dword [ebp + 0x38], ecx
mov edi, edi
mov esi, dword [ebp + 0x48]
cmp esi, dword [ebp + 0x68]
jge 0x423fd1
mov edx, dword [ebp + 0x68]
sub edx, esi
cmp edx, 4
jl 0x423f75
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x28]
sub eax, edi
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x68]
mov edi, dword [ebp - 0x44]
sub eax, esi
sub eax, 4
shr eax, 2
inc eax
lea esi, [esi + eax*4]
lea ebx, [ebx]
movss xmm0, dword [ecx - 4]
xorps xmm1, xmm1
cvtps2pd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x423e96
movaps xmm1, xmm3
jmp 0x423e99
movaps xmm1, xmm0
cvtss2sd xmm1, xmm1
comisd xmm4, xmm1
jbe 0x423ea8
movaps xmm0, xmm5
jmp 0x423eb4
cvtps2pd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x423eb4
movaps xmm0, xmm3
movss dword [edx - 8], xmm0
movss xmm0, dword [ecx]
xorps xmm1, xmm1
cvtps2pd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x423ece
movaps xmm1, xmm3
jmp 0x423ed1
movaps xmm1, xmm0
cvtss2sd xmm1, xmm1
comisd xmm4, xmm1
jbe 0x423ee0
movaps xmm0, xmm5
jmp 0x423eec
cvtps2pd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x423eec
movaps xmm0, xmm3
movss dword [edi + ecx], xmm0
movss xmm0, dword [ecx + 4]
xorps xmm1, xmm1
cvtps2pd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x423f07
movaps xmm1, xmm3
jmp 0x423f0a
movaps xmm1, xmm0
cvtss2sd xmm1, xmm1
comisd xmm4, xmm1
jbe 0x423f19
movaps xmm0, xmm5
jmp 0x423f25
cvtps2pd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x423f25
movaps xmm0, xmm3
movss dword [edx], xmm0
movss xmm0, dword [ecx + 8]
xorps xmm1, xmm1
cvtps2pd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x423f3f
movaps xmm1, xmm3
jmp 0x423f42
movaps xmm1, xmm0
cvtss2sd xmm1, xmm1
comisd xmm4, xmm1
jbe 0x423f51
movaps xmm0, xmm5
jmp 0x423f60
xorps xmm1, xmm1
cvtps2pd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x423f60
movaps xmm0, xmm3
movss dword [edx + 4], xmm0
add ecx, 0x10
add edx, 0x10
dec eax
jne 0x423e80
mov edi, dword [ebp - 0x14]
cmp esi, dword [ebp + 0x68]
jge 0x423fd1
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x50]
add eax, esi
lea ecx, [edi + eax*4]
mov eax, dword [ebp + 0x68]
sub edx, edi
sub eax, esi
lea esp, [esp]
movss xmm0, dword [ecx]
xorps xmm1, xmm1
cvtps2pd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x423fa5
movaps xmm1, xmm3
jmp 0x423fa8
movaps xmm1, xmm0
cvtss2sd xmm1, xmm1
comisd xmm4, xmm1
jbe 0x423fb7
movaps xmm0, xmm5
jmp 0x423fc6
xorps xmm1, xmm1
cvtps2pd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x423fc6
movaps xmm0, xmm3
movss dword [edx + ecx], xmm0
add ecx, 4
dec eax
jne 0x423f90
mov ecx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x5c]
add dword [ebp - 4], ecx
mov ecx, dword [ebp + 0x18]
add dword [ebp + 0x38], ecx
add dword [ebp + 0x28], ecx
inc eax
mov dword [ebp + 0x5c], eax
cmp eax, dword [ebp + 0x58]
jl 0x423e40
cmp dword [ebp - 0x54], 0
je 0x42400c
cmp dword [ebp - 0x48], 0
jle 0x42400c
mov ecx, dword [ebp - 0x48]
mov edi, dword [ebp + 0x14]
mov eax, 0xc1e00000
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 0x18]
cmp dword [ebp - 0x10], 2
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x30]
movss xmm0, dword [ebp - 0x84]
mov edi, dword [ebp + 0x14]
mov dword [ebx + 0x68], edx
movss dword [ebx + 0x6c], xmm0
mov dword [ebx + 0x70], eax
jne 0x424041
cmp dword [ebp + 0x58], 1
jne 0x424041
push ecx
add ecx, edi
push edi
push ecx
call sub.MSVCR80.DLL_memcpy
add esp, 0xc
cmp dword [ebp + 8], 0
jne 0x42406e
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x3c]
push edi
push ecx
push esi
call sub.MSVCR80.DLL_memcpy
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x60]
push edi
push edx
push eax
call sub.MSVCR80.DLL_memcpy
add esp, 0x18
jmp 0x424167
mov esi, dword [ebp - 0x88]
xor ecx, ecx
cmp esi, 4
jl 0x424134
mov ecx, dword [ebp - 0x60]
lea edx, [edi + 0xc]
sub edi, ecx
lea eax, [ecx + 4]
lea ecx, [esi - 4]
shr ecx, 2
mov dword [ebp - 0x88], edi
inc ecx
lea edi, [ecx*4]
mov dword [ebp + 0x50], edi
mov edi, dword [ebp - 0x88]
jmp 0x4240b0
movss xmm0, dword [eax - 4]
movss xmm1, dword [edx - 0xc]
cvtps2pd xmm2, xmm0
cvtps2pd xmm3, xmm1
comisd xmm3, xmm2
ja 0x4240c9
movaps xmm0, xmm1
movss dword [eax - 4], xmm0
movss xmm0, dword [eax]
movss xmm1, dword [eax + edi]
cvtps2pd xmm2, xmm0
cvtps2pd xmm3, xmm1
comisd xmm3, xmm2
ja 0x4240e6
movaps xmm0, xmm1
movss dword [eax], xmm0
movss xmm0, dword [eax + 4]
movss xmm1, dword [edx - 4]
cvtps2pd xmm2, xmm0
cvtps2pd xmm3, xmm1
comisd xmm3, xmm2
ja 0x424103
movaps xmm0, xmm1
movss dword [eax + 4], xmm0
movss xmm0, dword [eax + 8]
movss xmm1, dword [edx]
cvtps2pd xmm2, xmm0
cvtps2pd xmm3, xmm1
comisd xmm3, xmm2
ja 0x424120
movaps xmm0, xmm1
movss dword [eax + 8], xmm0
add eax, 0x10
add edx, 0x10
dec ecx
jne 0x4240b0
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x50]
cmp ecx, esi
jge 0x424164
mov edx, dword [ebp - 0x60]
sub edi, edx
lea eax, [edx + ecx*4]
sub esi, ecx
movss xmm0, dword [eax]
movss xmm1, dword [eax + edi]
cvtps2pd xmm2, xmm0
cvtps2pd xmm3, xmm1
comisd xmm3, xmm2
ja 0x42415a
movaps xmm0, xmm1
movss dword [eax], xmm0
add eax, 4
dec esi
jne 0x424142
mov esi, dword [ebp - 0x3c]
mov eax, dword [ebp + 0x68]
movss xmm0, dword [0x451540]
xorps xmm1, xmm1
add eax, eax
add eax, eax
add eax, esi
mov dword [ebp + 0x5c], 0
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], eax
mov edi, dword [ebp + 0x48]
test edi, edi
jle 0x4241b4
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x3c]
sub ecx, esi
sub edx, esi
lea esp, [esp]
movss dword [ecx + eax], xmm1
movss dword [eax], xmm0
movss dword [edx + eax], xmm0
add eax, 4
dec edi
jne 0x4241a0
mov ecx, dword [ebp + 0x68]
cmp ecx, dword [ebp + 0x30]
jge 0x4241e4
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x60]
mov ecx, dword [ebp + 0x30]
mov eax, dword [ebp - 0x38]
sub edx, esi
sub edi, esi
sub ecx, dword [ebp + 0x68]
nop
movss dword [eax + edx], xmm1
movss dword [eax], xmm0
movss dword [eax + edi], xmm0
add eax, 4
dec ecx
jne 0x4241d0
mov eax, dword [ebp + 0x5c]
mov ecx, dword [ebp + 0x18]
add dword [ebp - 0x3c], ecx
add dword [ebp - 0x38], ecx
inc eax
mov dword [ebp + 0x5c], eax
cmp eax, dword [ebp - 0x10]
jl 0x424188
cmp dword [ebp + 8], 0
jne 0x424211
cmp dword [ebp - 0x90], 0
jne 0x424211
mov dword [ebx + 0x74], 0
jmp 0x424214
inc dword [ebx + 0x74]
mov esi, dword [ebp + 0x7c]
mov edx, dword [esi + 0x1c]
mov eax, dword [ebp - 0x7c]
push esi
mov dword [eax], edx
call fcn.00424c50
add esp, 4
cmp dword [esi + 0x2c], 0
je 0x424241
mov eax, 0xfffffffd
lea esp, [ebp - 0xd0]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x60]
pop ebp
ret
mov eax, dword [ebp + 0x78]
lea esp, [ebp - 0xd0]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x60]
pop ebp
ret
or eax, 0xffffffff
lea esp, [ebp - 0xd0]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x60]
pop ebp
ret