Function at 0x10016e60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10031eb1
mov eax, dword fs:[0]
push eax
sub esp, 0x4d4
mov eax, dword [0x1003a008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [ebp - 0x4e0]
call fcn.1001bb30
push 0x10037c8c
lea ecx, [ebp - 0x480]
mov dword [ebp - 4], 0
call fcn.1000a2a0
push 0x10037c06
lea ecx, [ebp - 0x4ac]
mov byte [ebp - 4], 1
call fcn.1000a340
push 0x10037c06
lea ecx, [ebp - 0x4c4]
mov byte [ebp - 4], 2
call fcn.1000a340
push 0x100
lea eax, [ebp - 0x3d0]
mov byte [ebp - 4], 3
push 0
push eax
call fcn.1001fb10
movsd xmm0, qword [0x10037db8]
add esp, 0xc
movsd qword [0x1003a920], xmm0
mov ecx, esi
movsd xmm0, qword [0x10037dd8]
movsd qword [0x1003a910], xmm0
movsd xmm0, qword [0x10037dc0]
movsd qword [0x1003a928], xmm0
movsd xmm0, qword [0x10037db0]
push 0
push 0x10037d70
movsd qword [0x1003a918], xmm0
call fcn.1001b6c0
mov ecx, dword [esi + 0x10]
mov edi, eax
add ecx, 0x10
push ecx
push 1
call fcn.100215c0
movsd xmm1, qword [0x1003a928]
add esp, 8
movsd xmm2, qword [0x1003a918]
movaps xmm3, xmm1
mulsd xmm3, qword [0x1003a910]
movaps xmm4, xmm2
mov dword [ebp - 0x4d4], eax
mulsd xmm4, xmm1
addsd xmm3, qword [0x1003a920]
addsd xmm4, qword [0x1003a910]
movsd qword [0x1003a920], xmm3
movaps xmm6, xmm3
mulsd xmm6, xmm2
movsd qword [0x1003a910], xmm4
movaps xmm5, xmm4
mulsd xmm5, xmm3
addsd xmm6, xmm1
movaps xmm1, xmm4
mulsd xmm1, xmm3
addsd xmm5, xmm2
movsd qword [0x1003a928], xmm6
movsd qword [0x1003a918], xmm5
test eax, eax
jne 0x10017257
xorps xmm0, xmm0
mov dword [ebp - 0x3f0], 0xe9e8e2e1
movups xmmword [ebp - 0x2d0], xmm0
mov dword [ebp - 0x3ec], 0xfbede4e9
xor ecx, ecx
movups xmmword [ebp - 0x2c0], xmm0
mov word [ebp - 0x3e8], 0xf8
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x3f0], al
inc ecx
cmp ecx, 9
jb 0x10017001
xor eax, eax
mov byte [ebp - 0x3e7], 0
cmp byte [ebp - 0x2d0], al
je 0x1001702d
inc eax
cmp byte [ebp + eax - 0x2d0], 0
jne 0x10017022
lea ecx, [ebp - 0x2d0]
mov dword [ebp - 0x4c8], 0
add eax, ecx
mov dword [ebp - 0x45c], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x4d0], eax
lea edi, [ebp - 0x3f0]
mov dword [ebp - 0x458], 0xb9bbbdb7
movups xmmword [ebp - 0x190], xmm0
mov byte [ebp - 0x454], 0
xor ecx, ecx
movups xmmword [ebp - 0x180], xmm0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x45c], al
inc ecx
cmp ecx, 8
jb 0x10017080
mov al, byte [ebp - 0x45c]
mov byte [ebp - 0x454], 0
mov byte [ebp - 0x190], al
test al, al
je 0x100170c5
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x45c]
mov byte [ebp + ecx - 0x190], al
test al, al
jne 0x100170b0
movsx ecx, byte [ebp - 0x3f0]
mov esi, 3
mov al, cl
mov dword [ebp - 0x4cc], ecx
add al, al
add cl, al
add cl, byte [ebp - 0x190]
inc cl
mov byte [ebp - 0x190], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x190]
cdq
idiv ecx
movzx eax, byte [ebp - 0x18f]
or edx, dword [ebp - 0x4cc]
add al, dl
mov byte [ebp - 0x18f], al
movzx eax, byte [ebp - 0x18f]
mov cl, byte [ebp - 0x190]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x18d]
mov byte [ebp - 0x18d], cl
movsx ecx, byte [ebp - 0x18d]
movzx eax, byte [ebp - 0x18c]
sar ecx, 6
add al, cl
mov byte [ebp - 0x18c], al
xor eax, eax
nop dword [eax]
movsx edx, byte [ebp + esi - 0x190]
movsx ecx, byte [ebp + esi - 0x191]
add edx, edx
add ecx, edx
inc esi
lea eax, [eax + ecx*2]
cmp esi, 0x11
jl 0x10017150
mov ecx, dword [ebp - 0x4c8]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x100171cf
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4c8], eax
cmp dword [ebp - 0x4c8], 0xe
jle 0x100171a0
mov dword [ebp - 0x4c8], 1
mov edx, dword [ebp - 0x4d0]
lea ecx, [ebp - 0x3f0]
mov al, byte [ebp - 0x3f0]
mov byte [edx], al
test al, al
je 0x100171fd
mov eax, ecx
sub edx, eax
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x100171c0
jmp 0x100171fd
mov ecx, dword [ebp - 0x4d0]
mov al, byte [ebp - 0x3f0]
mov byte [ecx], al
test al, al
je 0x100171fd
lea eax, [ebp - 0x3f0]
sub ecx, eax
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [edi + ecx], al
test al, al
jne 0x100171f0
push 0x40
lea eax, [ebp - 0x50]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x2d0]
push eax
lea eax, [ebp - 0x50]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x50]
add esp, 0x18
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10017230
sub ecx, edx
lea eax, [ebp - 0x50]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x480]
call fcn.1000a4f0
or esi, 0xffffffff
jmp 0x10019017
cmp dword [esi + 0x14], 0x10
movaps xmm0, xmm5
mov edx, dword [esi + 0x10]
mulsd xmm0, xmm6
subsd xmm0, xmm3
mulsd xmm3, xmm5
subsd xmm1, xmm0
movsd qword [0x1003a928], xmm0
subsd xmm3, xmm4
mulsd xmm0, xmm4
movsd qword [0x1003a920], xmm1
subsd xmm0, xmm3
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a910], xmm0
jb 0x100172a1
mov esi, dword [esi]
push eax
sub edx, edi
lea ecx, [esi + edi]
call fcn.10001030
mov esi, eax
add esp, 4
cmp esi, 0x2d
jae 0x1001752c
xorps xmm0, xmm0
mov dword [ebp - 0x3d8], 0xe1b0b5e0
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x3d4], 0xfaf5e3
xor ecx, ecx
movups xmmword [ebp - 0x20], xmm0
nop dword [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x3d8], al
inc ecx
cmp ecx, 7
jb 0x100172e0
xor ecx, ecx
mov byte [ebp - 0x3d1], 0
lea eax, [ebp - 0x30]
mov dword [ebp - 0x4d0], ecx
cmp byte [ebp - 0x30], cl
je 0x10017316
lea eax, [eax + 1]
inc ecx
cmp byte [eax], 0
jne 0x10017307
mov dword [ebp - 0x4d0], ecx
xorps xmm0, xmm0
mov dword [ebp - 0x4c8], 0
lea edi, [ebp - 0x3d8]
mov dword [ebp - 0x450], 0xb1beb3b0
movups xmmword [ebp - 0x170], xmm0
mov dword [ebp - 0x44c], 0xb9bbbdb7
xor ecx, ecx
movups xmmword [ebp - 0x160], xmm0
mov byte [ebp - 0x448], 0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x450], al
inc ecx
cmp ecx, 8
jb 0x10017354
mov al, byte [ebp - 0x450]
mov byte [ebp - 0x448], 0
mov byte [ebp - 0x170], al
test al, al
je 0x10017395
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x450]
mov byte [ebp + ecx - 0x170], al
test al, al
jne 0x10017380
movsx ecx, byte [ebp - 0x3d8]
mov esi, 3
mov al, cl
mov dword [ebp - 0x4cc], ecx
add al, al
add cl, al
add cl, byte [ebp - 0x170]
inc cl
mov byte [ebp - 0x170], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x170]
cdq
idiv ecx
movzx eax, byte [ebp - 0x16f]
or edx, dword [ebp - 0x4cc]
add al, dl
mov byte [ebp - 0x16f], al
movzx eax, byte [ebp - 0x16f]
mov cl, byte [ebp - 0x170]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x16d]
mov byte [ebp - 0x16d], cl
movsx ecx, byte [ebp - 0x16d]
movzx eax, byte [ebp - 0x16c]
sar ecx, 6
add al, cl
mov byte [ebp - 0x16c], al
xor eax, eax
nop dword [eax]
movsx edx, byte [ebp + esi - 0x170]
movsx ecx, byte [ebp + esi - 0x171]
add edx, edx
add ecx, edx
inc esi
lea eax, [eax + ecx*2]
cmp esi, 0x11
jl 0x10017420
mov ecx, dword [ebp - 0x4c8]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1001749f
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4c8], eax
cmp dword [ebp - 0x4c8], 0xe
jle 0x10017470
mov dword [ebp - 0x4c8], 1
mov al, byte [ebp - 0x3d8]
lea edx, [ebp - 0x30]
add edx, dword [ebp - 0x4d0]
lea ecx, [ebp - 0x3d8]
mov byte [edx], al
test al, al
je 0x100174cd
mov eax, ecx
sub edx, eax
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x10017490
jmp 0x100174cd
mov al, byte [ebp - 0x3d8]
lea ecx, [ebp - 0x30]
add ecx, dword [ebp - 0x4d0]
mov byte [ecx], al
test al, al
je 0x100174cd
lea eax, [ebp - 0x3d8]
sub ecx, eax
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [edi + ecx], al
test al, al
jne 0x100174c0
push 0x40
lea eax, [ebp - 0x1d0]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x1d0]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x1d0]
add esp, 0x18
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10017500
sub ecx, edx
lea eax, [ebp - 0x1d0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x480]
call fcn.1000a4f0
mov esi, 0xfffffffe
jmp 0x10019017
movsd xmm3, qword [0x1003a918]
mov ecx, 0x1003ad40
movsd xmm6, qword [0x10037da8]
movaps xmm1, xmm3
movsd xmm5, qword [0x1003a928]
addsd xmm1, xmm6
movaps xmm0, xmm5
movsd xmm4, qword [0x1003a910]
movsd xmm2, qword [0x1003a920]
lea edx, [ecx + 1]
divsd xmm0, xmm1
movaps xmm1, xmm3
subsd xmm4, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a910], xmm4
divsd xmm1, xmm0
movaps xmm0, xmm4
subsd xmm5, xmm1
movaps xmm1, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a928], xmm5
addsd xmm5, xmm6
divsd xmm1, xmm0
divsd xmm4, xmm5
subsd xmm3, xmm1
subsd xmm2, xmm4
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a920], xmm2
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100175c0
sub ecx, edx
mov edx, 0x1003ad40
push ecx
lea ecx, [ebp - 0x3d0]
call fcn.10012150
movsd xmm4, qword [0x1003a920]
lea ecx, [ebp - 0x3d0]
movsd xmm5, qword [0x10037da8]
movaps xmm0, xmm4
movsd xmm3, qword [0x1003a918]
addsd xmm0, xmm5
movsd xmm2, qword [0x1003a910]
movsd xmm1, qword [0x1003a928]
mov edi, dword [ebp - 0x4d4]
mov edx, edi
push esi
divsd xmm3, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm5
addsd xmm3, xmm2
divsd xmm4, xmm0
movaps xmm0, xmm1
movsd qword [0x1003a918], xmm3
addsd xmm0, xmm5
addsd xmm4, xmm1
divsd xmm2, xmm0
movsd qword [0x1003a920], xmm4
addsd xmm2, xmm3
addsd xmm3, xmm5
movsd qword [0x1003a910], xmm2
divsd xmm1, xmm3
addsd xmm1, xmm4
movsd qword [0x1003a928], xmm1
call fcn.10012200
movsd xmm3, qword [0x1003a918]
add esp, 8
movsd xmm6, qword [0x10037da8]
movaps xmm1, xmm3
movsd xmm5, qword [0x1003a928]
addsd xmm1, xmm6
movaps xmm0, xmm5
movsd xmm4, qword [0x1003a910]
movsd xmm2, qword [0x1003a920]
mov ecx, edi
divsd xmm0, xmm1
movaps xmm1, xmm3
subsd xmm4, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a910], xmm4
divsd xmm1, xmm0
movaps xmm0, xmm4
subsd xmm5, xmm1
movaps xmm1, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a928], xmm5
addsd xmm5, xmm6
divsd xmm1, xmm0
divsd xmm4, xmm5
subsd xmm3, xmm1
subsd xmm2, xmm4
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a920], xmm2
call fcn.1001e210
cmp eax, 0x8fdb058c
jne 0x10017b23
cmp edx, 0x31feb78c
jne 0x10017b23
movsd xmm4, qword [0x1003a920]
lea ecx, [ebp - 0x480]
movsd xmm5, qword [0x10037da8]
movaps xmm0, xmm4
movsd xmm3, qword [0x1003a918]
addsd xmm0, xmm5
movsd xmm2, qword [0x1003a910]
movsd xmm1, qword [0x1003a928]
divsd xmm3, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm5
addsd xmm3, xmm2
divsd xmm4, xmm0
movaps xmm0, xmm1
movsd qword [0x1003a918], xmm3
addsd xmm0, xmm5
addsd xmm4, xmm1
divsd xmm2, xmm0
movsd qword [0x1003a920], xmm4
addsd xmm2, xmm3
addsd xmm3, xmm5
movsd qword [0x1003a910], xmm2
divsd xmm1, xmm3
addsd xmm1, xmm4
movsd qword [0x1003a928], xmm1
call fcn.100012e0
cmp dword [ebp - 0x46c], 8
lea ecx, [ebp - 0x480]
cmovae ecx, dword [ebp - 0x480]
call fcn.1000aaf0
movsd xmm3, qword [0x1003a928]
mov esi, eax
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
mov ecx, esi
mulsd xmm2, xmm3
addsd xmm4, qword [0x1003a920]
lea edx, [ecx + 1]
addsd xmm2, qword [0x1003a910]
movaps xmm0, xmm4
movsd qword [0x1003a920], xmm4
mulsd xmm0, xmm1
movsd qword [0x1003a910], xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
addsd xmm2, xmm1
movsd qword [0x1003a928], xmm0
movsd qword [0x1003a918], xmm2
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10017830
sub ecx, edx
mov edx, esi
push ecx
lea ecx, [ebp - 0x4ac]
call fcn.1001e040
push esi
call fcn.1001e327
add esp, 8
lea eax, [edi + 5]
lea ecx, [ebp - 0x4ac]
push eax
call fcn.1001b620
test eax, eax
je 0x10017afe
xorps xmm0, xmm0
mov dword [ebp - 0x3e4], 0xe1e9dcea
movups xmmword [ebp - 0x2b0], xmm0
mov dword [ebp - 0x3e0], 0xfbfae2b3
xor ecx, ecx
movups xmmword [ebp - 0x2a0], xmm0
mov byte [ebp - 0x3dc], 0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x3e4], al
inc ecx
cmp ecx, 8
jb 0x10017895
xor eax, eax
mov byte [ebp - 0x3dc], 0
cmp byte [ebp - 0x2b0], al
je 0x100178cb
nop word [eax + eax]
inc eax
cmp byte [ebp + eax - 0x2b0], 0
jne 0x100178c0
lea ecx, [ebp - 0x2b0]
mov dword [ebp - 0x4c8], 0
add eax, ecx
mov dword [ebp - 0x444], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x4d0], eax
lea edi, [ebp - 0x3e4]
mov dword [ebp - 0x440], 0xb9bbbdb7
movups xmmword [ebp - 0x150], xmm0
mov byte [ebp - 0x43c], 0
xor ecx, ecx
movups xmmword [ebp - 0x140], xmm0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x444], al
inc ecx
cmp ecx, 8
jb 0x10017920
mov al, byte [ebp - 0x444]
mov byte [ebp - 0x43c], 0
mov byte [ebp - 0x150], al
test al, al
je 0x10017965
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x444]
mov byte [ebp + ecx - 0x150], al
test al, al
jne 0x10017950
movsx ecx, byte [ebp - 0x3e4]
mov esi, 3
mov al, cl
mov dword [ebp - 0x4cc], ecx
add al, al
add cl, al
add cl, byte [ebp - 0x150]
inc cl
mov byte [ebp - 0x150], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x150]
cdq
idiv ecx
movzx eax, byte [ebp - 0x14f]
or edx, dword [ebp - 0x4cc]
add al, dl
mov byte [ebp - 0x14f], al
movzx eax, byte [ebp - 0x14f]
mov cl, byte [ebp - 0x150]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x14d]
mov byte [ebp - 0x14d], cl
movsx ecx, byte [ebp - 0x14d]
movzx eax, byte [ebp - 0x14c]
sar ecx, 6
add al, cl
mov byte [ebp - 0x14c], al
xor eax, eax
nop dword [eax]
movsx edx, byte [ebp + esi - 0x150]
movsx ecx, byte [ebp + esi - 0x151]
add edx, edx
add ecx, edx
inc esi
lea eax, [eax + ecx*2]
cmp esi, 0x11
jl 0x100179f0
mov ecx, dword [ebp - 0x4c8]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10017a6f
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4c8], eax
cmp dword [ebp - 0x4c8], 0xe
jle 0x10017a40
mov dword [ebp - 0x4c8], 1
mov edx, dword [ebp - 0x4d0]
lea ecx, [ebp - 0x3e4]
mov al, byte [ebp - 0x3e4]
mov byte [edx], al
test al, al
je 0x10017a9d
mov eax, ecx
sub edx, eax
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x10017a60
jmp 0x10017a9d
mov ecx, dword [ebp - 0x4d0]
mov al, byte [ebp - 0x3e4]
mov byte [ecx], al
test al, al
je 0x10017a9d
lea eax, [ebp - 0x3e4]
sub ecx, eax
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [ecx + edi], al
test al, al
jne 0x10017a90
push 0x40
lea eax, [ebp - 0x1d0]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x2b0]
push eax
lea eax, [ebp - 0x1d0]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x1d0]
add esp, 0x18
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10017ad2
sub ecx, edx
lea eax, [ebp - 0x1d0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x480]
call fcn.1000a4f0
mov esi, 0xfffffffd
jmp 0x10019017
movsd xmm4, qword [0x1003a920]
movsd xmm5, qword [0x1003a910]
movsd xmm1, qword [0x1003a928]
movsd xmm3, qword [0x1003a918]
jmp 0x10018b2c
cmp eax, 0x8fdb073f
jne 0x100184ee
cmp edx, 0x31feb88c
jne 0x100184ee
movsd xmm3, qword [0x1003a918]
lea edx, [edi + 0x2c]
movsd xmm1, qword [0x1003a910]
lea ecx, [ebp - 0x4ac]
movsd xmm2, qword [0x1003a920]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a928]
movaps xmm0, xmm1
add esi, 0xffffffd4
mulsd xmm0, xmm2
push esi
mulsd xmm3, xmm2
subsd xmm4, xmm2
subsd xmm3, xmm1
subsd xmm0, xmm4
movsd qword [0x1003a928], xmm4
mulsd xmm4, xmm1
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a920], xmm0
subsd xmm4, xmm3
movsd qword [0x1003a910], xmm4
call fcn.1001e040
movsd xmm4, qword [0x1003a920]
lea ecx, [ebp - 0x4ac]
movsd xmm5, qword [0x10037da8]
movaps xmm0, xmm4
movsd xmm3, qword [0x1003a918]
addsd xmm0, xmm5
movsd xmm2, qword [0x1003a910]
add esp, 4
movsd xmm1, qword [0x1003a928]
mov eax, edi
add eax, 5
divsd xmm3, xmm0
push eax
movaps xmm0, xmm2
addsd xmm0, xmm5
addsd xmm3, xmm2
divsd xmm4, xmm0
movaps xmm0, xmm1
movsd qword [0x1003a918], xmm3
addsd xmm0, xmm5
addsd xmm4, xmm1
divsd xmm2, xmm0
movsd qword [0x1003a920], xmm4
addsd xmm2, xmm3
addsd xmm3, xmm5
movsd qword [0x1003a910], xmm2
divsd xmm1, xmm3
addsd xmm1, xmm4
movsd qword [0x1003a928], xmm1
call fcn.1001b620
test eax, eax
jne 0x100182a1
movsd xmm3, qword [0x1003a928]
lea ecx, [edi + 0x2c]
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
mov edx, esi
mulsd xmm2, xmm3
addsd xmm4, qword [0x1003a920]
addsd xmm2, qword [0x1003a910]
movaps xmm0, xmm4
movsd qword [0x1003a920], xmm4
mulsd xmm0, xmm1
movsd qword [0x1003a910], xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
addsd xmm2, xmm1
movsd qword [0x1003a928], xmm0
movsd qword [0x1003a918], xmm2
call fcn.100108f0
xor ecx, ecx
mov dword [ebp - 0x4d0], eax
mov dword [ebp - 0x20], 0xeac8a3f2
xorps xmm0, xmm0
test eax, eax
je 0x10017f12
mov eax, 0xfffffffc
mov dword [ebp - 0x1c], 0xcfa8e3e7
mov dword [ebp - 0x4d0], eax
movups xmmword [ebp - 0x290], xmm0
mov dword [ebp - 0x18], 0xe8e0e2eb
movups xmmword [ebp - 0x280], xmm0
mov word [ebp - 0x14], 0xea
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 0xd
jb 0x10017d01
xor ecx, ecx
mov byte [ebp - 0x13], 0
lea eax, [ebp - 0x290]
cmp byte [ebp - 0x290], cl
je 0x10017d2b
lea eax, [eax + 1]
inc ecx
cmp byte [eax], 0
jne 0x10017d22
lea esi, [ebp - 0x290]
mov dword [ebp - 0x4c8], 0
xorps xmm0, xmm0
mov dword [ebp - 0x438], 0xb1beb3b0
add esi, ecx
mov dword [ebp - 0x434], 0xb9bbbdb7
movups xmmword [ebp - 0x130], xmm0
mov byte [ebp - 0x430], 0
xor ecx, ecx
movups xmmword [ebp - 0x120], xmm0
nop dword [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x438], al
inc ecx
cmp ecx, 8
jb 0x10017d70
mov al, byte [ebp - 0x438]
mov byte [ebp - 0x430], 0
mov byte [ebp - 0x130], al
test al, al
je 0x10017db5
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x438]
mov byte [ebp + ecx - 0x130], al
test al, al
jne 0x10017da0
movsx ecx, byte [ebp - 0x20]
mov edi, 3
mov al, cl
mov dword [ebp - 0x4cc], ecx
add al, al
add cl, al
add cl, byte [ebp - 0x130]
inc cl
mov byte [ebp - 0x130], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x130]
cdq
idiv ecx
movzx eax, byte [ebp - 0x12f]
or edx, dword [ebp - 0x4cc]
add al, dl
mov byte [ebp - 0x12f], al
mov cl, byte [ebp - 0x12f]
movzx eax, byte [ebp - 0x130]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x12d]
mov byte [ebp - 0x12d], cl
movsx ecx, byte [ebp - 0x12d]
movzx eax, byte [ebp - 0x12c]
sar ecx, 6
add al, cl
mov byte [ebp - 0x12c], al
xor eax, eax
nop word [eax + eax]
movsx edx, byte [ebp + edi - 0x130]
movsx ecx, byte [ebp + edi - 0x131]
add edx, edx
add ecx, edx
inc edi
lea eax, [eax + ecx*2]
cmp edi, 0x11
jl 0x10017e40
mov ecx, dword [ebp - 0x4c8]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10017eaf
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4c8], eax
cmp dword [ebp - 0x4c8], 0xe
jle 0x10017e90
mov dword [ebp - 0x4c8], 1
mov al, byte [ebp - 0x20]
mov byte [esi], al
test al, al
je 0x10017ecd
lea ecx, [ebp - 0x20]
sub ecx, esi
nop
mov al, byte [esi + ecx + 1]
lea esi, [esi + 1]
mov byte [esi], al
test al, al
jne 0x10017ea0
jmp 0x10017ecd
mov al, byte [ebp - 0x20]
mov byte [esi], al
test al, al
je 0x10017ecd
lea ecx, [ebp - 0x20]
sub ecx, esi
nop dword [eax]
mov al, byte [esi + ecx + 1]
lea esi, [esi + 1]
mov byte [esi], al
test al, al
jne 0x10017ec0
push 0x40
lea eax, [ebp - 0x1d0]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x1d0]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x1d0]
add esp, 0x18
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10017f02
jmp 0x1001814d
movups xmmword [ebp - 0x270], xmm0
mov dword [ebp - 0x1c], 0xdaa8e3e7
movups xmmword [ebp - 0x260], xmm0
mov dword [ebp - 0x18], 0xe8efe8ff
mov word [ebp - 0x14], 0xfcfd
mov byte [ebp - 0x12], 0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 0xe
jb 0x10017f38
xor ecx, ecx
mov byte [ebp - 0x12], 0
lea eax, [ebp - 0x270]
cmp byte [ebp - 0x270], cl
je 0x10017f69
nop dword [eax]
lea eax, [eax + 1]
inc ecx
cmp byte [eax], 0
jne 0x10017f60
lea esi, [ebp - 0x270]
mov dword [ebp - 0x4c8], 0
xorps xmm0, xmm0
mov dword [ebp - 0x468], 0xb1beb3b0
add esi, ecx
mov dword [ebp - 0x464], 0xb9bbbdb7
movups xmmword [ebp - 0x110], xmm0
mov byte [ebp - 0x460], 0
xor ecx, ecx
movups xmmword [ebp - 0x100], xmm0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x468], al
inc ecx
cmp ecx, 8
jb 0x10017fb0
mov al, byte [ebp - 0x468]
mov byte [ebp - 0x460], 0
mov byte [ebp - 0x110], al
test al, al
je 0x10017ff5
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x468]
mov byte [ebp + ecx - 0x110], al
test al, al
jne 0x10017fe0
movsx ecx, byte [ebp - 0x20]
mov edi, 3
mov al, cl
mov dword [ebp - 0x4cc], ecx
add al, al
add cl, al
add cl, byte [ebp - 0x110]
inc cl
mov byte [ebp - 0x110], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x110]
cdq
idiv ecx
movzx eax, byte [ebp - 0x10f]
or edx, dword [ebp - 0x4cc]
add al, dl
mov byte [ebp - 0x10f], al
mov cl, byte [ebp - 0x10f]
movzx eax, byte [ebp - 0x110]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x10d]
mov byte [ebp - 0x10d], cl
movsx ecx, byte [ebp - 0x10d]
movzx eax, byte [ebp - 0x10c]
sar ecx, 6
add al, cl
mov byte [ebp - 0x10c], al
xor eax, eax
nop word [eax + eax]
movsx edx, byte [ebp + edi - 0x110]
movsx ecx, byte [ebp + edi - 0x111]
add edx, edx
add ecx, edx
inc edi
lea eax, [eax + ecx*2]
cmp edi, 0x11
jl 0x10018080
mov ecx, dword [ebp - 0x4c8]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x100180ef
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4c8], eax
cmp dword [ebp - 0x4c8], 0xe
jle 0x100180d0
mov dword [ebp - 0x4c8], 1
mov al, byte [ebp - 0x20]
mov byte [esi], al
test al, al
je 0x1001810d
lea ecx, [ebp - 0x20]
sub ecx, esi
nop
mov al, byte [esi + ecx + 1]
lea esi, [esi + 1]
mov byte [esi], al
test al, al
jne 0x100180e0
jmp 0x1001810d
mov al, byte [ebp - 0x20]
mov byte [esi], al
test al, al
je 0x1001810d
lea ecx, [ebp - 0x20]
sub ecx, esi
nop dword [eax]
mov al, byte [esi + ecx + 1]
lea esi, [esi + 1]
mov byte [esi], al
test al, al
jne 0x10018100
push 0x40
lea eax, [ebp - 0x1d0]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x1d0]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x1d0]
add esp, 0x18
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10018142
sub ecx, edx
lea eax, [ebp - 0x1d0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x480]
call fcn.1000a4f0
movsd xmm3, qword [0x1003a918]
lea edx, [ebp - 0x480]
movsd xmm6, qword [0x10037da8]
lea ecx, [ebp - 0x4e0]
movsd xmm5, qword [0x1003a928]
movaps xmm1, xmm3
addsd xmm1, xmm6
movsd xmm4, qword [0x1003a910]
movaps xmm0, xmm5
movsd xmm2, qword [0x1003a920]
divsd xmm0, xmm1
movaps xmm1, xmm3
subsd xmm4, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a910], xmm4
divsd xmm1, xmm0
movaps xmm0, xmm4
subsd xmm5, xmm1
movaps xmm1, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a928], xmm5
addsd xmm5, xmm6
divsd xmm1, xmm0
divsd xmm4, xmm5
subsd xmm3, xmm1
subsd xmm2, xmm4
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a920], xmm2
call fcn.10015ac0
push 0
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 4
call fcn.1000a380
lea ecx, [ebp - 0x4e0]
mov byte [ebp - 4], 3
call fcn.1001b470
mov esi, dword [ebp - 0x4d0]
test esi, esi
jne 0x10019017
push 0x493e0
call dword [sym.imp.KERNEL32.dll_Sleep]
movsd xmm4, qword [0x1003a920]
movsd xmm2, qword [0x10037da8]
movaps xmm0, xmm4
movsd xmm3, qword [0x1003a918]
addsd xmm0, xmm2
movsd xmm5, qword [0x1003a910]
movsd xmm1, qword [0x1003a928]
divsd xmm3, xmm0
movaps xmm0, xmm5
addsd xmm0, xmm2
addsd xmm3, xmm5
divsd xmm4, xmm0
movaps xmm0, xmm1
addsd xmm0, xmm2
addsd xmm4, xmm1
divsd xmm5, xmm0
movaps xmm0, xmm3
addsd xmm0, xmm2
addsd xmm5, xmm3
divsd xmm1, xmm0
addsd xmm1, xmm4
jmp 0x10018b34
xorps xmm0, xmm0
mov word [ebp - 0x14], 0xe0
movups xmmword [ebp - 0x250], xmm0
xor ecx, ecx
movups xmmword [ebp - 0x240], xmm0
movaps xmm0, xmmword [0x10037ec0]
movups xmmword [ebp - 0x24], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x11
jb 0x100182c5
xor ecx, ecx
mov byte [ebp - 0x13], 0
lea eax, [ebp - 0x250]
cmp byte [ebp - 0x250], cl
je 0x100182ef
lea eax, [eax + 1]
inc ecx
cmp byte [eax], 0
jne 0x100182e6
lea esi, [ebp - 0x250]
mov dword [ebp - 0x4c8], 0
xorps xmm0, xmm0
mov dword [ebp - 0x42c], 0xb1beb3b0
add esi, ecx
mov dword [ebp - 0x428], 0xb9bbbdb7
movups xmmword [ebp - 0xf0], xmm0
mov byte [ebp - 0x424], 0
xor ecx, ecx
movups xmmword [ebp - 0xe0], xmm0
nop
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x42c], al
inc ecx
cmp ecx, 8
jb 0x10018330
mov al, byte [ebp - 0x42c]
mov byte [ebp - 0x424], 0
mov byte [ebp - 0xf0], al
test al, al
je 0x10018375
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x42c]
mov byte [ebp + ecx - 0xf0], al
test al, al
jne 0x10018360
movsx ecx, byte [ebp - 0x24]
mov edi, 3
mov al, cl
mov dword [ebp - 0x4cc], ecx
add al, al
add cl, al
add cl, byte [ebp - 0xf0]
inc cl
mov byte [ebp - 0xf0], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0xf0]
cdq
idiv ecx
movzx eax, byte [ebp - 0xef]
or edx, dword [ebp - 0x4cc]
add al, dl
mov byte [ebp - 0xef], al
mov cl, byte [ebp - 0xef]
movzx eax, byte [ebp - 0xf0]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0xed]
mov byte [ebp - 0xed], cl
movsx ecx, byte [ebp - 0xed]
movzx eax, byte [ebp - 0xec]
sar ecx, 6
add al, cl
mov byte [ebp - 0xec], al
xor eax, eax
nop word [eax + eax]
movsx edx, byte [ebp + edi - 0xf0]
movsx ecx, byte [ebp + edi - 0xf1]
add edx, edx
add ecx, edx
inc edi
lea eax, [eax + ecx*2]
cmp edi, 0x11
jl 0x10018400
mov ecx, dword [ebp - 0x4c8]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1001846f
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4c8], eax
cmp dword [ebp - 0x4c8], 0xe
jle 0x10018450
mov dword [ebp - 0x4c8], 1
mov al, byte [ebp - 0x24]
mov byte [esi], al
test al, al
je 0x1001848d
lea ecx, [ebp - 0x24]
sub ecx, esi
nop
mov al, byte [ecx + esi + 1]
lea esi, [esi + 1]
mov byte [esi], al
test al, al
jne 0x10018460
jmp 0x1001848d
mov al, byte [ebp - 0x24]
mov byte [esi], al
test al, al
je 0x1001848d
lea eax, [ebp - 0x24]
sub esi, eax
mov ecx, eax
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [esi + ecx], al
test al, al
jne 0x10018480
push 0x40
lea eax, [ebp - 0x1d0]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x1d0]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x1d0]
add esp, 0x18
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100184c2
sub ecx, edx
lea eax, [ebp - 0x1d0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x480]
call fcn.1000a4f0
mov esi, 0xfffffffb
jmp 0x10019017
cmp eax, 0x8fdb0fbe
jne 0x10018dd2
cmp edx, 0x31febd8c
jne 0x10018dd2
movsd xmm3, qword [0x1003a928]
lea edx, [edi + 0x2c]
movsd xmm1, qword [0x1003a918]
lea ecx, [ebp - 0x4ac]
movaps xmm4, xmm3
movaps xmm2, xmm1
mulsd xmm4, qword [0x1003a910]
add esi, 0xffffffd4
push esi
mulsd xmm2, xmm3
addsd xmm4, qword [0x1003a920]
addsd xmm2, qword [0x1003a910]
movaps xmm0, xmm4
movsd qword [0x1003a920], xmm4
mulsd xmm0, xmm1
movsd qword [0x1003a910], xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
addsd xmm2, xmm1
movsd qword [0x1003a928], xmm0
movsd qword [0x1003a918], xmm2
call fcn.1001e040
movsd xmm3, qword [0x1003a918]
lea ecx, [ebp - 0x4ac]
movsd xmm6, qword [0x10037da8]
movaps xmm1, xmm3
movsd xmm5, qword [0x1003a928]
addsd xmm1, xmm6
movaps xmm0, xmm5
movsd xmm4, qword [0x1003a910]
movsd xmm2, qword [0x1003a920]
add esp, 4
mov eax, edi
add eax, 5
divsd xmm0, xmm1
push eax
movaps xmm1, xmm3
subsd xmm4, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a910], xmm4
divsd xmm1, xmm0
movaps xmm0, xmm4
subsd xmm5, xmm1
movaps xmm1, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a928], xmm5
addsd xmm5, xmm6
divsd xmm1, xmm0
divsd xmm4, xmm5
subsd xmm3, xmm1
subsd xmm2, xmm4
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a920], xmm2
call fcn.1001b620
test eax, eax
jne 0x10018b94
mov edx, esi
lea ecx, [edi + 0x2c]
call fcn.10011e80
xor ecx, ecx
xorps xmm0, xmm0
test eax, eax
je 0x1001887e
movups xmmword [ebp - 0x230], xmm0
mov word [ebp - 0x14], 0xf6
movups xmmword [ebp - 0x220], xmm0
movaps xmm0, xmmword [0x10037ef0]
movups xmmword [ebp - 0x24], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x11
jb 0x10018658
xor eax, eax
mov byte [ebp - 0x13], 0
cmp byte [ebp - 0x230], al
je 0x1001867e
inc eax
cmp byte [ebp + eax - 0x230], 0
jne 0x10018673
lea esi, [ebp - 0x230]
mov dword [ebp - 0x4c8], 0
xorps xmm0, xmm0
mov dword [ebp - 0x420], 0xb1beb3b0
add esi, eax
mov dword [ebp - 0x41c], 0xb9bbbdb7
movups xmmword [ebp - 0xd0], xmm0
mov byte [ebp - 0x418], 0
xor ecx, ecx
movups xmmword [ebp - 0xc0], xmm0
nop
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x420], al
inc ecx
cmp ecx, 8
jb 0x100186c0
mov al, byte [ebp - 0x420]
mov byte [ebp - 0x418], 0
mov byte [ebp - 0xd0], al
test al, al
je 0x10018705
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x420]
mov byte [ebp + ecx - 0xd0], al
test al, al
jne 0x100186f0
movsx ecx, byte [ebp - 0x24]
mov edi, 3
mov al, cl
mov dword [ebp - 0x4cc], ecx
add al, al
add cl, al
add cl, byte [ebp - 0xd0]
inc cl
mov byte [ebp - 0xd0], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0xd0]
cdq
idiv ecx
movzx eax, byte [ebp - 0xcf]
or edx, dword [ebp - 0x4cc]
add al, dl
mov byte [ebp - 0xcf], al
mov cl, byte [ebp - 0xcf]
movzx eax, byte [ebp - 0xd0]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0xcd]
mov byte [ebp - 0xcd], cl
movsx ecx, byte [ebp - 0xcd]
movzx eax, byte [ebp - 0xcc]
sar ecx, 6
add al, cl
mov byte [ebp - 0xcc], al
xor eax, eax
nop word [eax + eax]
movsx edx, byte [ebp + edi - 0xd0]
movsx ecx, byte [ebp + edi - 0xd1]
add edx, edx
add ecx, edx
inc edi
lea eax, [eax + ecx*2]
cmp edi, 0x11
jl 0x10018790
mov ecx, dword [ebp - 0x4c8]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x100187ff
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4c8], eax
cmp dword [ebp - 0x4c8], 0xe
jle 0x100187e0
mov dword [ebp - 0x4c8], 1
mov al, byte [ebp - 0x24]
mov byte [esi], al
test al, al
je 0x1001881d
lea ecx, [ebp - 0x24]
sub ecx, esi
nop
mov al, byte [ecx + esi + 1]
lea esi, [esi + 1]
mov byte [esi], al
test al, al
jne 0x100187f0
jmp 0x1001881d
mov al, byte [ebp - 0x24]
mov byte [esi], al
test al, al
je 0x1001881d
lea ecx, [ebp - 0x24]
sub ecx, esi
nop dword [eax]
mov al, byte [ecx + esi + 1]
lea esi, [esi + 1]
mov byte [esi], al
test al, al
jne 0x10018810
push 0x40
lea eax, [ebp - 0x1d0]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x1d0]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x1d0]
add esp, 0x18
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10018852
sub ecx, edx
lea eax, [ebp - 0x1d0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x480]
call fcn.1000a4f0
mov esi, 0xfffffffc
jmp 0x10019017
movups xmmword [ebp - 0x210], xmm0
mov word [ebp - 0x14], 0xf7fc
movups xmmword [ebp - 0x200], xmm0
mov byte [ebp - 0x12], 0
movaps xmm0, xmmword [0x10037eb0]
movups xmmword [ebp - 0x24], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x12
jb 0x100188a1
xor eax, eax
mov byte [ebp - 0x12], 0
cmp byte [ebp - 0x210], al
je 0x100188cb
nop dword [eax]
inc eax
cmp byte [ebp + eax - 0x210], 0
jne 0x100188c0
lea esi, [ebp - 0x210]
mov dword [ebp - 0x4c8], 0
xorps xmm0, xmm0
mov dword [ebp - 0x414], 0xb1beb3b0
add esi, eax
mov dword [ebp - 0x410], 0xb9bbbdb7
movups xmmword [ebp - 0xb0], xmm0
mov byte [ebp - 0x40c], 0
xor ecx, ecx
movups xmmword [ebp - 0xa0], xmm0
nop dword [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x414], al
inc ecx
cmp ecx, 8
jb 0x10018910
mov al, byte [ebp - 0x414]
mov byte [ebp - 0x40c], 0
mov byte [ebp - 0xb0], al
test al, al
je 0x10018955
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x414]
mov byte [ebp + ecx - 0xb0], al
test al, al
jne 0x10018940
movsx ecx, byte [ebp - 0x24]
mov edi, 3
mov al, cl
mov dword [ebp - 0x4cc], ecx
add al, al
add cl, al
add cl, byte [ebp - 0xb0]
inc cl
mov byte [ebp - 0xb0], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0xb0]
cdq
idiv ecx
movzx eax, byte [ebp - 0xaf]
or edx, dword [ebp - 0x4cc]
add al, dl
mov byte [ebp - 0xaf], al
mov cl, byte [ebp - 0xaf]
movzx eax, byte [ebp - 0xb0]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0xad]
mov byte [ebp - 0xad], cl
movsx ecx, byte [ebp - 0xad]
movzx eax, byte [ebp - 0xac]
sar ecx, 6
add al, cl
mov byte [ebp - 0xac], al
xor eax, eax
nop word [eax + eax]
movsx edx, byte [ebp + edi - 0xb0]
movsx ecx, byte [ebp + edi - 0xb1]
add edx, edx
add ecx, edx
inc edi
lea eax, [eax + ecx*2]
cmp edi, 0x11
jl 0x100189e0
mov ecx, dword [ebp - 0x4c8]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10018a4f
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4c8], eax
cmp dword [ebp - 0x4c8], 0xe
jle 0x10018a30
mov dword [ebp - 0x4c8], 1
mov al, byte [ebp - 0x24]
lea ecx, [ebp - 0x24]
mov byte [esi], al
test al, al
je 0x10018a6d
mov eax, ecx
sub esi, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [esi + ecx], al
test al, al
jne 0x10018a40
jmp 0x10018a6d
mov al, byte [ebp - 0x24]
mov byte [esi], al
test al, al
je 0x10018a6d
lea ecx, [ebp - 0x24]
sub ecx, esi
nop dword [eax]
mov al, byte [ecx + esi + 1]
lea esi, [esi + 1]
mov byte [esi], al
test al, al
jne 0x10018a60
push 0x40
lea eax, [ebp - 0x1d0]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x1d0]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x1d0]
add esp, 0x18
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10018aa2
sub ecx, edx
lea eax, [ebp - 0x1d0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x480]
call fcn.1000a4f0
movsd xmm3, qword [0x1003a918]
movsd xmm0, qword [0x1003a920]
movaps xmm2, xmm3
mulsd xmm2, qword [0x1003a928]
movsd xmm1, qword [0x1003a910]
mulsd xmm3, xmm0
movaps xmm4, xmm1
subsd xmm2, xmm0
mulsd xmm4, xmm0
subsd xmm3, xmm1
movaps xmm5, xmm2
subsd xmm4, xmm2
mulsd xmm5, xmm1
movaps xmm1, xmm3
mulsd xmm1, xmm2
subsd xmm5, xmm3
mulsd xmm3, xmm4
subsd xmm1, xmm4
mulsd xmm4, xmm5
subsd xmm3, xmm5
mulsd xmm5, xmm1
subsd xmm4, xmm1
subsd xmm5, xmm3
movsd xmm2, qword [0x10037da8]
movaps xmm0, xmm4
xor esi, esi
addsd xmm0, xmm2
divsd xmm3, xmm0
movaps xmm0, xmm5
addsd xmm0, xmm2
addsd xmm3, xmm5
divsd xmm4, xmm0
movaps xmm0, xmm1
movsd qword [0x1003a918], xmm3
addsd xmm0, xmm2
addsd xmm4, xmm1
divsd xmm5, xmm0
movsd qword [0x1003a920], xmm4
addsd xmm5, xmm3
addsd xmm3, xmm2
movsd qword [0x1003a910], xmm5
divsd xmm1, xmm3
addsd xmm1, xmm4
movsd qword [0x1003a928], xmm1
jmp 0x10019017
xorps xmm0, xmm0
mov word [ebp - 0x14], 0xe0
movups xmmword [ebp - 0x1f0], xmm0
xor ecx, ecx
movups xmmword [ebp - 0x1e0], xmm0
movaps xmm0, xmmword [0x10037ed0]
movups xmmword [ebp - 0x24], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x11
jb 0x10018bb8
xor ecx, ecx
mov byte [ebp - 0x13], 0
lea eax, [ebp - 0x1f0]
cmp byte [ebp - 0x1f0], cl
je 0x10018be9
nop dword [eax]
lea eax, [eax + 1]
inc ecx
cmp byte [eax], 0
jne 0x10018be0
lea esi, [ebp - 0x1f0]
mov dword [ebp - 0x4c8], 0
xorps xmm0, xmm0
mov dword [ebp - 0x408], 0xb1beb3b0
add esi, ecx
mov dword [ebp - 0x404], 0xb9bbbdb7
movups xmmword [ebp - 0x90], xmm0
mov byte [ebp - 0x400], 0
xor ecx, ecx
movups xmmword [ebp - 0x80], xmm0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x408], al
inc ecx
cmp ecx, 8
jb 0x10018c30
mov al, byte [ebp - 0x408]
mov byte [ebp - 0x400], 0
mov byte [ebp - 0x90], al
test al, al
je 0x10018c75
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x408]
mov byte [ebp + ecx - 0x90], al
test al, al
jne 0x10018c60
movsx ecx, byte [ebp - 0x24]
mov edi, 3
mov al, cl
mov dword [ebp - 0x4cc], ecx
add al, al
add cl, al
add cl, byte [ebp - 0x90]
inc cl
mov byte [ebp - 0x90], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x90]
cdq
idiv ecx
movzx eax, byte [ebp - 0x8f]
or edx, dword [ebp - 0x4cc]
add al, dl
mov byte [ebp - 0x8f], al
movzx eax, byte [ebp - 0x8f]
mov cl, byte [ebp - 0x90]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x8d]
mov byte [ebp - 0x8d], cl
movsx ecx, byte [ebp - 0x8d]
movzx eax, byte [ebp - 0x8c]
sar ecx, 6
add al, cl
mov byte [ebp - 0x8c], al
xor eax, eax
nop word [eax + eax]
movsx edx, byte [ebp + edi - 0x90]
movsx ecx, byte [ebp + edi - 0x91]
add edx, edx
add ecx, edx
inc edi
lea eax, [eax + ecx*2]
cmp edi, 0x11
jl 0x10018d00
mov ecx, dword [ebp - 0x4c8]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10018d6f
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4c8], eax
cmp dword [ebp - 0x4c8], 0xe
jle 0x10018d50
mov dword [ebp - 0x4c8], 1
mov al, byte [ebp - 0x24]
lea ecx, [ebp - 0x24]
mov byte [esi], al
test al, al
je 0x10018d8d
mov eax, ecx
sub esi, eax
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [esi + ecx], al
test al, al
jne 0x10018d60
jmp 0x10018d8d
mov al, byte [ebp - 0x24]
mov byte [esi], al
test al, al
je 0x10018d8d
lea ecx, [ebp - 0x24]
sub ecx, esi
nop dword [eax]
mov al, byte [ecx + esi + 1]
lea esi, [esi + 1]
mov byte [esi], al
test al, al
jne 0x10018d80
push 0x40
lea eax, [ebp - 0x1d0]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x1f0]
push eax
lea eax, [ebp - 0x1d0]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x1d0]
add esp, 0x18
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10018dc2
jmp 0x100184cd
xorps xmm0, xmm0
mov byte [ebp - 0x484], 0
movups xmmword [ebp - 0x30], xmm0
xor ecx, ecx
movups xmmword [ebp - 0x20], xmm0
movaps xmm0, xmmword [0x10037ea0]
movups xmmword [ebp - 0x494], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x494], al
inc ecx
cmp ecx, 0x10
jb 0x10018df4
xor ecx, ecx
mov byte [ebp - 0x484], 0
lea eax, [ebp - 0x30]
mov dword [ebp - 0x4d0], ecx
cmp byte [ebp - 0x30], cl
je 0x10018e2f
nop dword [eax + eax]
lea eax, [eax + 1]
inc ecx
cmp byte [eax], 0
jne 0x10018e20
mov dword [ebp - 0x4d0], ecx
xorps xmm0, xmm0
mov dword [ebp - 0x4c8], 0
lea edi, [ebp - 0x494]
mov dword [ebp - 0x3fc], 0xb1beb3b0
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x3f8], 0xb9bbbdb7
xor ecx, ecx
movups xmmword [ebp - 0x60], xmm0
mov byte [ebp - 0x3f4], 0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x3fc], al
inc ecx
cmp ecx, 8
jb 0x10018e70
mov al, byte [ebp - 0x3fc]
mov byte [ebp - 0x3f4], 0
mov byte [ebp - 0x70], al
test al, al
je 0x10018eb2
xor ecx, ecx
nop word [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x3fc]
mov byte [ebp + ecx - 0x70], al
test al, al
jne 0x10018ea0
movsx ecx, byte [ebp - 0x494]
mov esi, 3
mov al, cl
mov dword [ebp - 0x4cc], ecx
add al, al
add cl, al
add cl, byte [ebp - 0x70]
inc cl
mov byte [ebp - 0x70], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x70]
cdq
idiv ecx
movzx eax, byte [ebp - 0x6f]
or edx, dword [ebp - 0x4cc]
add al, dl
mov byte [ebp - 0x6f], al
movzx eax, byte [ebp - 0x6f]
mov cl, byte [ebp - 0x70]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x6d]
mov byte [ebp - 0x6d], cl
movsx ecx, byte [ebp - 0x6d]
movzx eax, byte [ebp - 0x6c]
sar ecx, 6
add al, cl
mov byte [ebp - 0x6c], al
xor eax, eax
movsx edx, byte [ebp + esi - 0x70]
movsx ecx, byte [ebp + esi - 0x71]
add edx, edx
add ecx, edx
inc esi
lea eax, [eax + ecx*2]
cmp esi, 0x11
jl 0x10018f12
mov ecx, dword [ebp - 0x4c8]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10018f8f
mov eax, dword [ebp - 0x4c8]
mov dword [ebp - 0x4c8], eax
cmp dword [ebp - 0x4c8], 0xe
jle 0x10018f5c
mov dword [ebp - 0x4c8], 1
mov al, byte [ebp - 0x494]
lea edx, [ebp - 0x30]
add edx, dword [ebp - 0x4d0]
lea ecx, [ebp - 0x494]
mov byte [edx], al
test al, al
je 0x10018fbd
mov eax, ecx
sub edx, eax
nop dword [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edx], al
test al, al
jne 0x10018f80
jmp 0x10018fbd
mov al, byte [ebp - 0x494]
lea ecx, [ebp - 0x30]
add ecx, dword [ebp - 0x4d0]
mov byte [ecx], al
test al, al
je 0x10018fbd
lea eax, [ebp - 0x494]
sub ecx, eax
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [edi + ecx], al
test al, al
jne 0x10018fb0
push 0x40
lea eax, [ebp - 0x1d0]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x1d0]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea ecx, [ebp - 0x1d0]
add esp, 0x18
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10018ff0
sub ecx, edx
lea eax, [ebp - 0x1d0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x480]
call fcn.1000a4f0
mov esi, 0xfffffffa
cmp dword [ebp - 0x470], 0
je 0x10019031
lea edx, [ebp - 0x480]
lea ecx, [ebp - 0x4e0]
call fcn.10015ac0
movsd xmm3, qword [0x1003a928]
lea ecx, [ebp - 0x4e0]
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
mulsd xmm2, xmm3
addsd xmm4, qword [0x1003a920]
addsd xmm2, qword [0x1003a910]
movaps xmm0, xmm4
movsd qword [0x1003a920], xmm4
mulsd xmm0, xmm1
movsd qword [0x1003a910], xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
addsd xmm2, xmm1
movsd qword [0x1003a928], xmm0
movsd qword [0x1003a918], xmm2
call fcn.1001b470
push 0
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 5
call fcn.1000a380
push 0
lea ecx, [ebp - 0x4ac]
mov byte [ebp - 4], 6
call fcn.1000c8d0
push 0
lea ecx, [ebp - 0x4c4]
mov byte [ebp - 4], 7
call fcn.1000c8d0
movsd xmm2, qword [0x1003a928]
movsd xmm1, qword [0x1003a918]
movaps xmm5, xmm2
mulsd xmm5, qword [0x1003a910]
movaps xmm3, xmm1
mov eax, dword [ebp - 0x4d4]
mulsd xmm3, xmm2
addsd xmm5, qword [0x1003a920]
addsd xmm3, qword [0x1003a910]
movsd qword [0x1003a920], xmm5
movaps xmm4, xmm5
mulsd xmm4, xmm1
movsd qword [0x1003a910], xmm3
addsd xmm4, xmm2
movaps xmm2, xmm3
mulsd xmm2, xmm5
movsd qword [0x1003a928], xmm4
addsd xmm2, xmm1
movsd qword [0x1003a918], xmm2
test eax, eax
je 0x1001916f
push eax
call fcn.10023a85
movsd xmm5, qword [0x1003a920]
add esp, 4
movsd xmm3, qword [0x1003a910]
movsd xmm4, qword [0x1003a928]
movsd xmm2, qword [0x1003a918]
movsd xmm6, qword [0x10037da8]
lea ecx, [ebp - 0x4c4]
movaps xmm0, xmm2
movaps xmm1, xmm4
addsd xmm0, xmm6
divsd xmm1, xmm0
movaps xmm0, xmm5
subsd xmm3, xmm1
movaps xmm1, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a910], xmm3
divsd xmm1, xmm0
movaps xmm0, xmm3
subsd xmm4, xmm1
movaps xmm1, xmm5
addsd xmm0, xmm6
movsd qword [0x1003a928], xmm4
addsd xmm4, xmm6
divsd xmm1, xmm0
divsd xmm3, xmm4
subsd xmm2, xmm1
subsd xmm5, xmm3
movsd qword [0x1003a918], xmm2
movsd qword [0x1003a920], xmm5
call fcn.1000a2f0
lea ecx, [ebp - 0x4ac]
call fcn.1000a2f0
lea ecx, [ebp - 0x480]
call fcn.1000a240
lea ecx, [ebp - 0x4e0]
call fcn.1001b4c0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret