Function at 0x100176a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov eax, dword [0x1006c460]
mov edx, dword [0x1006c464]
mov ecx, eax
and ecx, edx
mov edi, eax
or edi, edx
sub edi, ecx
sub edi, ecx
xor eax, edx
not eax
add eax, edi
mov edx, dword [0x10075a48]
add eax, ecx
add eax, 0xb
cmp dword [0x10075a44], eax
setl al
mov ecx, edx
not ecx
add ecx, 0xf37d0886
imul ecx, edx
mov edx, dword [0x1006c46c]
mov esi, edx
not esi
or esi, edx
mov edx, dword [0x1006c468]
and esi, edx
sub esi, edx
and ecx, 1
cmp ecx, esi
sete cl
or cl, al
mov edi, dword [ebp + 8]
cmp cl, 1
jne 0x10017794
push eax
mov dword [ebp - 0x18], esp
push eax
mov eax, esp
cmp edi, dword [ebp + 0xc]
mov dword [ebp - 0x2c], eax
setl byte [eax]
push eax
mov esi, esp
mov eax, dword [0x1006c470]
mov ecx, dword [0x1006c474]
mov edx, ecx
not edx
or edx, ecx
and edx, eax
sub edx, eax
add edx, 0x53f22c6a
mov dword [ebp - 0x20], esi
mov dword [esi], edx
push eax
mov dword [ebp - 0x24], esp
push eax
mov ebx, esp
mov eax, dword [0x1006c480]
mov ecx, dword [0x1006c484]
mov edx, eax
not edx
mov esi, edx
or esi, ecx
sub edx, esi
and eax, ecx
add eax, edx
add eax, 0xa
mov ecx, dword [0x10075a40]
cmp dword [0x10075a3c], eax
setl al
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
or cl, al
mov dword [ebx], 0x61c90aac
add cl, 1
test cl, 1
je 0x100177fc
push eax
push eax
mov eax, esp
cmp edi, dword [ebp + 0xc]
setl byte [eax]
push eax
mov eax, esp
mov esi, dword [0x1006c7c8]
mov edx, dword [0x1006c7cc]
mov ecx, esi
not ecx
mov edi, ecx
and edi, edx
xor esi, edx
not esi
add esi, esi
lea esi, [esi + edi*2]
or ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x53f22c6a
mov dword [eax], esi
push eax
push eax
mov eax, esp
mov ecx, dword [0x1006c7d0]
mov edx, dword [0x1006c7d4]
mov esi, ecx
and esi, edx
mov edi, ecx
or edi, edx
not edi
add edi, esi
xor ecx, edx
add ecx, edi
add ecx, 0x61c90aad
mov edi, dword [ebp + 8]
mov dword [eax], ecx
jmp 0x10017713
mov dword [ebp - 0x10], ebx
nop
mov edi, dword [ebp - 0x10]
mov ecx, dword [0x1006c4a0]
mov edx, dword [0x1006c4a4]
mov eax, ecx
xor eax, ecx
not eax
and eax, edx
xor eax, ecx
xor ecx, edx
mov edx, dword [0x10075a38]
sub eax, ecx
add eax, 0xa
cmp dword [0x10075a34], eax
setl al
lea ecx, [edx - 1]
imul ecx, edx
mov edx, dword [0x1006c4a8]
mov esi, edx
not esi
or esi, edx
mov edx, dword [0x1006c4ac]
and esi, edx
sub esi, edx
and ecx, 1
cmp ecx, esi
setne cl
sete dl
or dl, al
or cl, al
add al, dl
not dl
add dl, al
add cl, dl
mov eax, dword [edi]
test cl, 1
je 0x10017803
cmp eax, 0xf67e6974
jle 0x10017920
cmp eax, 0x195b5eea
jle 0x100179e0
cmp eax, 0x61c90aab
jle 0x10017ae7
cmp eax, 0x61c90aac
je 0x10017d0f
cmp eax, 0x72d3a3ce
je 0x10017d77
cmp eax, 0x77517066
jne 0x100180b0
mov esi, dword [0x10075a30]
cmp dword [0x10075a2c], 0xa
setl ch
setge cl
lea edx, [esi + 1]
imul edx, esi
mov ebx, dword [0x1006c738]
mov edi, dword [0x1006c73c]
mov eax, ebx
and eax, edi
mov esi, ebx
or esi, edi
not esi
add esi, eax
xor ebx, edi
lea eax, [ebx + esi]
add eax, 1
and edx, 1
cmp edx, eax
setne al
sete dl
and cl, dl
or dl, ch
add dl, cl
or al, ch
add al, dl
mov ecx, dword [ebp + 0xc]
not ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 8]
not ecx
mov dword [ebp - 0x14], ecx
test al, 1
je 0x10019460
jmp 0x100197b4
cmp eax, 0xca78441c
jg 0x10017a70
cmp eax, 0xbabd3513
jg 0x10017b5d
cmp eax, 0x98b3d399
je 0x10017e1c
cmp eax, 0xa4bcb329
jne 0x100180a1
mov eax, dword [0x1006c548]
mov ecx, dword [0x1006c54c]
mov edx, eax
not edx
mov esi, edx
and esi, ecx
add esi, esi
mov edi, eax
sub edi, esi
mov esi, dword [0x10075a28]
xor eax, ecx
add eax, edi
add eax, ecx
lea eax, [eax + edx*2]
add eax, 0xc
cmp dword [0x10075a24], eax
setge ch
setl cl
mov edx, esi
not edx
add edx, esi
add edx, esi
imul edx, esi
mov ebx, dword [0x1006c550]
mov edi, dword [0x1006c554]
mov eax, ebx
and eax, edi
mov esi, ebx
or esi, edi
not esi
add esi, eax
xor ebx, edi
lea eax, [ebx + esi]
add eax, 1
and edx, 1
cmp edx, eax
sete al
setne dl
and dl, cl
or cl, al
add cl, dl
or ch, al
add ch, cl
test ch, 1
je 0x10018a12
jmp 0x10018ab1
cmp eax, 0x34ec3f3
jg 0x10017bf0
cmp eax, 0xf67e6975
je 0x10017e70
cmp eax, 0xfecdb0bf
jne 0x100180b0
mov edx, dword [0x10075a20]
mov ecx, edx
not ecx
mov eax, dword [0x1006c660]
mov esi, dword [0x1006c664]
mov edi, eax
not edi
or edi, eax
and edi, esi
sub edi, esi
add edi, 0xa
cmp dword [0x10075a1c], edi
setl al
and ecx, 0xfffffffe
lea ecx, [ecx + edx*2]
mov esi, edx
or esi, 0xfffffffe
sub ecx, esi
add ecx, 1
imul ecx, edx
test cl, 1
sete dl
mov ah, al
and ah, dl
add ah, al
mov dh, al
xor dh, dl
add dh, ah
or dl, al
add dl, dh
or cl, al
add cl, dl
test cl, 1
je 0x10018670
jmp 0x100186d5
cmp eax, 0xec85a997
jg 0x10017c80
cmp eax, 0xca78441d
je 0x10017e9a
cmp eax, 0xe99e9466
jne 0x100180b0
mov ecx, dword [0x1006c5e8]
mov eax, dword [0x1006c5ec]
mov esi, ecx
and esi, eax
sub esi, ecx
mov edx, ecx
not edx
mov edi, edx
and edi, eax
add edi, esi
or edx, eax
not eax
or eax, ecx
add eax, edi
sub eax, edx
mov ecx, dword [0x10075a18]
add eax, 0xa
cmp dword [0x10075a14], eax
setl al
lea edx, [ecx - 1]
imul edx, ecx
test dl, 1
sete cl
or cl, al
add cl, 1
test cl, 1
je 0x100181ec
jmp 0x10018264
cmp eax, 0x195b5eeb
je 0x10017f1a
cmp eax, 0x4d27f8b1
jne 0x100180b0
mov edx, dword [0x10075a10]
cmp dword [0x10075a0c], 0xa
setl al
mov ecx, edx
and ecx, 0x7ffffffe
lea ecx, [edx + ecx*2]
mov esi, edx
not esi
add esi, ecx
lea ecx, [edx + esi]
add ecx, 0x505d35d6
imul ecx, edx
and ecx, 1
mov edx, dword [0x1006c6b8]
mov esi, dword [0x1006c6bc]
mov edi, esi
not edi
and edi, edx
add edi, esi
or edx, esi
sub edi, edx
cmp ecx, edi
sete cl
or cl, al
add cl, 1
test cl, 1
je 0x100187bf
jmp 0x1001881c
cmp eax, 0xbabd3514
je 0x10017f6e
cmp eax, 0xc55cb751
jne 0x100180b0
mov edx, dword [0x10075a08]
mov eax, dword [0x1006c610]
mov esi, dword [0x1006c614]
mov ecx, eax
not ecx
mov edi, ecx
and edi, esi
xor eax, esi
not eax
add eax, edi
or ecx, esi
sub eax, ecx
add eax, 0xa
cmp dword [0x10075a04], eax
setge byte [ebp - 0x14]
setl byte [ebp - 0x1c]
lea esi, [edx + 1]
imul esi, edx
mov edx, dword [0x1006c618]
mov ebx, dword [0x1006c61c]
mov edi, edx
and edi, ebx
mov eax, edx
or eax, ebx
sub eax, edi
sub eax, edi
xor edx, ebx
not edx
add edx, eax
lea eax, [edi + edx]
add eax, 1
and esi, 1
cmp esi, eax
sete al
mov cl, byte [ebp - 0x1c]
or al, cl
add al, cl
add al, byte [ebp - 0x14]
test al, 1
je 0x10018144
jmp 0x100181ae
cmp eax, 0x34ec3f4
je 0x10017fda
cmp eax, 0x95094d4
jne 0x100180b0
mov esi, dword [0x10075a00]
mov eax, dword [0x1006c780]
mov ecx, dword [0x1006c784]
mov edx, eax
and edx, ecx
mov edi, eax
or edi, ecx
not edi
add edi, edx
xor eax, ecx
add eax, edi
add eax, 0xb
cmp dword [0x100759fc], eax
setge ah
setl al
lea edx, [esi + 1]
imul edx, esi
mov esi, dword [0x1006c788]
mov edi, dword [0x1006c78c]
mov ebx, esi
not ebx
lea ecx, [esi + ebx*2]
or ebx, edi
sub ebx, ecx
and esi, edi
not esi
add esi, ebx
and edx, 1
cmp edx, esi
sete cl
setne dl
and dl, al
mov ch, al
or ch, cl
add ch, dl
add ch, ah
and al, cl
sub ch, al
test ch, 1
je 0x10018701
jmp 0x10018797
cmp eax, 0xec85a998
je 0x10018046
cmp eax, 0xf0752e68
jne 0x100180b0
mov edx, dword [0x100759f8]
mov eax, dword [0x1006c6d8]
mov ecx, dword [0x1006c6dc]
mov esi, ecx
not esi
and esi, eax
add esi, ecx
or eax, ecx
sub esi, eax
add esi, 0xa
cmp dword [0x100759f4], esi
setl al
lea esi, [edx - 1]
imul esi, edx
mov edx, dword [0x1006c6e0]
mov ebx, dword [0x1006c6e4]
mov ecx, edx
and ecx, ebx
mov dword [ebp - 0x14], ecx
mov ecx, ebx
not ecx
mov edi, ebx
or edi, ecx
and edi, edx
or edx, ebx
sub edx, edi
add edx, ecx
mov ecx, dword [ebp - 0x14]
add ecx, edx
add ecx, 1
and esi, 1
cmp esi, ecx
sete cl
mov edx, eax
xor dl, cl
and al, cl
not al
add al, dl
test al, 1
je 0x100182a8
jmp 0x100184e0
mov eax, dword [0x1006c4d0]
mov ecx, dword [0x1006c4d4]
mov edx, eax
or eax, ecx
not ecx
and edx, ecx
not eax
add eax, eax
lea eax, [eax + edx*2]
add ecx, ecx
sub eax, ecx
add eax, 0xa
cmp dword [0x100759f0], eax
mov edx, dword [0x100759ec]
setl al
lea ecx, [edx + 1]
imul ecx, edx
mov edx, dword [0x1006c4d8]
mov esi, dword [0x1006c4dc]
mov edi, edx
and edi, esi
mov ebx, edx
or ebx, esi
sub ebx, edi
xor edx, esi
sub ebx, edx
and ecx, 1
cmp ecx, ebx
sete cl
or cl, al
cmp cl, 1
je 0x1001883f
jmp 0x100188b1
mov edx, dword [0x1006c570]
mov esi, dword [0x1006c574]
mov eax, edx
not eax
mov ecx, eax
and ecx, esi
lea edi, [ecx + ecx*2]
mov ecx, edx
xor ecx, esi
add ecx, ecx
sub edi, ecx
mov ecx, dword [0x100759e8]
or edx, esi
add edx, edi
not esi
lea edx, [edx + esi*2]
sub edx, eax
add edx, 0xb
cmp dword [0x100759e4], edx
setl byte [ebp - 0x14]
mov edx, ecx
and edx, 0x7ffffffe
add edx, edx
lea esi, [ecx + ecx]
sub esi, edx
mov edx, ecx
not edx
mov edi, edx
and edi, 1
sub esi, edi
add esi, edx
add edx, esi
add edx, 0x92d14702
imul edx, ecx
mov eax, dword [0x1006c578]
mov ecx, dword [0x1006c57c]
mov ebx, eax
and ebx, ecx
mov edi, eax
or edi, ecx
not ecx
mov esi, eax
and esi, ecx
sub esi, ebx
not edi
add edi, esi
sub edi, ecx
sub edi, ecx
or ecx, eax
add ecx, edi
and edx, 1
cmp edx, ecx
sete al
or al, byte [ebp - 0x14]
add al, 1
test al, 1
je 0x10018ad2
jmp 0x10018b63
mov ecx, dword [0x100759e0]
mov eax, dword [0x1006c708]
mov edx, dword [0x1006c70c]
mov esi, eax
or esi, edx
not eax
or eax, edx
not edx
add edx, esi
add eax, edx
add eax, 0xc
cmp dword [0x100759dc], eax
setl al
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
and dl, al
add dl, al
mov ah, al
or ah, cl
add ah, dl
and al, cl
not al
add al, ah
test al, 1
je 0x10018e46
jmp 0x10019160
cmp dword [0x100759d8], 0xa
mov eax, dword [0x100759d4]
setl cl
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp al, 1
je 0x10018d10
jmp 0x10018d6c
mov eax, dword [0x1006c688]
mov ecx, dword [0x1006c68c]
mov esi, ecx
not esi
mov edi, eax
and edi, esi
mov edx, eax
xor edx, ecx
not edx
add edx, edi
sub edx, esi
not eax
add edx, eax
or eax, ecx
sub edx, eax
add edx, 0xa
cmp dword [0x100759d0], edx
mov edx, dword [0x100759cc]
setl al
lea ecx, [edx - 1]
imul ecx, edx
mov edx, dword [0x1006c690]
mov esi, dword [0x1006c694]
mov edi, edx
or edi, esi
not edi
add edi, esi
not edx
or edx, esi
sub edi, edx
and ecx, 1
cmp ecx, edi
sete cl
mov edx, eax
and dl, cl
mov ah, al
or ah, cl
add dl, ah
not ah
add ah, dl
xor al, cl
not al
add al, ah
test al, 1
jne 0x10018dac
jmp 0x10018e20
mov eax, dword [0x1006c4f8]
mov ecx, dword [0x1006c4fc]
mov edx, eax
mov esi, eax
not esi
and esi, ecx
mov edi, eax
or edi, ecx
xor eax, ecx
not ecx
and edx, ecx
lea edx, [esi + edx*2]
sub edx, edi
not eax
add eax, edx
sub eax, ecx
add eax, 0xa
cmp dword [0x100759c8], eax
mov eax, dword [0x100759c4]
setl cl
lea edx, [eax - 1]
imul edx, eax
test dl, 1
sete al
or al, cl
cmp al, 1
je 0x100188e2
jmp 0x10018945
mov ecx, dword [0x100759c0]
mov eax, dword [0x1006c520]
mov edx, dword [0x1006c524]
mov esi, eax
not esi
mov edi, esi
and edi, edx
or eax, edx
not eax
add eax, edi
sub eax, esi
add eax, 0xa
cmp dword [0x100759bc], eax
setl al
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, dword [0x1006c528]
mov esi, dword [0x1006c52c]
mov edi, ecx
xor edi, esi
mov ebx, ecx
or ebx, esi
sub ebx, edi
and ecx, esi
sub ebx, ecx
and edx, 1
cmp edx, ebx
sete cl
mov edx, eax
and dl, cl
xor al, cl
add al, dl
add al, 1
test al, 1
je 0x10018983
jmp 0x100189ca
mov esi, dword [0x100759b8]
cmp dword [0x100759b4], 0xa
setge cl
setl al
mov edx, esi
and edx, 1
mov edi, esi
and edi, 0xfffffffe
sub edi, edx
add edi, esi
lea edx, [esi + edi]
add edx, 0xffffffff
imul edx, esi
mov esi, dword [0x1006c5c8]
mov edi, dword [0x1006c5cc]
mov ebx, esi
or esi, edi
not edi
and ebx, edi
not esi
add esi, ebx
sub esi, edi
and edx, 1
cmp edx, esi
sete dl
setne ah
and ah, al
mov ch, al
or ch, dl
add ch, ah
add ch, cl
and al, dl
not al
add al, ch
test al, 1
jne 0x10018c75
jmp 0x10018cef
mov esi, dword [0x100759b0]
cmp dword [0x100759ac], 0xa
setl ch
setge cl
lea edx, [esi - 1]
imul edx, esi
mov ebx, dword [0x1006c5a0]
mov edi, dword [0x1006c5a4]
mov eax, ebx
and eax, edi
mov esi, ebx
or esi, edi
not esi
add esi, eax
xor ebx, edi
lea eax, [ebx + esi]
add eax, 1
and edx, 1
cmp edx, eax
setne al
sete dl
and cl, dl
or dl, ch
add dl, cl
or al, ch
add al, dl
test al, 1
je 0x10018baa
jmp 0x10018c54
cmp eax, 0x98bd207d
je 0x10019ad0
nop dword [eax]
mov edx, dword [0x100759a8]
mov esi, dword [0x1006c4c0]
mov ecx, dword [0x1006c4c4]
mov edi, esi
or edi, ecx
mov eax, esi
xor eax, ecx
not eax
add eax, edi
not ecx
add eax, ecx
or ecx, esi
sub eax, ecx
add eax, 0xb
cmp dword [0x100759a4], eax
setge ch
setl cl
lea esi, [edx + 1]
imul esi, edx
mov ebx, dword [0x1006c4c8]
mov edi, dword [0x1006c4cc]
mov eax, ebx
and eax, edi
add eax, eax
mov edx, ebx
sub edx, eax
not ebx
mov eax, ebx
and eax, edi
sub edx, eax
add edx, edi
or ebx, edi
lea eax, [ebx + edx]
add eax, 1
and esi, 1
cmp esi, eax
sete dl
setne al
mov ah, cl
and ah, al
mov dh, cl
or dh, dl
add dh, ah
xor cl, dl
not cl
add cl, dh
add cl, al
add cl, ch
or ch, dl
add ch, cl
test ch, 1
je 0x100180b0
jmp 0x10019760
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x1006c624]
mov edx, ecx
not edx
or edx, ecx
mov ecx, dword [0x1006c620]
and edx, ecx
sub edx, ecx
add edx, 0xf16083a0
cmp eax, edx
mov eax, 0xfecdb0bf
mov ecx, 0x98b3d399
cmove eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov edx, dword [0x100759a0]
cmp dword [0x1007599c], 0xa
setge al
setl cl
lea ebx, [edx - 1]
imul ebx, edx
test bl, 1
sete dl
mov ah, cl
or ah, dl
add ah, al
or al, dl
add al, ah
and cl, dl
sub al, cl
test al, 1
jne 0x10019760
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x1006c818]
mov edx, dword [0x1006c81c]
mov esi, ecx
or ecx, edx
not edx
and esi, edx
not ecx
add ecx, esi
sub ecx, edx
add ecx, 0xf16083a0
cmp eax, ecx
mov eax, 0xfecdb0bf
mov ecx, 0x98b3d399
cmove eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x10018144
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x1006c5f8]
mov edx, dword [0x1006c5fc]
mov esi, ecx
or esi, edx
not ecx
or ecx, edx
not edx
add edx, esi
add ecx, edx
add ecx, 0xf16083a2
cmp eax, ecx
mov eax, 0xc55cb751
mov ecx, 0xf67e6975
cmovl eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov esi, dword [0x10075998]
cmp dword [0x10075994], 0xa
setge al
setl cl
lea edx, [esi - 1]
imul edx, esi
and edx, 1
sete ah
mov ch, cl
and ch, dl
mov ebx, ecx
or bl, ah
add bl, ch
xor cl, ah
not cl
add cl, bl
add cl, dl
add cl, al
or al, ah
add al, cl
test al, 1
jne 0x10019760
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x1006c810]
mov esi, dword [0x1006c814]
mov edx, ecx
and edx, esi
mov edi, esi
not edi
and edi, ecx
not ecx
or ecx, esi
sub edi, edx
add ecx, edi
add ecx, edx
add ecx, 0xf16083a1
cmp eax, ecx
mov eax, 0xc55cb751
mov ecx, 0xf67e6975
cmovl eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x100181ec
mov eax, dword [0x1006c6e8]
mov ecx, dword [0x1006c6ec]
mov edx, eax
and edx, ecx
mov esi, eax
xor esi, ecx
add esi, edx
or eax, ecx
sub eax, esi
cmp dword [ebp + 0xc], eax
mov eax, 0x348d96f5
mov ecx, 0xf16083a0
cmovg eax, ecx
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
mov eax, dword [0x1006c450]
mov ecx, dword [0x1006c454]
mov edx, ecx
not edx
lea ecx, [ecx + edx*2]
sub ecx, edx
add ecx, 1
or ecx, edx
mov esi, ecx
not esi
sub ecx, esi
sub ecx, esi
add ecx, esi
add ecx, esi
lea esi, [ecx + esi*2]
add esi, 1
mov ecx, eax
and ecx, esi
mov edi, eax
xor edi, esi
lea ecx, [ecx + edi*2]
or esi, eax
sub ecx, esi
mov esi, ecx
and esi, eax
mov edi, ecx
or edi, eax
not edi
lea edi, [edi + esi*2]
xor ecx, eax
lea esi, [ecx + edi]
add esi, 1
lea ecx, [ecx + edi + 2]
mov dword [ebp - 0x14], ecx
mov ebx, esi
not ebx
mov edi, eax
neg edi
and ebx, edi
lea ebx, [ebx + ebx*2]
add ebx, ecx
sub ebx, eax
mov ecx, esi
xor esi, edi
add esi, esi
sub ebx, esi
or edi, ecx
add edi, ebx
lea esi, [edi + eax*2]
mov ecx, dword [ebp - 0x14]
add ecx, esi
add ecx, 0xfffffffd
xor edx, eax
mov esi, edx
and esi, eax
add esi, esi
sub esi, eax
or eax, edx
add eax, esi
sub eax, edx
mov edx, eax
not edx
mov esi, edx
and esi, 0x5859e7c3
add esi, edx
mov edx, eax
and edx, 0x5859e7c3
lea edx, [esi + edx*2]
mov esi, eax
xor esi, 0xa7a6183c
sub edx, esi
mov esi, eax
and esi, 0xa7a6183c
add edx, esi
or eax, 0x5859e7c3
sub edx, eax
mov edi, edx
not edi
mov eax, edi
and eax, esi
mov ebx, edx
or ebx, esi
lea eax, [ebx + eax*2]
xor edx, esi
not edx
lea eax, [eax + edx*2]
or edi, esi
add edi, edi
sub eax, edi
mov edx, eax
not edx
mov esi, eax
and esi, 0xa7a6183c
mov edi, eax
xor edi, 0xa7a6183c
add edi, esi
and edx, 0x5859e7c3
add edx, edi
xor eax, 0x5859e7c3
sub eax, edx
mov edx, ecx
and edx, eax
lea edx, [edx + edx*2]
mov esi, ecx
sub esi, edx
not ecx
mov edx, ecx
xor edx, eax
add edx, esi
or ecx, eax
lea esi, [edx + ecx]
lea eax, [ecx + edx]
add eax, 1
mov ecx, eax
and ecx, 0x6b4e52ca
lea ecx, [esi + ecx*2]
add ecx, 1
mov edx, eax
not edx
and edx, 0x14b1ad35
lea ecx, [ecx + edx*2]
xor eax, 0x14b1ad35
add eax, eax
sub ecx, eax
imul eax, ecx, 0x7b3eb885
lea ecx, [eax + 0x7b3eb885]
mov edx, ecx
not edx
and ecx, 0xcd1505f9
add eax, ecx
add eax, 0x7b3eb885
and edx, 0xcd1505f9
add edx, eax
imul ecx, edx, 0xe060804d
lea eax, [ecx - 0x1f9f7fb3]
mov edx, eax
not edx
mov esi, edx
and esi, 0x1ea4218e
add ecx, esi
add ecx, 0xe060804d
xor eax, 0xe15bde71
add eax, ecx
or edx, 0x1ea4218e
sub eax, edx
add eax, 0xe15bde72
mov ecx, eax
and ecx, 0xcff033ce
or eax, 0xcff033ce
add eax, ecx
add eax, 0x1ea4218e
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov ecx, dword [0x1006c6f8]
mov eax, dword [0x1006c6fc]
mov esi, ecx
and esi, eax
sub esi, ecx
mov edx, ecx
not edx
mov edi, edx
and edi, eax
add edi, esi
or edx, eax
not eax
or eax, ecx
add eax, edi
sub eax, edx
add eax, 0xa
cmp dword [0x10075990], eax
mov eax, dword [0x1007598c]
setl cl
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x95094d4
jne 0x10019760
cmp dword [ebp + 0xc], 0
mov eax, 0x348d96f5
mov ecx, 0xf16083a0
cmovg eax, ecx
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
mov edx, dword [0x1006c450]
mov ecx, dword [0x1006c454]
not ecx
lea esi, [ecx + ecx]
sub esi, ecx
xor esi, edx
not esi
mov edi, edx
neg edi
lea eax, [edx - 1]
or eax, edi
and eax, edx
and eax, esi
sub eax, edx
mov esi, edx
xor esi, ecx
mov edi, edx
not edi
add esi, edi
or edi, ecx
sub esi, edi
and ecx, edx
add ecx, esi
and ecx, edx
mov esi, ecx
xor esi, 0x5859e7c3
mov edi, esi
and edi, 0x5859e7c3
mov edx, esi
xor edx, 0xa7a6183c
add edx, edi
add edx, ecx
mov ecx, eax
neg ecx
or esi, 0x5859e7c3
sub edx, esi
mov esi, edx
neg esi
add edx, 0xffffffff
and edx, ecx
add ecx, ecx
sub ecx, edx
add eax, 0xffffffff
and eax, esi
add eax, ecx
add esi, esi
sub eax, esi
add eax, 0x14b1ad35
mov ecx, eax
and ecx, 1
mov edx, eax
xor edx, 1
add edx, ecx
or eax, 0xfffffffe
lea ecx, [edx + eax]
add eax, edx
add eax, 2
not eax
lea eax, [eax + ecx*2]
add eax, 4
imul eax, eax, 0x7b3eb885
lea ecx, [eax - 0x63645c04]
mov edx, ecx
or edx, 0x32eafa06
add eax, edx
add eax, 0x9c9ba3fc
mov edx, ecx
xor edx, 0xcd1505f9
add edx, eax
or ecx, 0xcd1505f9
sub edx, ecx
imul ecx, edx, 0xe060804d
lea eax, [ecx + 0x601f9864]
mov edx, eax
and edx, 0x1ea4218e
add edx, edx
add ecx, ecx
add ecx, 0xc03f30c8
sub ecx, edx
not eax
mov edx, eax
and edx, 0x1ea4218e
sub ecx, edx
or eax, 0x1ea4218e
lea edx, [ecx + eax]
add ecx, eax
add ecx, 1
mov eax, ecx
and eax, 0x300fcc31
add edx, eax
add edx, 1
mov eax, ecx
xor eax, 0x300fcc31
add eax, edx
not ecx
add eax, ecx
or ecx, 0xcff033ce
sub eax, ecx
lea ecx, [eax - 0x601f9863]
mov edx, ecx
not edx
and ecx, 0x615bde71
lea eax, [eax + ecx*2]
add eax, 0x9fe0679d
and edx, 0x615bde71
lea eax, [eax + edx*2]
add eax, 0x5bec64ac
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov eax, dword [0x1006c848]
mov ecx, dword [0x1006c84c]
mov edx, eax
and edx, ecx
mov esi, eax
or esi, ecx
sub esi, edx
xor eax, ecx
not eax
add eax, esi
add eax, 0x95094d5
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x100182a8
mov eax, dword [0x1006c670]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0xca78441e
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov edx, dword [0x10075988]
cmp dword [0x10075984], 0xa
setl al
setge cl
mov esi, edx
or esi, 1
add esi, edx
mov edi, edx
xor edi, 0xfffffffe
add edi, esi
mov esi, edx
not esi
and esi, 1
lea ebx, [esi + edi]
add ebx, 1
imul ebx, edx
test bl, 1
sete dl
mov ah, cl
and ah, dl
add ah, al
or al, dl
add al, ah
add al, bl
or cl, dl
add cl, al
test cl, 1
jne 0x10019760
mov eax, dword [0x1006c828]
mov edx, dword [0x1006c82c]
mov ecx, eax
not ecx
mov esi, ecx
and esi, edx
xor eax, edx
not eax
add eax, esi
or ecx, edx
sub eax, ecx
add eax, 0xca78441d
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x10018670
mov esi, dword [0x10075980]
mov eax, dword [0x1006c798]
mov ecx, dword [0x1006c79c]
mov edx, eax
or eax, ecx
not ecx
and edx, ecx
sub eax, edx
add eax, ecx
add eax, 0xb
cmp dword [0x1007597c], eax
setl al
setge ah
lea ecx, [esi - 1]
imul ecx, esi
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x1006c7a0]
mov ebx, dword [0x1006c7a4]
mov edx, ecx
not edx
mov esi, edx
and esi, ebx
lea esi, [esi + esi*2]
mov edi, ecx
xor edi, ebx
add edi, edi
sub esi, edi
or ecx, ebx
add ecx, esi
not ebx
lea ecx, [ecx + ebx*2]
sub ecx, edx
mov edx, dword [ebp - 0x14]
and edx, 1
add ecx, 1
cmp edx, ecx
sete cl
and ah, cl
add ah, al
mov edx, eax
or dl, cl
add dl, ah
mov ah, al
xor ah, cl
not ah
add ah, dl
and al, cl
not al
add al, ah
mov ecx, dword [ebp - 0x10]
mov dword [ecx], 0x61c90aac
test al, 1
jne 0x10019760
mov eax, dword [0x1006c868]
mov ecx, dword [0x1006c86c]
mov edx, eax
and edx, ecx
sub edx, ecx
or ecx, eax
add ecx, edx
not eax
add eax, ecx
add eax, 0x61c90aad
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x10018701
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0
mov eax, 0x6086039e
mov ecx, 0x8cf6ccbf
cmovne eax, ecx
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
mov eax, dword [0x1006c6c8]
mov ecx, dword [0x1006c6cc]
mov edx, ecx
not edx
and edx, eax
add edx, ecx
or eax, ecx
sub edx, eax
add edx, 0xa
cmp dword [0x10075978], edx
mov eax, dword [0x10075974]
setl cl
lea edx, [eax - 1]
imul edx, eax
test dl, 1
sete al
or al, cl
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x95094d4
jne 0x10019760
mov eax, dword [ebp - 0x2c]
cmp byte [eax], 0
mov eax, 0x6086039e
mov ecx, 0x8cf6ccbf
cmovne eax, ecx
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x95094d4
jmp 0x100187bf
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [0x1006c4e0]
mov ecx, dword [0x1006c4e4]
mov edx, eax
not edx
and edx, ecx
add edx, eax
or eax, ecx
sub edx, eax
add edx, 0x195b5eeb
mov eax, dword [ebp - 0x10]
mov dword [eax], edx
mov eax, dword [0x1006c4e8]
mov ecx, dword [0x1006c4ec]
mov edx, ecx
not edx
mov esi, eax
and esi, edx
add esi, esi
xor ecx, eax
sub ecx, esi
add ecx, edx
add eax, ecx
add eax, 0xb
cmp dword [0x10075970], eax
mov eax, dword [0x1007596c]
setl cl
mov edx, 0xf77678e3
sub edx, eax
imul edx, eax
test dl, 1
sete al
or al, cl
jne 0x10019760
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [0x1006c7d8]
mov ecx, dword [0x1006c7dc]
mov edx, eax
not edx
and edx, ecx
not ecx
or ecx, eax
lea eax, [edx + ecx]
add eax, 0x195b5eec
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x1001883f
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x1006c508]
mov edx, dword [0x1006c50c]
mov esi, edx
not esi
and esi, ecx
add esi, edx
or ecx, edx
sub esi, ecx
add esi, 0x348d96f5
cmp eax, esi
mov eax, 0xbabd3514
mov ecx, 0xe99e9466
cmovl eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov eax, dword [0x10075968]
cmp dword [0x10075964], 0xa
setl cl
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete al
mov edx, ecx
and dl, al
add dl, cl
add dl, al
test dl, 1
jne 0x10019760
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov edx, dword [0x1006c7e0]
mov esi, dword [0x1006c7e4]
mov ecx, edx
or ecx, esi
not ecx
add ecx, esi
not edx
or edx, esi
sub ecx, edx
add ecx, 0x348d96f5
cmp eax, ecx
mov eax, 0xbabd3514
mov ecx, 0xe99e9466
cmovl eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x100188e2
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cmp eax, 0x53f22c6a
mov eax, 0xa4bcb329
mov ecx, 0x34ec3f4
cmovl eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov eax, dword [0x10075960]
cmp dword [0x1007595c], 0xa
setl cl
mov edx, eax
not edx
add edx, eax
add edx, eax
add edx, 4
imul edx, eax
test dl, 1
sete al
or al, cl
jne 0x10019760
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x1006c7e8]
mov edx, dword [0x1006c7ec]
mov esi, ecx
not esi
and esi, edx
lea esi, [esi + esi*2]
lea esi, [esi + ecx*2]
mov edi, ecx
xor edi, edx
or ecx, edx
sub edx, esi
add edi, edx
add ecx, edi
add ecx, 0x53f22c6a
cmp eax, ecx
mov eax, 0xa4bcb329
mov ecx, 0x34ec3f4
cmovl eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x10018983
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x1006c558]
mov edx, dword [0x1006c55c]
mov esi, ecx
not esi
lea edi, [ecx + esi*2]
or esi, edx
sub esi, edi
and ecx, edx
not ecx
add ecx, esi
add ecx, 0x6086039e
cmp eax, ecx
mov eax, 0x72d3a3ce
mov ecx, 0xec85a998
cmovl eax, ecx
mov ecx, dword [0x1006c560]
mov edx, dword [0x1006c564]
mov esi, edx
not esi
and esi, ecx
mov edi, ecx
not edi
add edi, esi
mov ebx, dword [0x10075958]
and ecx, edx
add ecx, edi
add ecx, 0xb
cmp dword [0x10075954], ecx
setl dh
setge dl
lea esi, [ebx - 1]
imul esi, ebx
mov edi, dword [0x1006c56c]
mov ebx, edi
not ebx
mov ecx, dword [0x1006c568]
and ebx, ecx
or ecx, edi
sub ecx, ebx
sub ecx, edi
and esi, 1
cmp esi, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
sete al
and al, dl
add al, dh
test al, 1
jne 0x10019760
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cmp eax, 0x6086039e
mov eax, 0x72d3a3ce
mov ecx, 0xec85a998
cmovl eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x10018a12
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cmp eax, 0x6086039e
mov ecx, 0xfecdb0bf
mov eax, 0x77517066
cmove ecx, eax
mov dword [ebp - 0x14], ecx
mov esi, dword [0x10075950]
mov ecx, dword [0x1006c588]
mov edx, dword [0x1006c58c]
mov edi, ecx
and edi, edx
sub edi, edx
or edx, ecx
add edx, edi
not ecx
add ecx, edx
add ecx, 0xb
cmp dword [0x1007594c], ecx
setge cl
setl dl
lea edi, [esi - 1]
imul edi, esi
mov esi, dword [0x1006c590]
mov ebx, esi
not ebx
mov eax, dword [0x1006c594]
and ebx, eax
add ebx, esi
or esi, eax
sub ebx, esi
and edi, 1
cmp edi, ebx
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
mov dword [eax], esi
sete al
mov ah, dl
xor ah, al
add ah, dl
or dl, al
add ah, dl
not dl
add dl, ah
or cl, al
add cl, dl
test cl, 1
jne 0x10019760
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x1006c7f8]
mov edx, dword [0x1006c7fc]
mov esi, edx
not esi
and esi, ecx
mov edi, ecx
not edi
and edi, edx
add edi, edi
lea esi, [edi + esi*2]
xor ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x6086039e
cmp eax, esi
mov eax, 0xfecdb0bf
mov ecx, 0x77517066
cmove eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x10018ad2
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov edx, dword [0x1006c5a8]
mov esi, dword [0x1006c5ac]
mov ecx, edx
or ecx, esi
not ecx
add ecx, esi
not edx
or edx, esi
sub ecx, edx
add ecx, 0x53f22c6a
cmp eax, ecx
mov eax, 0xfecdb0bf
mov ecx, 0x4d27f8b1
cmove eax, ecx
mov ecx, dword [0x1006c5b0]
mov edx, dword [0x1006c5b4]
mov esi, ecx
not esi
and esi, edx
lea esi, [esi + esi*2]
lea esi, [esi + ecx*2]
mov edi, ecx
xor edi, edx
or ecx, edx
sub edx, esi
add edi, edx
add ecx, edi
add ecx, 0xa
cmp dword [0x10075948], ecx
mov esi, dword [0x10075944]
setl byte [ebp - 0x14]
lea edx, [esi - 1]
imul edx, esi
mov edi, dword [0x1006c5bc]
mov ebx, edi
not ebx
mov ecx, dword [0x1006c5b8]
and ebx, ecx
mov esi, ecx
not esi
and esi, edi
add esi, esi
lea esi, [esi + ebx*2]
xor ecx, edi
add ecx, ecx
sub esi, ecx
and edx, 1
cmp edx, esi
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
sete al
or al, byte [ebp - 0x14]
jne 0x10019760
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cmp eax, 0x53f22c6a
mov eax, 0xfecdb0bf
mov ecx, 0x4d27f8b1
cmove eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x10018baa
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x1006c5d0]
mov esi, dword [0x1006c5d4]
mov edx, ecx
not edx
mov edi, edx
and edi, esi
xor ecx, esi
not ecx
add ecx, edi
or edx, esi
sub ecx, edx
add ecx, 0x348d96f5
cmp eax, ecx
mov eax, 0xfecdb0bf
mov ecx, 0x98bd207d
cmove eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov eax, dword [0x1006c5d8]
mov ecx, dword [0x1006c5dc]
mov edx, ecx
not edx
and edx, eax
add edx, ecx
or eax, ecx
sub eax, edx
mov ecx, dword [0x10075940]
add eax, 0xa
cmp dword [0x1007593c], eax
setl al
lea edx, [ecx - 1]
imul edx, ecx
test dl, 1
sete cl
or cl, al
jne 0x10019760
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cmp eax, 0x348d96f5
mov eax, 0xfecdb0bf
mov ecx, 0x98bd207d
cmove eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x10018c75
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cmp eax, 0x8cf6ccbf
mov eax, 0xfecdb0bf
mov ecx, 0xf0752e68
cmove eax, ecx
mov esi, dword [0x10075938]
cmp dword [0x10075934], 0xa
setl cl
lea edx, [esi - 1]
imul edx, esi
mov esi, dword [0x1006c658]
mov edi, esi
xor edi, esi
not edi
mov ebx, dword [0x1006c65c]
and edi, ebx
xor edi, esi
xor esi, ebx
sub edi, esi
and edx, 1
cmp edx, edi
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
sete al
or al, cl
jne 0x10019760
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x1006c820]
mov edx, dword [0x1006c824]
mov esi, edx
not esi
and esi, ecx
mov edi, ecx
not edi
add edi, esi
and ecx, edx
add ecx, edi
add ecx, 0x8cf6ccc0
cmp eax, ecx
mov eax, 0xfecdb0bf
mov ecx, 0xf0752e68
cmove eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x10018d10
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x95094d4
mov eax, dword [0x10075930]
mov ecx, dword [0x1006c6a0]
mov edx, dword [0x1006c6a4]
mov esi, ecx
not esi
and esi, edx
add esi, ecx
or ecx, edx
sub esi, ecx
add esi, 0xa
cmp dword [0x1007592c], esi
setl cl
mov edx, eax
and edx, 0x7ffffffe
add edx, edx
mov esi, eax
sub esi, edx
mov edx, eax
not edx
add edx, esi
add edx, eax
add edx, 0x5181580
imul edx, eax
mov eax, dword [0x1006c6ac]
mov esi, eax
not esi
or esi, eax
not esi
and esi, dword [0x1006c6a8]
and edx, 1
cmp edx, esi
sete al
or al, cl
jne 0x10019760
mov eax, dword [0x1006c830]
mov ecx, dword [0x1006c834]
mov edx, ecx
not edx
and edx, eax
add edx, ecx
or eax, ecx
sub eax, edx
add eax, 0x95094d4
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x10018dac
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, edi
and eax, 0xfffffffe
mov edx, edi
xor edx, 1
add edx, eax
mov ecx, edi
xor ecx, 0xfffffffe
add ecx, edx
mov eax, edi
not eax
add ecx, eax
mov edx, eax
mov dword [ebp - 0x14], eax
or edx, 1
sub ecx, edx
add ecx, 2
mov edx, ecx
not edx
mov esi, ecx
or esi, edx
and esi, edi
xor ecx, edi
not ecx
add ecx, esi
or edx, edi
sub ecx, edx
mov edx, ecx
and edx, 0x6166c713
mov ebx, ecx
sub ebx, edx
sub ebx, edx
mov esi, ecx
or esi, 0x6166c713
add esi, ebx
xor ecx, 0x9e9938ec
add ecx, esi
lea esi, [ecx + edx]
add ecx, edx
add ecx, 0x6166c714
not ecx
lea ecx, [ecx + esi*2]
add ecx, 0xc2cd8e28
mov dword [ebp - 0x1c], ecx
mov edx, eax
and edx, 0xa91b7aca
mov esi, edi
and esi, 0x56e48535
lea ebx, [edx + esi]
add edx, ebx
not ebx
add ebx, edx
add esi, ebx
add esi, 1
mov edx, esi
xor edx, 0xa91b7acb
xor esi, 0x56e48534
add edx, esi
mov ebx, edx
not ebx
mov eax, esi
and eax, ebx
sub eax, esi
mov ecx, esi
xor ecx, ebx
add ecx, eax
or ebx, esi
add ebx, ecx
or edx, esi
mov ecx, dword [ebp - 0x1c]
add ecx, edi
add edx, ebx
lea eax, [ecx + edx]
add ecx, edx
add ecx, 0x9e9938f0
mov edx, ecx
not edx
and ecx, 1
lea eax, [eax + ecx*2]
add eax, 0x9e9938f0
and edx, 1
lea eax, [eax + edx*2]
mov dword [ebp - 0x1c], eax
mov eax, edi
and eax, 0x9a0e800b
add eax, edi
mov edx, dword [ebp - 0x14]
mov ecx, edx
and ecx, 0x9a0e800b
add ecx, eax
mov eax, edi
or eax, 0x9a0e800b
sub ecx, eax
and edx, 0x65f17ff4
mov ebx, ecx
not ebx
mov eax, edx
and eax, ebx
add eax, eax
mov esi, edx
xor esi, ecx
sub esi, eax
or ecx, edx
add ecx, esi
add ecx, ebx
lea esi, [edx + ecx]
add esi, 1
xor esi, 0x9a0e800b
mov eax, dword [ebp - 0x1c]
mov ebx, eax
neg ebx
lea ecx, [esi - 1]
and ecx, ebx
sub ecx, eax
mov eax, esi
add esi, esi
sub ecx, esi
neg eax
or eax, ebx
sub ecx, eax
mov eax, dword [ebp - 0x14]
and eax, 0xf3f29a37
and edi, 0xc0d65c8
or edi, eax
mov eax, edi
and eax, 0xf3f29a37
mov edx, edi
xor edx, 0xc0d65c8
add edx, eax
or edi, 0xc0d65c8
sub edx, edi
add edx, 0xc0d65c8
mov esi, edx
not esi
mov eax, esi
and eax, 0xfffffffe
xor edx, 1
mov edi, eax
sub edi, edx
mov edx, ecx
neg edx
or esi, 0xfffffffe
add esi, edi
not eax
add eax, esi
mov esi, edx
xor esi, 0x9c8f7c82
sub esi, ecx
add ecx, 0xffffffff
mov edi, ecx
and edi, 0x6370837d
lea esi, [esi + edi*2]
or edx, 0x6370837d
add edx, esi
or ecx, 0x9c8f7c82
sub edx, ecx
add edx, eax
imul eax, edx, 0xb96f7f53
lea ecx, [eax - 0x5af24a68]
mov edx, ecx
and edx, 0x85aef60c
add edx, eax
add edx, 0xa50db598
mov eax, ecx
xor eax, 0x85aef60c
add eax, edx
or ecx, 0x85aef60c
sub eax, ecx
lea ecx, [eax - 0x7a5109f4]
mov edx, ecx
not edx
mov esi, ecx
and esi, 0xda6b4041
add eax, esi
add eax, 0x85aef60c
and edx, 0x2594bfbe
add edx, eax
xor ecx, 0xda6b4041
lea eax, [ecx + edx]
add eax, 0xda6b4042
mov ecx, eax
and ecx, 0x5aef60c
mov edx, eax
and edx, 0x7a5109f3
lea ecx, [edx + ecx*2]
add ecx, eax
not eax
lea ecx, [ecx + eax*2]
or eax, 0x85aef60c
sub ecx, eax
imul eax, ecx, 0xbc6b1cdb
lea ecx, [eax - 0x6a2eaf69]
mov edx, ecx
and edx, 0xe7cf1a99
add eax, edx
add eax, 0x95d15097
mov edx, ecx
not edx
add edx, eax
and ecx, 0x1830e566
lea eax, [ecx + edx]
add eax, 0xbbdd0700
mov ecx, eax
and ecx, 0x1830e566
or eax, 0x1830e566
add eax, ecx
cmp eax, dword [ebp + 0xc]
mov edx, 0xf16083a0
mov ecx, 0x348d96f5
cmove edx, ecx
mov dword [ebp - 0x14], edx
mov edx, dword [0x1006c720]
mov esi, dword [0x1006c724]
mov edi, edx
and edi, esi
sub edi, esi
or esi, edx
add esi, edi
mov edi, dword [0x10075928]
not edx
add edx, esi
add edx, 0xb
cmp dword [0x10075924], edx
setge dl
setl dh
lea esi, [edi + 1]
imul esi, edi
mov edi, dword [0x1006c728]
mov ebx, edi
not ebx
mov ecx, dword [0x1006c72c]
and ebx, ecx
add ebx, edi
or edi, ecx
sub ebx, edi
and esi, 1
cmp esi, ebx
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x14]
mov dword [ecx], esi
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
sete al
mov cl, dh
xor cl, al
add cl, dh
or dh, al
add cl, dh
not dh
add dh, cl
or dl, al
add dl, dh
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x95094d4
test dl, 1
jne 0x10019760
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, edi
xor eax, 1
mov edx, eax
and edx, edi
add edx, eax
mov ecx, edi
xor ecx, 0xfffffffe
and ecx, edi
add ecx, edx
or eax, edi
sub ecx, eax
mov esi, edi
mov edx, edi
mov dword [ebp - 0x14], edi
not esi
mov dword [ebp - 0x1c], esi
mov eax, ecx
not eax
or eax, ecx
and eax, 0x6166c713
sub ecx, eax
or edx, esi
and edx, 0x56e48535
mov eax, esi
and eax, 0xa91b7aca
or eax, edx
mov edx, esi
or edx, 0xa91b7aca
neg edx
lea edi, [esi + edx]
add edi, 0xa91b7aca
sub eax, esi
mov edx, edi
and edx, eax
mov esi, eax
not esi
mov ebx, eax
or ebx, esi
and ebx, edi
or eax, edi
add eax, eax
sub eax, ebx
add eax, esi
add eax, edx
add eax, 1
mov edx, eax
not edx
or eax, 0xa91b7acb
or edx, 0x56e48534
lea esi, [eax + edx]
add edx, eax
add edx, 1
not edx
lea eax, [esi + edx*2]
add eax, 1
sub eax, edx
add eax, 1
or eax, edx
mov esi, dword [ebp - 0x14]
lea edx, [esi + ecx]
add edx, 0x6166c714
add ecx, esi
lea ecx, [ecx + ecx*2]
add ecx, 0x2434553c
not edx
add ecx, edx
add ecx, edx
mov edx, 0xfffffffe
sub edx, ecx
mov edi, eax
neg edi
mov ecx, edx
and ecx, edi
add ecx, edx
sub ecx, eax
mov eax, edx
or eax, edi
not eax
add eax, ecx
xor edi, edx
add edi, eax
mov dword [ebp - 0x28], edi
mov edx, dword [ebp - 0x1c]
mov eax, edx
and eax, 0x65f17ff4
sub eax, edx
mov ecx, esi
and ecx, 0x65f17ff4
sub eax, ecx
mov edi, edx
or edi, 0x65f17ff4
add edi, eax
mov eax, esi
and eax, 0x9a0e800b
mov ecx, edx
and ecx, 0x9a0e800b
lea ecx, [ecx + ecx*2]
add ecx, eax
mov ebx, esi
mov eax, esi
xor eax, 0x1a0e800b
add eax, eax
sub ecx, eax
or ebx, 0x9a0e800b
add ebx, ecx
sub ebx, edx
add ebx, 0xcbe2ffe9
mov eax, ebx
not eax
and eax, edi
add eax, eax
mov ecx, edi
not ecx
and ecx, ebx
mov edx, edi
or edx, ebx
mov esi, edi
xor esi, ebx
and ebx, edi
sub edi, eax
sub edi, ecx
add edx, edi
add esi, edx
sub esi, ebx
mov eax, esi
and eax, 0x9a0e800b
mov ecx, esi
and ecx, 0x65f17ff4
sub ecx, eax
mov eax, esi
xor eax, 0x9a0e800b
add eax, ecx
mov ecx, esi
not ecx
and ecx, 0x65f17ff4
add ecx, eax
or esi, 0x65f17ff4
lea eax, [ecx + esi]
add ecx, esi
add ecx, 0x341d0018
mov esi, dword [ebp - 0x28]
mov edx, esi
or edx, 1
and esi, 1
add esi, edx
add eax, eax
add eax, 0x683a0030
sub ecx, eax
lea edx, [esi + ecx]
lea eax, [ecx + esi]
add eax, 0xfffffffd
mov dword [ebp - 0x28], eax
mov edi, dword [ebp - 0x14]
mov eax, edi
and eax, 0x73f29a37
mov ecx, dword [ebp - 0x1c]
and ecx, 0xf3f29a37
lea eax, [ecx + eax*2]
mov esi, edi
xor esi, 0x73f29a37
lea ebx, [eax + esi*2]
lea eax, [edi + edi]
or eax, 0xe7e5346e
sub ebx, eax
mov eax, edi
and eax, 0xc0d65c8
mov esi, edi
and esi, 0xf3f29a37
sub eax, esi
add eax, edi
add eax, ecx
xor edi, 0xc0d65c8
add eax, edi
add eax, 1
mov esi, ebx
not esi
and esi, eax
mov edi, ebx
or edi, eax
add edi, esi
not eax
or eax, ebx
lea esi, [eax + edi]
add esi, 1
mov edi, esi
xor edi, 0xc0d65c8
not esi
mov eax, esi
and eax, 0xf3f29a37
add eax, edi
or esi, 0xc0d65c8
sub eax, esi
add eax, 0xc0d65c8
mov esi, eax
not esi
mov edi, esi
and edi, 0xfffffffe
and esi, 1
lea esi, [edi + esi*2]
mov edi, eax
and edi, 0x7ffffffe
lea esi, [esi + edi*2]
xor eax, 1
add eax, eax
sub esi, eax
mov eax, 2
sub eax, edx
not esi
and eax, 0x6370837d
sub eax, edx
mov ecx, dword [ebp - 0x28]
and ecx, 0x6370837d
lea edx, [eax + ecx]
add eax, ecx
add eax, 0x391ef907
lea ecx, [esi - 1]
and ecx, eax
add ecx, edx
add ecx, 0x391ef907
sub ecx, esi
neg esi
and esi, eax
not eax
add eax, ecx
lea ecx, [eax + esi]
add eax, esi
add eax, 1
mov edx, eax
not edx
mov esi, edx
and esi, 0x9c8f7c82
add ecx, esi
add ecx, 1
xor eax, 0x6370837d
add eax, ecx
or edx, 0x9c8f7c82
sub eax, edx
add eax, 0x6370837e
cmp eax, dword [ebp + 0xc]
mov ecx, 0xf16083a0
mov edx, 0x348d96f5
cmove ecx, edx
mov edx, dword [ebp - 0x20]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov eax, dword [0x1006c850]
mov edx, dword [0x1006c854]
mov ecx, eax
not ecx
mov esi, ecx
and esi, edx
xor eax, edx
not eax
add eax, esi
or ecx, edx
sub eax, ecx
add eax, 0x95094d4
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x10018e46
mov edi, dword [ebp - 0x1c]
mov eax, edi
and eax, 0x29f7dc
mov edx, dword [ebp + 0xc]
lea ecx, [eax + edx*2]
mov eax, edx
or eax, 0x29f7dc
sub ecx, eax
lea eax, [ecx - 0x29f7dd]
mov edx, eax
not edx
and edx, 0x29f7dd
lea edx, [edx + edx*2]
add ecx, edx
add ecx, 0xffd60823
mov edx, eax
xor edx, 0x29f7dd
sub edx, ecx
or eax, 0x29f7dd
add eax, edx
lea ecx, [edi + edi]
sub ecx, edi
not ecx
mov edx, dword [ebp - 0x14]
add edx, edx
mov ebx, dword [ebp + 8]
lea esi, [ebx + edx]
add esi, 1
add edx, ebx
mov ebx, esi
not ebx
and ebx, ecx
add edx, ebx
add edx, 1
or ecx, esi
add ecx, ecx
sub ecx, edx
not ecx
lea edx, [eax + ecx]
add eax, ecx
add eax, 0x53efba
mov ebx, dword [ebp + 8]
mov ecx, ebx
neg ecx
add edx, ebx
add edx, 0x53efba
mov esi, eax
or esi, ecx
add esi, edx
add esi, ebx
not eax
or eax, ecx
add eax, esi
mov edx, edi
and edx, 0x243dc910
mov esi, edi
and esi, 0xdbc236ef
mov ecx, edx
sub ecx, esi
add ecx, edi
sub ecx, edx
mov esi, dword [ebp + 0xc]
mov edx, esi
xor edx, 0x243dc910
add edx, esi
add edx, edi
or edi, 0xdbc236ef
sub edx, edi
add edx, 0xdbc236f0
mov esi, ecx
not esi
mov ebx, esi
and ebx, edx
mov edi, ecx
or edi, edx
add edi, ebx
xor ecx, edx
not ecx
add ecx, edi
or esi, edx
sub ecx, esi
mov esi, dword [ebp - 0x14]
mov edx, esi
and edx, 0x243dc910
or esi, 0x243dc910
sub esi, edx
mov ebx, dword [ebp + 8]
mov edi, ebx
xor edi, 0x243dc910
add edi, esi
lea esi, [edx + edi]
add esi, 1
mov edx, ebx
and edx, 0xdbc236ef
mov edi, edx
not edi
or edi, edx
and edi, esi
sub edi, esi
or edx, esi
add edx, edi
xor edx, ecx
mov ecx, edx
not ecx
and ecx, 0xcf4e5595
lea esi, [ecx + edx]
mov edi, edx
or edi, 0xcf4e5595
sub esi, edi
add esi, ecx
and edx, 0x30b1aa6a
or edx, esi
xor edx, 0x30b1aa6a
lea ecx, [eax + edx]
add eax, edx
add eax, 0x176cddb
mov edx, eax
and edx, 0x176cdd9
add edx, ecx
add edx, 0x176cddb
mov ecx, eax
xor ecx, 0x176cdd9
add ecx, edx
or eax, 0x176cdd9
sub ecx, eax
mov eax, dword [ebp - 0x1c]
mov edx, eax
and edx, ebx
add edx, eax
xor eax, ebx
sub edx, eax
mov ebx, eax
not ebx
sub edx, ebx
add edx, dword [ebp + 0xc]
mov esi, edx
or esi, eax
add esi, esi
xor eax, edx
not eax
add eax, esi
lea esi, [ecx - 0x176cdda]
add eax, ebx
or edx, ebx
sub eax, edx
mov edx, eax
not edx
mov edi, esi
and edi, 0x1690588c
add edi, edi
add ecx, ecx
add ecx, 0xfd12644c
sub ecx, edi
not esi
mov edi, esi
and edi, 0x9690588c
sub ecx, edi
or esi, 0x9690588c
lea edi, [ecx + esi]
add esi, ecx
add esi, 0x2d20b119
mov ecx, esi
and ecx, eax
add edi, ecx
add edi, 0x2d20b119
sub edi, eax
mov ecx, esi
xor ecx, edx
not ecx
add ecx, edi
sub ecx, eax
not esi
add ecx, esi
or esi, edx
sub ecx, esi
lea eax, [ecx - 1]
and eax, 0x696fa773
lea eax, [ecx + eax*2]
add eax, 0xffffffff
neg ecx
and ecx, 0x696fa773
lea eax, [eax + ecx*2]
imul eax, eax, 0x3ab87b99
add eax, 0x28e126de
mov ecx, eax
and ecx, 0xafa3bedb
mov edx, eax
or edx, 0x505c4124
add edx, ecx
xor eax, 0xafa3bedb
lea ecx, [edx + eax]
add eax, edx
add eax, 0xde2ab8e9
mov edx, eax
not edx
and edx, 0x505c4124
lea ecx, [edx + ecx*2]
add ecx, 0xbc5571d2
or eax, 0x505c4124
sub ecx, eax
imul eax, ecx, 0x842aa8a9
lea ecx, [eax - 0x28715f3c]
add eax, eax
add eax, 0xaf1d4188
sub eax, ecx
add eax, 0x7ed50e14
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [0x10075920]
mov eax, dword [0x1006c750]
mov ecx, dword [0x1006c754]
mov esi, ecx
not esi
and esi, eax
add esi, ecx
or eax, ecx
sub esi, eax
add esi, 0xa
cmp dword [0x1007591c], esi
setl byte [ebp - 0x28]
lea ecx, [edx - 1]
imul ecx, edx
mov edx, dword [0x1006c758]
mov ebx, dword [0x1006c75c]
mov esi, edx
and esi, ebx
mov eax, ebx
not eax
mov edi, ebx
or edi, eax
and edi, edx
or edx, ebx
sub edx, edi
add edx, eax
lea eax, [esi + edx]
add eax, 1
and ecx, 1
cmp ecx, eax
sete al
mov dl, byte [ebp - 0x28]
mov ecx, edx
xor cl, al
and dl, al
sub cl, dl
mov eax, dword [ebp - 0x20]
mov dword [eax], 0x348d96f5
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x95094d4
test cl, 1
je 0x100197b4
nop word cs:[eax + eax]
mov edx, dword [0x10075918]
cmp dword [0x10075914], 0xa
setl byte [ebp - 0x14]
mov ecx, edx
not ecx
add ecx, 2
imul ecx, edx
mov esi, dword [0x1006c7c0]
mov edi, dword [0x1006c7c4]
mov eax, esi
not eax
mov ebx, eax
and ebx, edi
lea ebx, [esi + ebx*2]
mov edx, esi
xor edx, edi
sub ebx, edx
or esi, edi
not esi
add esi, ebx
or eax, edi
sub esi, eax
and ecx, 1
cmp ecx, esi
sete al
or al, byte [ebp - 0x14]
je 0x10019760
jmp 0x10017800
mov ebx, dword [ebp + 0xc]
lea eax, [ebx - 0x29f7dd]
mov ecx, eax
and ecx, 0x29f7dd
lea edx, [ecx + ecx]
neg edx
add edx, ebx
add edx, 0xffd60823
mov esi, eax
or esi, 0x29f7dd
add esi, edx
xor eax, 0xffd60822
add eax, esi
lea edi, [eax + ecx]
add eax, ecx
add eax, 0x29f7de
mov edx, ebx
or edx, dword [ebp - 0x14]
not edx
mov esi, edx
neg esi
lea ecx, [edx - 1]
and ecx, eax
add edi, ecx
add edi, 0x29f7de
mov ecx, eax
not ecx
and ecx, esi
add ecx, edi
add ecx, edx
xor esi, eax
sub ecx, esi
mov esi, dword [ebp + 8]
mov edx, esi
mov edi, esi
sub edx, esi
sub edx, esi
lea esi, [ecx + ecx]
sub esi, edx
mov eax, ecx
or eax, edx
not eax
add eax, esi
not edx
or edx, ecx
sub eax, edx
mov edx, ebx
mov ecx, dword [ebp - 0x1c]
lea ecx, [ebx + ecx*2]
add ecx, 1
and ecx, 0x243dc910
and edx, 0xdbc236ef
or edx, ecx
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
and ecx, 0xdbc236ef
mov esi, edi
and esi, 0x243dc910
sub ecx, esi
mov esi, edi
or esi, 0x243dc910
add esi, ecx
add esi, 0x243dc911
mov ecx, edi
xor ecx, 0x243dc910
add ecx, edi
add ecx, ebx
mov edi, ebx
or edi, 0xdbc236ef
sub ecx, edi
add ecx, 0xdbc236f0
mov ebx, ecx
not ebx
or ecx, esi
and esi, ebx
lea esi, [ecx + esi*2]
not ecx
lea esi, [esi + ecx*2]
add ebx, ebx
sub esi, ebx
mov edi, edx
xor edi, esi
add edi, esi
mov ecx, edx
or ecx, esi
not ecx
add ecx, edi
not edx
or edx, esi
sub ecx, edx
mov esi, ecx
not esi
mov edi, esi
and edi, 0xcf4e5595
add edi, esi
mov edx, ecx
and edx, 0xcf4e5595
add edx, edi
mov edi, ecx
and edi, 0x30b1aa6a
mov ebx, ecx
and ebx, 0x4f4e5595
add ebx, ebx
sub edi, ebx
xor ecx, 0x30b1aa6a
add ecx, edi
sub ecx, esi
or esi, 0xcf4e5595
sub edx, esi
add ecx, 0xcf4e5595
mov esi, ecx
not esi
or esi, ecx
not esi
and esi, edx
or ecx, edx
add ecx, esi
mov edx, ecx
xor edx, 0x30b1aa6a
mov esi, eax
and esi, 0x176cdd9
lea edi, [eax + esi*2]
mov esi, eax
not esi
and esi, 0xfe893226
add esi, edi
mov edi, eax
or edi, 0xfe893226
sub esi, edi
xor eax, 0x176cdd9
lea edi, [esi + eax]
add esi, eax
add esi, 1
xor ecx, 0xcf4e5595
and ecx, esi
lea eax, [ecx + edi]
add eax, 1
lea ebx, [eax + edx*2]
or edx, esi
sub ebx, edx
mov edi, dword [ebp + 8]
mov edx, edi
or edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
and eax, edi
mov esi, dword [ebp + 0xc]
and esi, edi
or esi, eax
and edx, ecx
mov edi, ecx
xor edi, dword [ebp + 8]
sub edi, edx
or ecx, dword [ebp + 8]
add edi, ecx
mov edx, ecx
not edx
add edx, esi
sub edx, dword [ebp + 0xc]
add edi, dword [ebp - 0x14]
lea ecx, [eax + edi]
add ecx, 1
mov esi, edx
xor esi, ecx
mov edi, edx
or edi, ecx
add edi, edi
sub edi, esi
and edx, ecx
not edx
add edx, edi
not edx
lea ecx, [ebx + edx]
lea eax, [ebx + edx]
add eax, 0x95198ab2
mov edx, eax
xor edx, 0x9690588c
add edx, ecx
add edx, 0x95198ab2
mov esi, 0x6ae6754d
sub esi, ecx
mov ecx, esi
and ecx, 0x696fa773
lea ecx, [edx + ecx*2]
or eax, 0x696fa773
add eax, ecx
or esi, 0x9690588c
sub eax, esi
imul ecx, eax, 0x3ab87b99
lea eax, [ecx - 0x277b1a46]
lea edx, [ecx + ecx]
add edx, 0xb109cb74
mov ecx, eax
not ecx
mov esi, ecx
and esi, 0x2e86fa0c
add esi, esi
sub edx, esi
xor eax, 0x2e86fa0c
add eax, edx
lea edx, [eax + ecx*2]
lea eax, [eax + ecx*2]
add eax, 0x5d0df41a
mov ecx, eax
and ecx, 0x505c4124
add ecx, edx
add ecx, 0x5d0df41a
mov edx, eax
xor edx, 0x505c4124
add edx, ecx
or eax, 0x505c4124
sub edx, eax
imul eax, edx, 0x842aa8a9
lea ecx, [eax - 0x28715f3c]
mov edx, ecx
and edx, 0x3fdaf287
mov esi, ecx
and esi, 0x40250d78
lea edx, [esi + edx*2]
add eax, edx
add eax, 0xd78ea0c4
not ecx
lea eax, [eax + ecx*2]
or ecx, 0xbfdaf287
sub eax, ecx
add eax, 0xbfdaf288
not eax
mov edx, eax
or edx, 0x7ed50e14
sub edx, eax
sub edx, eax
or eax, 0x812af1eb
lea ecx, [edx + eax]
add eax, edx
add eax, 0x7ed50e14
mov edx, eax
and edx, 0x40250d78
add ecx, edx
add ecx, 0x7ed50e14
mov edx, eax
not edx
add edx, ecx
and eax, 0xbfdaf287
add eax, edx
add eax, 0x40250d7a
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x20]
mov dword [eax], 0x348d96f5
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x95094d4
jmp 0x10019460
mov edx, dword [0x10075910]
cmp dword [0x1007590c], 0xa
setl al
lea esi, [edx - 1]
imul esi, edx
mov edx, dword [0x1006c778]
mov ecx, dword [0x1006c77c]
mov dword [ebp - 0x14], ecx
mov edi, edx
not edi
mov ebx, edi
and ebx, ecx
add ebx, ebx
mov ecx, edx
sub ecx, ebx
mov ebx, dword [ebp - 0x14]
xor edx, ebx
add edx, ecx
add edx, ebx
lea ecx, [edx + edi*2]
add ecx, 2
and esi, 1
cmp esi, ecx
sete cl
mov edx, eax
and dl, cl
xor al, cl
add al, dl
add al, 1
test al, 1
jne 0x10019ad0
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8