Function at 0x4ea299
Capabilities:
Encode data using xor

Disassembly:
push 8
push 0x90
mov eax, 0x101405f9
call fcn.00533241
mov dword [ebp - 0x84], edx
mov eax, ecx
mov dword [ebp - 0xa0], eax
mov cl, byte [eax + 0xa8]
mov byte [ebp - 0x75], cl
lea ecx, [eax + 0xac]
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [ebp - 0x9c], eax
lea edi, [ebp - 0x20]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
stosd dword es:[edi], eax
sar ecx, 2
mov dword [ebp - 0x6c], ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x4ea32c
cmp ecx, 0x3fffffff
ja 0x4ec158
mov edi, ecx
shl edi, 2
push edi
call fcn.004029a1
push edi
mov dword [ebp - 0x20], eax
lea esi, [edi + eax]
xor edi, edi
push edi
push eax
mov dword [ebp - 0x18], esi
call fcn.0050d8c0
mov ecx, dword [ebp - 0x6c]
add esp, 0x10
mov dword [ebp - 0x1c], esi
xor eax, eax
mov dword [ebp - 4], eax
lea edi, [ebp - 0x40]
xor eax, eax
stosd dword es:[edi], eax
push ecx
push ecx
lea ecx, [ebp - 0x40]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call fcn.00429ba3
xor eax, eax
mov byte [ebp - 4], 1
mov esi, eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x6c], eax
jbe 0x4ea3ef
mov edx, eax
mov eax, dword [ebp - 0x9c]
shl edx, 2
mov dword [ebp - 0x80], edx
mov ecx, dword [eax]
mov ecx, dword [ecx + edx]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [ebp - 0x94], 0
mov edi, eax
mov dword [ebp - 0x8c], edi
jne 0x4ea3a3
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x78]
lea esi, [edi + 4]
lea edi, [ebp - 0x30]
movsd dword es:[edi], dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x7c], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x8c]
mov eax, dword [edi]
mov ecx, edi
mov esi, dword [ebp - 0x20]
call dword [eax + 0x70]
mov ecx, dword [ebp - 0x80]
mov dword [ecx + esi], eax
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 0x78]
mov ecx, eax
call fcn.004ef8cb
cmp eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x40]
mov dword [ecx + edx], eax
cmovbe eax, dword [ebp - 0x74]
mov esi, eax
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x94]
inc eax
mov dword [ebp - 0x94], eax
cmp eax, dword [ebp - 0x6c]
jb 0x4ea35e
mov dword [ebp - 0x74], esi
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, eax
call fcn.004bf9a6
xor edi, edi
test al, al
jne 0x4ea453
mov eax, dword [ebp - 0xa0]
cmp byte [eax + 0xa8], 0x74
je 0x4ea453
mov eax, dword [ebp - 0x6c]
mov ecx, edi
mov dword [ebp - 0x80], ecx
test eax, eax
je 0x4ea453
mov edx, dword [ebp - 0x40]
cmp dword [edx + ecx*4], esi
je 0x4ea44b
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x74]
mov ecx, dword [esi + ecx*4]
call fcn.004e5a3c
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x40]
mov dword [esi + ecx*4], eax
mov esi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x6c]
inc ecx
mov dword [ebp - 0x80], ecx
cmp ecx, eax
jb 0x4ea429
movzx eax, byte [ebp - 0x75]
cmp eax, 0x53
ja 0x4eb3e5
je 0x4eb338
cmp eax, 0x37
ja 0x4eab9d
je 0x4eaa91
sub eax, 0x18
je 0x4ea96d
sub eax, 1
je 0x4ea849
sub eax, 1
je 0x4ea762
sub eax, 1
je 0x4ea67a
sub eax, 1
je 0x4ea593
sub eax, 1
jne 0x4ec13c
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, eax
xor edx, edx
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x8c], edi
test edi, edi
je 0x4ea4f2
mov ecx, esi
test esi, esi
je 0x4ec136
mov dword [eax], edx
lea eax, [eax + 8]
mov dword [eax - 4], edx
sub ecx, 1
jne 0x4ea4e3
jmp 0x4ea4f7
mov edi, edx
mov dword [ebp - 0x6c], edx
test esi, esi
je 0x4ec136
mov eax, dword [ebp - 0x7c]
mov ecx, eax
sub ecx, 1
je 0x4ea546
dec ecx
sub ecx, 1
je 0x4ea533
sub ecx, 1
jne 0x4ea582
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + edx*8]
cmp eax, dword [ecx + edx*8]
sbb al, al
inc al
mov byte [edi + edx*8], al
mov dword [edi + edx*8 + 4], 5
jmp 0x4ea57f
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + edx*8]
cmp eax, dword [ecx + edx*8]
setge al
jmp 0x4ea526
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x70]
shl esi, 3
mov ecx, dword [edx]
add ecx, esi
call fcn.004f0928
mov ecx, dword [edx + 4]
movaps xmm1, xmm0
add ecx, esi
call fcn.004f0928
mov edi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
comiss xmm1, xmm0
mov dword [edi + esi + 4], 5
setae al
mov byte [edi + esi], al
mov esi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x7c]
inc edx
mov dword [ebp - 0x70], edx
cmp edx, esi
jb 0x4ea502
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, eax
xor edx, edx
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x8c], edi
test edi, edi
je 0x4ea5da
mov ecx, esi
test esi, esi
je 0x4ec136
mov dword [eax], edx
lea eax, [eax + 8]
mov dword [eax - 4], edx
sub ecx, 1
jne 0x4ea5cb
jmp 0x4ea5df
mov edi, edx
mov dword [ebp - 0x6c], edx
test esi, esi
je 0x4ec136
mov eax, dword [ebp - 0x7c]
mov ecx, eax
sub ecx, 1
je 0x4ea62d
dec ecx
sub ecx, 1
je 0x4ea61a
sub ecx, 1
jne 0x4ea669
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + edx*8]
cmp eax, dword [ecx + edx*8]
seta al
mov byte [edi + edx*8], al
mov dword [edi + edx*8 + 4], 5
jmp 0x4ea666
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + edx*8]
cmp eax, dword [ecx + edx*8]
setg al
jmp 0x4ea60d
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x70]
shl esi, 3
mov ecx, dword [edx]
add ecx, esi
call fcn.004f0928
mov ecx, dword [edx + 4]
movaps xmm1, xmm0
add ecx, esi
call fcn.004f0928
mov edi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
comiss xmm1, xmm0
mov dword [edi + esi + 4], 5
seta al
mov byte [edi + esi], al
mov esi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x7c]
inc edx
mov dword [ebp - 0x70], edx
cmp edx, esi
jb 0x4ea5ea
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, eax
xor edx, edx
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x8c], edi
test edi, edi
je 0x4ea6c1
mov ecx, esi
test esi, esi
je 0x4ec136
mov dword [eax], edx
lea eax, [eax + 8]
mov dword [eax - 4], edx
sub ecx, 1
jne 0x4ea6b2
jmp 0x4ea6c6
mov edi, edx
mov dword [ebp - 0x6c], edx
test esi, esi
je 0x4ec136
mov eax, dword [ebp - 0x7c]
mov ecx, eax
sub ecx, 1
je 0x4ea715
dec ecx
sub ecx, 1
je 0x4ea702
sub ecx, 1
jne 0x4ea751
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + edx*8]
cmp dword [ecx + edx*8], eax
sbb al, al
inc al
mov byte [edi + edx*8], al
mov dword [edi + edx*8 + 4], 5
jmp 0x4ea74e
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + edx*8]
cmp eax, dword [ecx + edx*8]
setle al
jmp 0x4ea6f5
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x70]
shl esi, 3
mov ecx, dword [edx]
add ecx, esi
call fcn.004f0928
mov ecx, dword [edx + 4]
movaps xmm1, xmm0
add ecx, esi
call fcn.004f0928
mov edi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
comiss xmm0, xmm1
mov dword [edi + esi + 4], 5
setae al
mov byte [edi + esi], al
mov esi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x7c]
inc edx
mov dword [ebp - 0x70], edx
cmp edx, esi
jb 0x4ea6d1
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, eax
xor edx, edx
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x8c], edi
test edi, edi
je 0x4ea7a9
mov ecx, esi
test esi, esi
je 0x4ec136
mov dword [eax], edx
lea eax, [eax + 8]
mov dword [eax - 4], edx
sub ecx, 1
jne 0x4ea79a
jmp 0x4ea7ae
mov edi, edx
mov dword [ebp - 0x6c], edx
test esi, esi
je 0x4ec136
mov eax, dword [ebp - 0x7c]
mov ecx, eax
sub ecx, 1
je 0x4ea7fc
dec ecx
sub ecx, 1
je 0x4ea7e9
sub ecx, 1
jne 0x4ea838
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + edx*8]
cmp eax, dword [ecx + edx*8]
setb al
mov byte [edi + edx*8], al
mov dword [edi + edx*8 + 4], 5
jmp 0x4ea835
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + edx*8]
cmp eax, dword [ecx + edx*8]
setl al
jmp 0x4ea7dc
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x70]
shl esi, 3
mov ecx, dword [edx]
add ecx, esi
call fcn.004f0928
mov ecx, dword [edx + 4]
movaps xmm1, xmm0
add ecx, esi
call fcn.004f0928
mov edi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
comiss xmm0, xmm1
mov dword [edi + esi + 4], 5
seta al
mov byte [edi + esi], al
mov esi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x7c]
inc edx
mov dword [ebp - 0x70], edx
cmp edx, esi
jb 0x4ea7b9
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, dword [ebp - 0x74]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4ea8a0
mov dword [ebp - 0x94], edi
mov edx, esi
test edi, edi
je 0x4ea8a5
push 8
pop ecx
dec dword [ebp - 0x94]
mov dword [edx], eax
mov dword [edx + 4], eax
add edx, ecx
cmp dword [ebp - 0x94], eax
ja 0x4ea889
jmp 0x4ea8a5
mov esi, eax
mov dword [ebp - 0x6c], eax
mov ecx, eax
mov dword [ebp - 0x70], ecx
test edi, edi
je 0x4ec136
mov eax, dword [ebp - 0x7c]
push 5
pop edx
mov dword [ebp - 0x84], eax
sub dword [ebp - 0x84], 1
je 0x4ea918
sub dword [ebp - 0x84], 2
je 0x4ea905
sub dword [ebp - 0x84], 1
je 0x4ea905
sub dword [ebp - 0x84], 1
jne 0x4ea95c
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x70]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov al, byte [eax + edi*8]
cmp al, byte [ecx + edi*8]
mov ecx, dword [ebp - 0x70]
setne al
mov edi, dword [ebp - 0x74]
mov byte [esi + ecx*8], al
mov dword [esi + ecx*8 + 4], edx
jmp 0x4ea959
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x70]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + edi*8]
cmp eax, dword [ecx + edi*8]
jmp 0x4ea8f3
mov edx, dword [ebp - 0x20]
mov eax, ecx
shl eax, 3
mov dword [ebp - 0x80], eax
mov ecx, dword [edx]
add ecx, eax
call fcn.004f0928
mov ecx, dword [edx + 4]
movaps xmm1, xmm0
add ecx, dword [ebp - 0x80]
call fcn.004f0928
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x4ea947
mov cl, 1
jmp 0x4ea949
xor cl, cl
mov eax, dword [ebp - 0x80]
push 5
pop edx
mov byte [esi + eax], cl
mov ecx, dword [ebp - 0x70]
mov dword [esi + eax + 4], edx
mov eax, dword [ebp - 0x7c]
inc ecx
mov dword [ebp - 0x70], ecx
cmp ecx, edi
jb 0x4ea8b8
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, dword [ebp - 0x74]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4ea9c4
mov dword [ebp - 0x94], edi
mov edx, esi
test edi, edi
je 0x4ea9c9
push 8
pop ecx
dec dword [ebp - 0x94]
mov dword [edx], eax
mov dword [edx + 4], eax
add edx, ecx
cmp dword [ebp - 0x94], eax
ja 0x4ea9ad
jmp 0x4ea9c9
mov esi, eax
mov dword [ebp - 0x6c], eax
mov ecx, eax
mov dword [ebp - 0x70], ecx
test edi, edi
je 0x4ec136
mov eax, dword [ebp - 0x7c]
push 5
pop edx
mov dword [ebp - 0x84], eax
sub dword [ebp - 0x84], 1
je 0x4eaa3c
sub dword [ebp - 0x84], 2
je 0x4eaa29
sub dword [ebp - 0x84], 1
je 0x4eaa29
sub dword [ebp - 0x84], 1
jne 0x4eaa80
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x70]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov al, byte [eax + edi*8]
cmp al, byte [ecx + edi*8]
mov ecx, dword [ebp - 0x70]
sete al
mov edi, dword [ebp - 0x74]
mov byte [esi + ecx*8], al
mov dword [esi + ecx*8 + 4], edx
jmp 0x4eaa7d
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x70]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov eax, dword [eax + edi*8]
cmp eax, dword [ecx + edi*8]
jmp 0x4eaa17
mov edx, dword [ebp - 0x20]
mov eax, ecx
shl eax, 3
mov dword [ebp - 0x80], eax
mov ecx, dword [edx]
add ecx, eax
call fcn.004f0928
mov ecx, dword [edx + 4]
movaps xmm1, xmm0
add ecx, dword [ebp - 0x80]
call fcn.004f0928
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x4eaa6b
mov cl, 1
jmp 0x4eaa6d
xor cl, cl
mov eax, dword [ebp - 0x80]
push 5
pop edx
mov byte [esi + eax], cl
mov ecx, dword [ebp - 0x70]
mov dword [esi + eax + 4], edx
mov eax, dword [ebp - 0x7c]
inc ecx
mov dword [ebp - 0x70], ecx
cmp ecx, edi
jb 0x4ea9dc
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, eax
xor eax, eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x8c], edi
test edi, edi
je 0x4eaae9
mov dword [ebp - 0x94], esi
mov edx, edi
test esi, esi
je 0x4ec136
push 8
pop ecx
dec dword [ebp - 0x94]
mov dword [edx], eax
mov dword [edx + 4], eax
add edx, ecx
cmp dword [ebp - 0x94], eax
ja 0x4eaad2
jmp 0x4eaaee
mov edi, eax
mov dword [ebp - 0x6c], eax
test esi, esi
je 0x4ec136
mov edx, eax
mov eax, dword [ebp - 0x20]
shl edx, 3
mov ecx, dword [eax]
add ecx, edx
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
movaps xmm1, xmm0
mov ecx, dword [ecx + 4]
add ecx, edx
call fcn.004f0928
movaps xmm2, xmm0
ucomiss xmm2, dword [0x1020a750]
lahf
test ah, 0x44
jp 0x4eab4e
ucomiss xmm1, dword [0x1020a750]
lahf
test ah, 0x44
jp 0x4eab4e
mov dl, byte [ebp - 0x75]
lea ecx, [ebp - 0x30]
push edi
push dword [ebp - 0x84]
push dword [ebp - 0x7c]
call fcn.004e5aa4
add esp, 0xc
jmp 0x4eab86
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
movsd qword [ebp - 0x90], xmm0
xorps xmm0, xmm0
fld qword [ebp - 0x90]
cvtss2sd xmm0, xmm2
movsd qword [ebp - 0x90], xmm0
fld qword [ebp - 0x90]
call fcn.00533590
fstp dword [edi]
mov dword [edi + 4], 1
mov eax, dword [ebp - 0x70]
add edi, 8
inc eax
mov dword [ebp - 0x70], eax
cmp eax, esi
jb 0x4eaaf6
jmp 0x4ec136
sub eax, 0x3e
je 0x4eb255
sub eax, 0xf
je 0x4eb16a
dec eax
sub eax, 1
je 0x4eb065
sub eax, 1
je 0x4eaf60
sub eax, 1
je 0x4ead81
sub eax, 1
jne 0x4ec13c
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, dword [ebp - 0x74]
mov esi, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eac20
mov edx, edi
mov ecx, esi
test edi, edi
je 0x4ec136
xor eax, eax
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4eac11
jmp 0x4eac25
xor esi, esi
mov dword [ebp - 0x6c], esi
test edi, edi
je 0x4ec136
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x78]
mov edx, dword [ebp - 0x70]
mov ecx, edx
cmp dword [eax], 1
mov eax, dword [ebp - 0x20]
jne 0x4eacad
mov ecx, dword [eax]
mov eax, edx
shl eax, 3
add ecx, eax
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
mov eax, edx
shl eax, 3
movaps xmm3, xmm0
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.004f0928
mov eax, dword [ebp - 0x20]
movaps xmm2, xmm0
mov ecx, dword [eax + 8]
mov eax, edx
shl eax, 3
add ecx, eax
call fcn.004f0928
movss xmm1, dword [0x1020a79c]
mov eax, edx
subss xmm1, xmm0
mulss xmm0, xmm2
mulss xmm1, xmm3
addss xmm1, xmm0
movss dword [esi + eax*8], xmm1
jmp 0x4ead68
mov eax, dword [eax + 8]
mov al, byte [eax + ecx*8]
mov byte [ebp - 0x75], al
mov eax, dword [ebp - 0x7c]
sub eax, 1
je 0x4ead32
dec eax
sub eax, 1
je 0x4ead0f
sub eax, 1
je 0x4eacf2
sub eax, 1
jne 0x4ead70
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x20]
cmp byte [ebp - 0x75], 0
mov eax, dword [eax]
cmovne eax, dword [edi + 4]
mov al, byte [eax + ecx*8]
mov byte [esi + ecx*8], al
mov dword [esi + ecx*8 + 4], 5
jmp 0x4ead2d
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x20]
cmp byte [ebp - 0x75], 0
mov eax, dword [eax]
cmovne eax, dword [edi + 4]
mov eax, dword [eax + ecx*8]
mov dword [esi + ecx*8 + 4], 4
jmp 0x4ead2a
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x20]
cmp byte [ebp - 0x75], 0
mov eax, dword [eax]
cmovne eax, dword [edi + 4]
mov eax, dword [eax + ecx*8]
mov dword [esi + ecx*8 + 4], 3
mov dword [esi + ecx*8], eax
mov edi, dword [ebp - 0x74]
jmp 0x4ead70
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov eax, edx
shl eax, 3
add ecx, eax
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
mov eax, edx
shl eax, 3
movaps xmm1, xmm0
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.004f0928
cmp byte [ebp - 0x75], 0
jne 0x4ead61
movaps xmm0, xmm1
mov eax, edx
movss dword [esi + eax*8], xmm0
mov dword [esi + eax*8 + 4], 1
inc edx
mov dword [ebp - 0x70], edx
cmp edx, edi
jb 0x4eac2d
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, dword [ebp - 0x74]
mov esi, eax
xor edx, edx
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eadcb
mov ecx, edi
test edi, edi
je 0x4ec136
mov dword [eax], edx
lea eax, [eax + 8]
mov dword [eax - 4], edx
sub ecx, 1
jne 0x4eadbc
jmp 0x4eadd0
mov esi, edx
mov dword [ebp - 0x6c], edx
test edi, edi
je 0x4ec136
mov eax, dword [ebp - 0x7c]
mov ecx, eax
sub ecx, 1
je 0x4eaece
dec ecx
sub ecx, 1
je 0x4eae72
sub ecx, 1
jne 0x4eaf4f
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x94], eax
mov eax, dword [ecx + 4]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x8c], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x8c]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x80], eax
cmp ecx, eax
jbe 0x4eae48
lea eax, [esi + edx*8]
push eax
push dword [ebp - 0x84]
push 4
mov dl, byte [ebp - 0x75]
lea ecx, [ebp - 0x30]
call fcn.004e5aa4
mov edx, dword [ebp - 0x70]
add esp, 0xc
jmp 0x4eaf4c
mov eax, dword [ebp - 0x94]
mov edi, dword [ebp - 0x80]
cmp eax, edi
mov dword [esi + edx*8 + 4], 4
cmova eax, edi
cmp dword [ebp - 0x94], ecx
cmova ecx, eax
mov edi, dword [ebp - 0x74]
mov dword [esi + edx*8], ecx
jmp 0x4eaf4c
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x80], eax
mov eax, dword [ecx + 4]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x8c], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x8c]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x94], eax
cmp ecx, eax
jle 0x4eaead
lea eax, [esi + edx*8]
push eax
push dword [ebp - 0x84]
push 3
jmp 0x4eae32
mov eax, dword [ebp - 0x80]
mov edi, eax
cmp edi, dword [ebp - 0x94]
mov dword [esi + edx*8 + 4], 3
cmovg eax, dword [ebp - 0x94]
cmp edi, ecx
cmovg ecx, eax
jmp 0x4eae67
mov eax, edx
shl eax, 3
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov eax, edx
shl eax, 3
add ecx, eax
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
mov eax, edx
shl eax, 3
movaps xmm2, xmm0
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.004f0928
mov eax, dword [ebp - 0x20]
movaps xmm1, xmm0
mov ecx, dword [eax + 8]
mov eax, edx
shl eax, 3
add ecx, eax
call fcn.004f0928
comiss xmm1, xmm0
jbe 0x4eaf2f
mov eax, dword [ebp - 0x8c]
add eax, esi
push eax
push dword [ebp - 0x84]
push 1
jmp 0x4eae32
comiss xmm2, xmm1
jbe 0x4eaf3a
minss xmm0, xmm2
jmp 0x4eaf3d
movaps xmm0, xmm1
mov eax, edx
movss dword [esi + eax*8], xmm0
mov dword [esi + eax*8 + 4], 1
mov eax, dword [ebp - 0x7c]
inc edx
mov dword [ebp - 0x70], edx
cmp edx, edi
jb 0x4eaddb
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edi
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov esi, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eafa9
mov edx, dword [ebp - 0x74]
mov ecx, edx
test edx, edx
je 0x4eafa5
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
add eax, edi
sub ecx, 1
jne 0x4eaf97
jmp 0x4eafb0
xor edx, edx
jmp 0x4eafb0
xor edx, edx
mov esi, edx
mov dword [ebp - 0x6c], edx
mov edi, dword [ebp - 0x74]
test edi, edi
je 0x4ec136
mov eax, dword [ebp - 0x7c]
mov ecx, eax
sub ecx, 1
je 0x4eb01e
dec ecx
sub ecx, 1
je 0x4eaffc
sub ecx, 1
jne 0x4eb054
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x70]
mov eax, dword [ecx + 4]
mov edx, dword [eax + edx*8]
mov eax, dword [ecx]
mov eax, dword [eax + edi*8]
cmp eax, edx
cmovb eax, edx
mov edx, edi
mov dword [esi + edx*8 + 4], 4
mov edi, dword [ebp - 0x74]
mov dword [esi + edx*8], eax
jmp 0x4eb051
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x70]
mov eax, dword [ecx + 4]
mov edx, dword [eax + edx*8]
mov eax, dword [ecx]
mov eax, dword [eax + edi*8]
cmp eax, edx
cmovl eax, edx
mov edx, edi
mov dword [esi + edx*8 + 4], 3
jmp 0x4eaff4
mov ecx, dword [ebp - 0x20]
shl edx, 3
mov ecx, dword [ecx + 4]
add ecx, edx
call fcn.004f0928
mov eax, dword [ebp - 0x20]
movaps xmm1, xmm0
mov ecx, dword [eax]
add ecx, edx
call fcn.004f0928
maxss xmm1, xmm0
mov dword [edx + esi + 4], 1
movss dword [edx + esi], xmm1
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
inc edx
mov dword [ebp - 0x70], edx
cmp edx, edi
jb 0x4eafbe
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edi
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov esi, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eb0ae
mov edx, dword [ebp - 0x74]
mov ecx, edx
test edx, edx
je 0x4eb0aa
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
add eax, edi
sub ecx, 1
jne 0x4eb09c
jmp 0x4eb0b5
xor edx, edx
jmp 0x4eb0b5
xor edx, edx
mov esi, edx
mov dword [ebp - 0x6c], edx
mov edi, dword [ebp - 0x74]
test edi, edi
je 0x4ec136
mov eax, dword [ebp - 0x7c]
mov ecx, eax
sub ecx, 1
je 0x4eb123
dec ecx
sub ecx, 1
je 0x4eb101
sub ecx, 1
jne 0x4eb159
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x70]
mov eax, dword [ecx + 4]
mov edx, dword [eax + edx*8]
mov eax, dword [ecx]
mov eax, dword [eax + edi*8]
cmp edx, eax
cmovb eax, edx
mov edx, edi
mov dword [esi + edx*8 + 4], 4
mov edi, dword [ebp - 0x74]
mov dword [esi + edx*8], eax
jmp 0x4eb156
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x70]
mov eax, dword [ecx + 4]
mov edx, dword [eax + edx*8]
mov eax, dword [ecx]
mov eax, dword [eax + edi*8]
cmp edx, eax
cmovl eax, edx
mov edx, edi
mov dword [esi + edx*8 + 4], 3
jmp 0x4eb0f9
mov ecx, dword [ebp - 0x20]
shl edx, 3
mov ecx, dword [ecx + 4]
add ecx, edx
call fcn.004f0928
mov eax, dword [ebp - 0x20]
movaps xmm1, xmm0
mov ecx, dword [eax]
add ecx, edx
call fcn.004f0928
minss xmm1, xmm0
mov dword [edx + esi + 4], 1
movss dword [edx + esi], xmm1
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x7c]
inc edx
mov dword [ebp - 0x70], edx
cmp edx, edi
jb 0x4eb0c3
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, eax
xor eax, eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x8c], edi
test edi, edi
je 0x4eb1b3
mov edx, esi
mov ecx, edi
test esi, esi
je 0x4ec136
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4eb1a4
jmp 0x4eb1b8
mov edi, eax
mov dword [ebp - 0x6c], eax
test esi, esi
je 0x4ec136
mov esi, eax
mov eax, dword [ebp - 0x20]
shl esi, 3
mov ecx, dword [eax]
add ecx, esi
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
movaps xmm1, xmm0
movss dword [ebp - 0x80], xmm1
mov ecx, dword [ecx + 4]
add ecx, esi
call fcn.004f0928
divss xmm1, xmm0
push ecx
push ecx
movss dword [ebp - 0x8c], xmm0
cvtss2sd xmm1, xmm1
movsd qword [ebp - 0x98], xmm1
fld qword [ebp - 0x98]
fstp qword [esp]
call fcn.00535af0
movss xmm1, dword [ebp - 0x80]
mov eax, dword [ebp - 0x70]
fstp qword [ebp - 0x98]
movsd xmm0, qword [ebp - 0x98]
inc eax
cvtpd2ps xmm0, xmm0
pop ecx
pop ecx
mov dword [esi + edi + 4], 1
mov dword [ebp - 0x70], eax
mulss xmm0, dword [ebp - 0x8c]
subss xmm1, xmm0
movss dword [esi + edi], xmm1
cmp eax, dword [ebp - 0x74]
jb 0x4eb1c0
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, eax
xor eax, eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x8c], edi
test edi, edi
je 0x4eb29e
mov edx, esi
mov ecx, edi
test esi, esi
je 0x4ec136
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4eb28f
jmp 0x4eb2a3
mov edi, eax
mov dword [ebp - 0x6c], eax
test esi, esi
je 0x4ec136
mov edx, eax
mov eax, dword [ebp - 0x20]
shl edx, 3
mov ecx, dword [eax]
add ecx, edx
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
movaps xmm1, xmm0
mov ecx, dword [ecx + 4]
add ecx, edx
call fcn.004f0928
movaps xmm2, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
ja 0x4eb309
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x4eb2e5
comiss xmm0, xmm2
jae 0x4eb309
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
xorps xmm1, xmm1
cvtss2sd xmm1, xmm2
call fcn.00534a60
cvtsd2ss xmm0, xmm0
mov dword [edi + 4], 1
movss dword [edi], xmm0
jmp 0x4eb321
mov dl, byte [ebp - 0x75]
lea ecx, [ebp - 0x30]
push edi
push dword [ebp - 0x84]
push dword [ebp - 0x7c]
call fcn.004e5aa4
add esp, 0xc
mov eax, dword [ebp - 0x70]
add edi, 8
inc eax
mov dword [ebp - 0x70], eax
cmp eax, esi
jb 0x4eb2ab
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, eax
xor eax, eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x8c], edi
test edi, edi
je 0x4eb381
mov edx, esi
mov ecx, edi
test esi, esi
je 0x4ec136
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4eb372
jmp 0x4eb386
mov edi, eax
mov dword [ebp - 0x6c], eax
test esi, esi
je 0x4ec136
mov edx, dword [ebp - 0x20]
shl eax, 3
mov dword [ebp - 0x8c], eax
mov ecx, dword [edx + 4]
add ecx, eax
call fcn.004f0928
mov ecx, dword [edx]
movaps xmm1, xmm0
mov edx, dword [ebp - 0x8c]
add ecx, edx
call fcn.004f0928
comiss xmm0, xmm1
jbe 0x4eb3c0
xorps xmm0, xmm0
jmp 0x4eb3c8
movss xmm0, dword [0x1020a79c]
mov eax, dword [ebp - 0x70]
inc eax
movss dword [edx + edi], xmm0
mov dword [edx + edi + 4], 1
mov dword [ebp - 0x70], eax
cmp eax, esi
jb 0x4eb38e
jmp 0x4ec136
cmp eax, 0x6d
ja 0x4eb9c1
je 0x4eb8f5
sub eax, 0x54
je 0x4eb7ed
sub eax, 3
je 0x4eb744
sub eax, 6
je 0x4eb64e
sub eax, 0xc
je 0x4eb55d
sub eax, 1
je 0x4eb522
sub eax, 1
jne 0x4ec13c
xor ecx, ecx
mov eax, esi
push 8
pop edi
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov esi, eax
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eb46c
mov ecx, dword [ebp - 0x74]
mov edx, esi
test ecx, ecx
je 0x4eb46e
xor eax, eax
mov dword [edx], eax
mov dword [edx + 4], eax
add edx, edi
sub ecx, 1
jne 0x4eb45e
jmp 0x4eb46e
xor esi, esi
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx]
call fcn.004f0928
mov eax, dword [ebp - 0x20]
movss dword [ebp - 0x8c], xmm0
mov ecx, dword [eax]
add ecx, edi
call fcn.004f0928
mov eax, dword [ebp - 0x20]
movaps xmm7, xmm0
mov ecx, dword [eax]
add ecx, 0x10
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
movaps xmm5, xmm0
mov ecx, dword [ecx + 4]
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
movaps xmm6, xmm0
mov ecx, dword [ecx + 4]
add ecx, edi
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
movaps xmm4, xmm0
mov ecx, dword [ecx + 4]
add ecx, 0x10
call fcn.004f0928
movaps xmm3, xmm0
movaps xmm1, xmm4
mulss xmm4, dword [ebp - 0x8c]
movaps xmm2, xmm3
xor eax, eax
mulss xmm3, dword [ebp - 0x8c]
movaps xmm0, xmm6
inc eax
mulss xmm2, xmm7
mov dword [esi + 4], eax
mulss xmm1, xmm5
mov dword [esi + 0xc], eax
mulss xmm0, xmm5
mov dword [esi + 0x14], eax
mulss xmm6, xmm7
subss xmm2, xmm1
subss xmm0, xmm3
subss xmm4, xmm6
movss dword [esi], xmm2
movss dword [esi + 8], xmm0
movss dword [esi + 0x10], xmm4
jmp 0x4ec139
push 8
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov esi, eax
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eb545
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
jmp 0x4eb547
xor esi, esi
mov ecx, dword [ebp - 0x20]
push dword [ebp - 0x74]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.004e5b0f
pop ecx
jmp 0x4eb63e
xor ecx, ecx
mov eax, esi
push 8
pop edi
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov dword [ebp - 0x80], eax
test eax, eax
je 0x4eb599
mov edx, esi
mov ecx, eax
test esi, esi
je 0x4eb59d
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
add ecx, edi
sub edx, 1
jne 0x4eb58b
jmp 0x4eb59d
and dword [ebp - 0x80], 0
push edi
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov esi, eax
xor eax, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eb5c2
mov dword [esi], eax
mov dword [esi + 4], eax
jmp 0x4eb5c7
mov esi, eax
mov dword [ebp - 0x6c], eax
mov edi, dword [ebp - 0x74]
test edi, edi
je 0x4eb62b
mov edx, eax
mov eax, dword [ebp - 0x20]
shl edx, 3
mov ecx, dword [eax]
add ecx, edx
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
movaps xmm1, xmm0
mov ecx, dword [ecx + 4]
add ecx, edx
call fcn.004f0928
mov ecx, dword [ebp - 0x80]
subss xmm1, xmm0
mov eax, dword [ebp - 0x70]
inc eax
mov dword [ebp - 0x70], eax
mov dword [ecx + edx + 4], 1
movss dword [ecx + edx], xmm1
cmp eax, edi
jb 0x4eb5ce
xorps xmm1, xmm1
call fcn.004f0928
mulss xmm0, xmm0
add ecx, 8
addss xmm1, xmm0
sub edi, 1
jne 0x4eb611
mov esi, dword [ebp - 0x6c]
jmp 0x4eb62e
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
call fcn.00535780
cvtsd2ss xmm0, xmm0
movss dword [esi], xmm0
mov dword [esi + 4], 1
jmp 0x4ec139
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, dword [ebp - 0x74]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eb69a
mov edx, edi
mov ecx, esi
test edi, edi
je 0x4ec139
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4eb68b
jmp 0x4eb69f
mov esi, eax
mov dword [ebp - 0x6c], eax
test edi, edi
je 0x4ec139
mov dword [ebp - 0x8c], esi
mov edx, eax
mov eax, dword [ebp - 0x20]
shl edx, 3
mov ecx, dword [eax]
add ecx, edx
call fcn.004f0928
mov eax, dword [ebp - 0x20]
movss dword [ebp - 0x8c], xmm0
mov eax, dword [eax + 4]
mov eax, dword [edx + eax]
cmp eax, 0x80
jle 0x4eb6f0
mov dl, byte [ebp - 0x75]
lea ecx, [ebp - 0x30]
push esi
push dword [ebp - 0x84]
push dword [ebp - 0x7c]
call fcn.004e5aa4
add esp, 0xc
jmp 0x4eb72d
cmp eax, 0xffffff82
jge 0x4eb6fa
xorps xmm0, xmm0
jmp 0x4eb722
movsd xmm0, qword [0x1020a7c0]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
call fcn.00534a60
movss xmm1, dword [ebp - 0x8c]
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [esi], xmm0
mov dword [esi + 4], 1
mov eax, dword [ebp - 0x70]
add esi, 8
inc eax
mov dword [ebp - 0x70], eax
cmp eax, edi
jb 0x4eb6ad
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, dword [ebp - 0x74]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eb78d
mov edx, edi
mov ecx, esi
test edi, edi
je 0x4ec139
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4eb77e
jmp 0x4eb78f
mov esi, eax
test edi, edi
je 0x4ec139
mov edx, eax
mov eax, dword [ebp - 0x20]
shl edx, 3
mov ecx, dword [eax]
add ecx, edx
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
movaps xmm2, xmm0
mov ecx, dword [ecx + 4]
add ecx, edx
call fcn.004f0928
mov eax, dword [ebp - 0x20]
movaps xmm1, xmm0
mov ecx, dword [eax + 8]
add ecx, edx
call fcn.004f0928
mov eax, dword [ebp - 0x70]
mulss xmm1, xmm2
inc eax
mov dword [esi + edx + 4], 1
mov dword [ebp - 0x70], eax
addss xmm0, xmm1
movss dword [esi + edx], xmm0
cmp eax, edi
jb 0x4eb797
jmp 0x4ec139
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, dword [ebp - 0x74]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eb836
mov edx, edi
mov ecx, esi
test edi, edi
je 0x4ec139
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4eb827
jmp 0x4eb838
mov esi, eax
test edi, edi
je 0x4ec139
mov edx, eax
mov eax, dword [ebp - 0x20]
shl edx, 3
mov ecx, dword [eax]
add ecx, edx
call fcn.004f0928
mov ecx, dword [ebp - 0x20]
movaps xmm2, xmm0
mov ecx, dword [ecx + 4]
add ecx, edx
call fcn.004f0928
mov eax, dword [ebp - 0x20]
movaps xmm1, xmm0
mov ecx, dword [eax + 8]
add ecx, edx
call fcn.004f0928
comiss xmm2, xmm1
jb 0x4eb893
lea eax, [esi + edx]
mov dl, byte [ebp - 0x75]
push eax
push dword [ebp - 0x84]
lea ecx, [ebp - 0x30]
push dword [ebp - 0x7c]
call fcn.004e5aa4
add esp, 0xc
jmp 0x4eb8e1
subss xmm0, xmm2
subss xmm1, xmm2
divss xmm0, xmm1
comiss xmm0, dword [0x1020a750]
jbe 0x4eb8b6
movss xmm2, dword [0x1020a79c]
minss xmm2, xmm0
jmp 0x4eb8b9
xorps xmm2, xmm2
movss xmm1, dword [0x1020a7e8]
movaps xmm0, xmm2
addss xmm0, xmm2
mov dword [esi + edx + 4], 1
mulss xmm2, xmm2
subss xmm1, xmm0
mulss xmm1, xmm2
movss dword [esi + edx], xmm1
mov eax, dword [ebp - 0x70]
inc eax
mov dword [ebp - 0x70], eax
cmp eax, edi
jb 0x4eb840
jmp 0x4ec139
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, dword [ebp - 0x74]
mov esi, eax
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eb93a
mov edx, edi
mov ecx, esi
test edi, edi
je 0x4eb93c
xor eax, eax
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4eb92b
jmp 0x4eb93c
xor esi, esi
mov ecx, dword [ebp - 0x20]
push edi
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
call fcn.004e5b0f
pop ecx
test edi, edi
je 0x4ec139
xorps xmm1, xmm1
xor eax, eax
comiss xmm1, xmm0
jbe 0x4eb98c
mov edx, eax
mov eax, dword [ebp - 0x20]
shl edx, 3
mov ecx, dword [eax]
add ecx, edx
call fcn.004f0928
mov eax, dword [ebp - 0x70]
inc eax
movss dword [edx + esi], xmm0
mov dword [edx + esi + 4], 1
mov dword [ebp - 0x70], eax
cmp eax, edi
jb 0x4eb95e
jmp 0x4ec139
mov edx, eax
mov eax, dword [ebp - 0x20]
shl edx, 3
mov ecx, dword [eax]
add ecx, edx
call fcn.004f0928
mov eax, dword [ebp - 0x70]
xorps xmm0, xmmword [0x1020ab20]
inc eax
movss dword [edx + esi], xmm0
mov dword [edx + esi + 4], 1
mov dword [ebp - 0x70], eax
cmp eax, edi
jb 0x4eb98c
jmp 0x4ec139
sub eax, 0x6e
je 0x4ec087
sub eax, 1
je 0x4ebf1a
sub eax, 4
je 0x4ebe19
sub eax, 1
je 0x4ebd13
sub eax, 7
je 0x4ebb7c
sub eax, 1
jne 0x4ec13c
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov esi, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4eba3f
mov eax, dword [ebp - 0x74]
mov ecx, esi
mov edx, eax
test eax, eax
je 0x4eba46
xor eax, eax
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4eba30
jmp 0x4eba44
xor esi, esi
mov dword [ebp - 0x6c], esi
xor edi, edi
cmp dword [ebp - 0x74], 0
jbe 0x4ec139
mov dword [ebp - 0x7c], esi
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 8]
mov edx, dword [eax]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x80], edx
mov ecx, dword [eax]
test ecx, ecx
jne 0x4eba95
mov esi, dword [ebp - 0xa0]
mov ecx, esi
mov eax, dword [esi]
call dword [eax + 0x78]
mov edx, dword [ebp - 0x7c]
cmp dword [eax], 3
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov eax, dword [eax + edi*8]
mov dword [edx], eax
jne 0x4eba8a
push 3
jmp 0x4eba8c
push 4
pop eax
mov dword [edx + 4], eax
jmp 0x4ebb5d
test edx, edx
js 0x4ebb38
test ecx, ecx
js 0x4ebb38
cmp edx, 0x20
jge 0x4ebb38
cmp ecx, 0x20
jg 0x4ebb38
lea eax, [ecx + edx]
cmp eax, 0x20
jg 0x4ebb38
xor eax, eax
dec ecx
inc eax
shl eax, cl
mov ecx, edx
lea esi, [eax - 1]
or esi, eax
shl esi, cl
mov ecx, dword [ebp - 0xa0]
mov eax, esi
not eax
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x9c], eax
mov eax, dword [ecx]
call dword [eax + 0x78]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x80]
cmp dword [eax], 3
mov eax, dword [edx + 4]
mov esi, dword [eax + edi*8]
mov eax, dword [edx]
mov edx, dword [ebp - 0x7c]
mov eax, dword [eax + edi*8]
jne 0x4ebb1d
and eax, dword [ebp - 0x9c]
shl esi, cl
and esi, dword [ebp - 0x94]
or esi, eax
mov dword [edx + 4], 3
mov dword [edx], esi
jmp 0x4ebb5d
and eax, dword [ebp - 0x9c]
shl esi, cl
and esi, dword [ebp - 0x94]
or esi, eax
mov dword [edx + 4], 4
mov dword [edx], esi
jmp 0x4ebb5d
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ecx]
call dword [eax + 0x78]
mov dl, byte [ebp - 0x75]
lea ecx, [ebp - 0x30]
push esi
push dword [ebp - 0x84]
push dword [eax]
call fcn.004e5aa4
mov edx, dword [ebp - 0x7c]
add esp, 0xc
mov eax, dword [ebp - 0x70]
add edx, 8
inc eax
mov dword [ebp - 0x7c], edx
mov edi, eax
mov dword [ebp - 0x70], eax
mov esi, edx
cmp eax, dword [ebp - 0x74]
jb 0x4eba53
jmp 0x4ec136
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, dword [ebp - 0x74]
mov esi, eax
xor eax, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4ebbc4
mov edx, edi
mov ecx, esi
test edi, edi
je 0x4ebbc9
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4ebbb5
jmp 0x4ebbc9
mov esi, eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x9c], eax
test edi, edi
je 0x4ec139
push 3
mov dword [ebp - 0x7c], esi
pop esi
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 4]
mov edx, dword [eax]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x70], edx
mov ecx, dword [eax]
mov dword [ebp - 0x94], ecx
test ecx, ecx
jne 0x4ebc1b
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ecx]
call dword [eax + 0x78]
mov edx, dword [ebp - 0x7c]
cmp dword [eax], esi
jne 0x4ebc0d
mov eax, esi
jmp 0x4ebc10
push 4
pop eax
and dword [edx], 0
mov dword [edx + 4], eax
jmp 0x4ebcf3
test edx, edx
js 0x4ebccc
test ecx, ecx
js 0x4ebccc
cmp edx, 0x20
jge 0x4ebccc
cmp ecx, 0x20
jg 0x4ebccc
lea eax, [ecx + edx]
cmp eax, 0x20
jg 0x4ebccc
xor eax, eax
dec ecx
inc eax
shl eax, cl
mov ecx, edx
mov dword [ebp - 0x80], eax
dec eax
or eax, dword [ebp - 0x80]
shl eax, cl
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x74], eax
mov eax, dword [ecx]
call dword [eax + 0x78]
mov ecx, dword [ebp - 0x9c]
cmp dword [eax], esi
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
jne 0x4ebcb3
mov edx, dword [eax + ecx*8]
and edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
shr edx, cl
mov dword [ebp - 0x74], edx
test dword [ebp - 0x80], edx
je 0x4ebca6
xor eax, eax
push 0x20
inc eax
pop ecx
sub ecx, dword [ebp - 0x94]
shl eax, cl
mov ecx, dword [ebp - 0x94]
dec eax
shl eax, cl
or edx, eax
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x74]
mov dword [edx], eax
mov dword [edx + 4], esi
jmp 0x4ebcf3
mov eax, dword [eax + ecx*8]
mov edx, dword [ebp - 0x7c]
and eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
shr eax, cl
mov dword [edx], eax
mov dword [edx + 4], 4
jmp 0x4ebcf3
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ecx]
call dword [eax + 0x78]
push dword [ebp - 0x7c]
mov dl, byte [ebp - 0x75]
lea ecx, [ebp - 0x30]
push dword [ebp - 0x84]
push dword [eax]
call fcn.004e5aa4
mov edx, dword [ebp - 0x7c]
add esp, 0xc
mov eax, dword [ebp - 0x9c]
add edx, 8
inc eax
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x9c], eax
cmp eax, edi
jb 0x4ebbdd
jmp 0x4ec136
mov esi, dword [ebp - 0x9c]
mov eax, dword [esi]
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x78]
mov ecx, eax
call fcn.004ef8cb
mov ecx, dword [esi]
mov edi, eax
mov dword [ebp - 0x94], edi
mov ecx, dword [ecx + 4]
mov edx, dword [ecx]
call dword [edx + 0xc]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x78]
mov ecx, eax
call fcn.004ef8cb
mov dword [ebp - 0x80], eax
xor ecx, ecx
imul eax, edi
push 8
pop esi
mov dword [ebp - 0x8c], eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x9c], edi
test edi, edi
je 0x4ebda0
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
je 0x4ebda5
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
add edi, esi
sub ecx, 1
jne 0x4ebd92
jmp 0x4ebda5
xor edi, edi
mov dword [ebp - 0x6c], edi
mov edx, dword [ebp - 0x20]
lea edi, [ebp - 0x34]
push dword [ebp - 0x80]
xor eax, eax
lea ecx, [ebp - 0x54]
stosd dword es:[edi], eax
push 1
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edx, dword [edx + 4]
call fcn.004e5ba9
mov esi, eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x68]
mov edx, dword [ebp - 0x20]
push 1
push dword [ebp - 0x94]
mov edx, dword [edx]
call fcn.004e5ba9
add esp, 0x10
push esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 6
push ecx
mov ecx, eax
call fcn.004eeb0c
lea ecx, [ebp - 0x68]
call fcn.004051c0
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 9
call fcn.004051c0
mov esi, dword [ebp - 0x6c]
lea ecx, [ebp - 0x34]
mov edx, esi
call fcn.004e5d0d
lea ecx, [ebp - 0x34]
jmp 0x4ebf10
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, eax
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x8c], edi
test edi, edi
je 0x4ebe5a
test esi, esi
je 0x4ebe5f
xor eax, eax
mov dword [edi], eax
lea edi, [edi + 8]
mov dword [edi - 4], eax
sub esi, 1
jne 0x4ebe4b
jmp 0x4ebe5f
xor edi, edi
mov dword [ebp - 0x6c], edi
mov esi, dword [ebp - 0x9c]
mov eax, dword [esi]
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x78]
movzx eax, byte [eax + 0x71]
mov dword [ebp - 0x80], eax
mov eax, dword [esi]
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x78]
mov edx, dword [ebp - 0x20]
lea edi, [ebp - 0x68]
lea ecx, [ebp - 0x68]
movzx esi, byte [eax + 0x70]
xor eax, eax
stosd dword es:[edi], eax
push esi
push dword [ebp - 0x80]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edx, dword [edx]
call fcn.004e5ba9
mov byte [ebp - 4], 2
lea edi, [ebp - 0x54]
mov edx, dword [ebp - 0x20]
lea ecx, [ebp - 0x54]
xor eax, eax
stosd dword es:[edi], eax
push esi
push dword [ebp - 0x80]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edx, dword [edx + 4]
call fcn.004e5ba9
add esp, 0x10
xor eax, eax
mov byte [ebp - 4], 3
lea edi, [ebp - 0x34]
stosd dword es:[edi], eax
lea ecx, [ebp - 0x68]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.004eebd3
mov esi, dword [ebp - 0x6c]
lea ecx, [ebp - 0x34]
mov edx, esi
mov byte [ebp - 4], 4
call fcn.004e5d0d
lea ecx, [ebp - 0x34]
call fcn.004051c0
lea ecx, [ebp - 0x54]
call fcn.004051c0
lea ecx, [ebp - 0x68]
call fcn.004051c0
jmp 0x4ec139
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, dword [ebp - 0x74]
mov esi, eax
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4ebf5f
mov edx, edi
mov ecx, esi
test edi, edi
je 0x4ebf61
xor eax, eax
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4ebf50
jmp 0x4ebf61
xor esi, esi
mov ecx, dword [ebp - 0x20]
push edi
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
call fcn.004e5b0f
movss dword [ebp - 0x80], xmm0
pop ecx
test edi, edi
je 0x4ec139
movss xmm5, dword [0x1020a79c]
movaps xmm1, xmm0
mulss xmm1, xmm0
movaps xmm3, xmm5
xor eax, eax
xorps xmm4, xmm4
subss xmm3, xmm1
movss dword [ebp - 0x84], xmm3
mov edx, eax
mov eax, dword [ebp - 0x20]
shl edx, 3
mov dword [ebp - 0x94], edx
mov ecx, dword [eax + 8]
add ecx, edx
call fcn.004f0928
movaps xmm2, xmm0
movaps xmm1, xmm2
movss dword [ebp - 0x8c], xmm2
mulss xmm1, xmm2
mulss xmm1, xmm3
movaps xmm3, xmm5
subss xmm3, xmm1
comiss xmm4, xmm3
jbe 0x4ebfdf
movaps xmm1, xmm4
jmp 0x4ec05e
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
add ecx, dword [ebp - 0x94]
call fcn.004f0928
mov ecx, dword [edx + 4]
add ecx, dword [ebp - 0x94]
mulss xmm0, xmm2
movss dword [ebp - 0xa0], xmm0
call fcn.004f0928
movss dword [ebp - 0x9c], xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm3
call fcn.00535780
movss xmm5, dword [0x1020a79c]
xorps xmm1, xmm1
mov edx, dword [ebp - 0x94]
xorps xmm4, xmm4
cvtsd2ss xmm1, xmm0
movss xmm0, dword [ebp - 0x8c]
mulss xmm0, dword [ebp - 0x80]
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x9c]
mulss xmm0, xmm1
movss xmm1, dword [ebp - 0xa0]
subss xmm1, xmm0
mov eax, dword [ebp - 0x70]
movss xmm3, dword [ebp - 0x84]
inc eax
movss dword [edx + esi], xmm1
mov dword [edx + esi + 4], 1
mov dword [ebp - 0x70], eax
cmp eax, edi
jb 0x4ebfa0
jmp 0x4ec139
xor ecx, ecx
mov eax, esi
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004bbecf
mov ecx, eax
call fcn.004ff2b1
mov edi, dword [ebp - 0x74]
mov esi, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x8c], esi
test esi, esi
je 0x4ec0cf
mov edx, edi
mov ecx, esi
test edi, edi
je 0x4ec0d4
xor eax, eax
mov dword [ecx], eax
lea ecx, [ecx + 8]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x4ec0c0
jmp 0x4ec0d4
xor esi, esi
mov dword [ebp - 0x6c], esi
mov ecx, dword [ebp - 0x20]
push edi
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
call fcn.004e5b0f
movaps xmm2, xmm0
pop ecx
test edi, edi
je 0x4ec139
mulss xmm2, dword [0x1020a7b8]
xor eax, eax
mov edi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x20]
mov esi, eax
shl esi, 3
mov ecx, dword [edx]
add ecx, esi
call fcn.004f0928
mov ecx, dword [edx + 4]
movaps xmm1, xmm0
add ecx, esi
call fcn.004f0928
mov eax, dword [ebp - 0x70]
mulss xmm0, xmm2
inc eax
mov dword [esi + edi + 4], 1
mov dword [ebp - 0x70], eax
subss xmm1, xmm0
movss dword [esi + edi], xmm1
cmp eax, dword [ebp - 0x74]
jb 0x4ec0f7
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0x70], esi
lea ecx, [ebp - 0x40]
call fcn.004051c0
lea ecx, [ebp - 0x20]
call fcn.004051c0
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x14]
call fcn.0053321f
ret
call fcn.004031a2
int3