Function at 0x100086c9
Capabilities:
Encode data using xor
Terminate process

Disassembly:
mov eax, 0x1000f25f
call fcn.1000ec38
sub esp, 0xc0
cmp byte [0x10012540], 0
push ebx
push esi
push edi
je 0x1000880f
mov edx, dword [0x1002a968]
mov eax, 0x1d0000a
mov ecx, eax
mov bl, 0x68
mov esi, 0x1d0ffff
cmp byte [ecx - 0xa], bl
jne 0x10008732
cmp byte [ecx - 5], 0xe8
jne 0x10008732
cmp byte [ecx], 0x6a
jne 0x10008732
cmp byte [ecx + 1], 7
jne 0x10008732
cmp byte [ecx + 2], bl
jne 0x10008732
cmp byte [ecx + 7], 0xff
jne 0x10008732
cmp byte [ecx + 8], 0x15
jne 0x10008732
cmp byte [ecx + 0xd], bl
jne 0x10008732
mov edx, dword [ecx + 3]
mov dword [0x1002a968], edx
inc ecx
lea edi, [ecx - 0xa]
cmp edi, esi
jl 0x100086fd
mov ecx, 0x1d00006
cmp byte [ecx - 6], 0xe8
jne 0x10008775
cmp byte [ecx - 1], 0x6a
jne 0x10008775
cmp byte [ecx], 7
jne 0x10008775
cmp byte [ecx + 1], bl
jne 0x10008775
cmp byte [ecx + 6], 0xff
jne 0x10008775
cmp byte [ecx + 7], 0x15
jne 0x10008775
cmp byte [ecx + 0xc], bl
jne 0x10008775
cmp byte [ecx + 0x16], 0x81
jne 0x10008775
mov edi, dword [ecx + 0xd]
mov dword [0x100164d4], edi
inc ecx
lea edi, [ecx - 6]
cmp edi, esi
jl 0x1000873f
cmp byte [eax - 0xa], bl
jne 0x100087b3
cmp byte [eax - 5], bl
jne 0x100087b3
cmp byte [eax], 0x6a
jne 0x100087b3
cmp byte [eax + 1], 1
jne 0x100087b3
cmp byte [eax + 2], 0xff
jne 0x100087b3
cmp byte [eax + 3], 0xd0
jne 0x100087b3
cmp byte [eax + 4], 0x83
jne 0x100087b3
cmp byte [eax + 0x1d], 0xc3
jne 0x100087b3
mov ecx, dword [eax - 9]
mov dword [0x10017518], ecx
inc eax
lea ecx, [eax - 0xa]
cmp ecx, esi
jl 0x1000877d
mov eax, dword [0x1002aa90]
mov ecx, 0x1d60006
cmp byte [ecx - 6], bl
jne 0x100087fa
cmp byte [ecx - 1], 0xff
jne 0x100087fa
cmp byte [ecx], 0x15
jne 0x100087fa
cmp byte [ecx + 5], bl
jne 0x100087fa
cmp byte [ecx + 0xa], 0xff
jne 0x100087fa
cmp byte [ecx + 0xb], 0x15
jne 0x100087fa
cmp byte [ecx + 0x10], 0xa1
jne 0x100087fa
cmp byte [ecx + 0x15], 0x83
jne 0x100087fa
mov eax, dword [ecx - 5]
mov dword [0x1002aa90], eax
inc ecx
lea esi, [ecx - 6]
cmp esi, 0x1d6ffff
jl 0x100087c5
and byte [0x10012540], 0
jmp 0x1000881a
mov edx, dword [0x1002a968]
mov eax, dword [0x1002aa90]
xor edi, edi
cmp dword [edx + 0x48], edi
je 0x10008ce3
cmp dword [edx + 0x114], edi
je 0x10008ce3
cmp byte [0x10012541], 0
je 0x10008ce3
push 0x20c
push edx
push 0x1002a748
call sub.MSVCRT.dll_memcpy
mov eax, dword [0x1002a968]
add esp, 0xc
mov ecx, dword [eax + 0x48]
mov dword [0x100164d0], ecx
mov dword [eax + 0x48], 0x10005627
mov eax, dword [0x1002a968]
mov ecx, 0x10013be0
mov dword [eax + 0x114], 0x1000a64b
call fcn.10002d9b
mov eax, dword [0x1002a860]
mov ecx, 0x1002bce0
mov dword [0x10013be0], 0x10007d80
mov dword [0x10013be4], 0x10007d9c
mov dword [0x10013bec], eax
call fcn.10009ded
mov esi, 0x1002beb0
mov ecx, esi
call fcn.1000ad7d
push 0x10007ef5
push 2
pop ebx
mov ecx, esi
push ebx
push str.alias
call fcn.1000afb0
push 0x10007f1c
push ebx
push str.bind
mov ecx, esi
call fcn.1000afb0
push 0x10007f42
push ebx
push str.unbind
mov ecx, esi
call fcn.1000afb0
push 0x10007f5a
push ebx
push 0x10013124
mov ecx, esi
call fcn.1000afb0
push 0x10007fbf
push ebx
push 0x10013120
mov ecx, esi
call fcn.1000afb0
push 0x10008097
push ebx
push str.later
mov ecx, esi
call fcn.1000afb0
push 0x1000812f
push ebx
push str.exec
mov ecx, esi
call fcn.1000afb0
push 0x10004cf8
push ebx
push 0x1001310c
mov ecx, esi
call fcn.1000afb0
push 0x74
mov dword [ebp - 0x10], edi
pop edx
mov edi, 0x100
mov eax, dword [ebp - 0x10]
mov cl, byte [eax + 0x100130fc]
xor cl, dl
mov byte [ebp + eax - 0x3c], cl
lea eax, [edx + 1]
cdq
mov ecx, edi
idiv ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xd
jl 0x10008951
and byte [ebp - 0x2f], 0
and dword [ebp - 4], 0
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
call fcn.1000ab45
and dword [ebp - 0x10], 0
mov edx, 0xb5
mov eax, dword [ebp - 0x10]
mov cl, byte [eax + 0x1001307c]
xor cl, dl
mov byte [ebp + eax - 0xc0], cl
lea eax, [edx + 1]
cdq
mov ecx, edi
idiv ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x7d
jl 0x1000898d
and byte [ebp - 0x43], 0
lea eax, [ebp - 0xc0]
mov ecx, esi
push eax
mov dword [ebp - 4], 1
call fcn.1000ab45
and dword [ebp - 0x10], 0
push 0x6e
pop edx
mov eax, dword [ebp - 0x10]
mov cl, byte [eax + 0x10012ff8]
xor cl, dl
mov byte [ebp + eax - 0xc4], cl
lea eax, [edx + 1]
cdq
mov ecx, edi
idiv ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x83
jl 0x100089d0
and byte [ebp - 0x41], 0
lea eax, [ebp - 0xc4]
mov ecx, esi
push eax
mov dword [ebp - 4], ebx
call fcn.1000ab45
mov edx, 0x9d
xor ecx, ecx
mov al, byte [ecx + 0x10012f68]
mov ebx, edi
xor al, dl
mov byte [ebp + ecx - 0xcc], al
lea eax, [edx + 1]
cdq
idiv ebx
inc ecx
cmp ecx, 0x8c
jl 0x10008a12
and byte [ebp - 0x40], 0
lea eax, [ebp - 0xcc]
mov ecx, esi
push eax
mov dword [ebp - 4], 3
call fcn.1000ab45
mov edx, 0xd9
xor ecx, ecx
mov al, byte [ecx + 0x10012ee8]
mov ebx, edi
xor al, dl
mov byte [ebp + ecx - 0xc0], al
lea eax, [edx + 1]
cdq
idiv ebx
inc ecx
cmp ecx, 0x7f
jl 0x10008a52
and byte [ebp - 0x41], 0
lea eax, [ebp - 0xc0]
mov ecx, esi
push eax
mov dword [ebp - 4], 4
call fcn.1000ab45
mov edx, 0xa3
xor ecx, ecx
mov al, byte [ecx + 0x10012e64]
mov ebx, edi
xor al, dl
mov byte [ebp + ecx - 0xc4], al
lea eax, [edx + 1]
cdq
idiv ebx
inc ecx
cmp ecx, 0x81
jl 0x10008a8f
and byte [ebp - 0x43], 0
lea eax, [ebp - 0xc4]
mov ecx, esi
push eax
mov dword [ebp - 4], 5
call fcn.1000ab45
push 0x15
xor ecx, ecx
pop edx
mov al, byte [ecx + 0x10012e14]
mov ebx, edi
xor al, dl
mov byte [ebp + ecx - 0x8c], al
lea eax, [edx + 1]
cdq
idiv ebx
inc ecx
cmp ecx, 0x4c
jl 0x10008acd
and byte [ebp - 0x40], 0
lea eax, [ebp - 0x8c]
mov ecx, esi
push eax
mov dword [ebp - 4], 6
call fcn.1000ab45
mov edx, 0xaa
xor ecx, ecx
mov al, byte [ecx + 0x10012df8]
mov ebx, edi
xor al, dl
mov byte [ebp + ecx - 0x2c], al
lea eax, [edx + 1]
cdq
idiv ebx
inc ecx
cmp ecx, 0x18
jl 0x10008b0a
and byte [ebp - 0x14], 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
mov dword [ebp - 4], 7
call fcn.1000ab45
push 0x5c
xor ecx, ecx
pop edx
mov al, byte [ecx + str._40___aSRDGH]
mov ebx, edi
xor al, dl
mov byte [ebp + ecx - 0x2c], al
lea eax, [edx + 1]
cdq
idiv ebx
inc ecx
cmp ecx, 0x15
jl 0x10008b3f
and byte [ebp - 0x17], 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
mov dword [ebp - 4], 8
call fcn.1000ab45
mov edx, 0xe2
xor ecx, ecx
mov al, byte [ecx + 0x10012dc8]
mov ebx, edi
xor al, dl
mov byte [ebp + ecx - 0x28], al
lea eax, [edx + 1]
cdq
idiv ebx
inc ecx
cmp ecx, 0x14
jl 0x10008b76
and byte [ebp - 0x14], 0
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
mov dword [ebp - 4], 9
call fcn.1000ab45
push 0x15
xor ecx, ecx
pop edx
mov al, byte [ecx + str.tzyj:iurz]
mov ebx, edi
xor al, dl
mov byte [ebp + ecx - 0x28], al
lea eax, [edx + 1]
cdq
idiv ebx
inc ecx
cmp ecx, 0x14
jl 0x10008bab
and byte [ebp - 0x14], 0
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
mov dword [ebp - 4], 0xa
call fcn.1000ab45
push 0x72
xor ecx, ecx
pop edx
mov al, byte [ecx + 0x10012d98]
mov ebx, edi
xor al, dl
mov byte [ebp + ecx - 0x2c], al
lea eax, [edx + 1]
cdq
idiv ebx
inc ecx
cmp ecx, 0x15
jl 0x10008be0
and byte [ebp - 0x17], 0
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
mov dword [ebp - 4], 0xb
call fcn.1000ab45
mov edx, 0xf6
xor ecx, ecx
mov al, byte [ecx + 0x10012d8c]
mov ebx, edi
xor al, dl
mov byte [ebp + ecx - 0x3c], al
lea eax, [edx + 1]
cdq
idiv ebx
inc ecx
cmp ecx, 0xa
jl 0x10008c17
and byte [ebp - 0x32], 0
lea eax, [ebp - 0x3c]
mov dword [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.10004203
pop ecx
pop ecx
mov eax, dword [eax + 4]
xor ebx, ebx
cmp eax, ebx
mov byte [ebp - 4], 0xd
jne 0x10008c5d
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
mov ecx, esi
call fcn.1000aec8
push 1
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xc
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
xor eax, eax
lea edi, [ebp - 0x3c]
stosd dword es:[edi], eax
or dword [ebp - 4], 0xffffffff
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.1000b66c
mov ecx, 0x1002bdf8
call fcn.1000a993
fldz
and byte [0x10028d40], 0
mov dword [0x10028d48], ebx
fstp dword [0x10028d2c]
fldz
mov dword [0x10028d24], ebx
mov dword [0x10028d28], ebx
fstp dword [0x10028d30]
fldz
fstp dword [0x10028d34]
fldz
fstp dword [0x10028d38]
fldz
fstp dword [0x10028d3c]
call fcn.10002670
and byte [0x10012541], 0
mov eax, dword [0x1002aa90]
mov ecx, dword [0x10017518]
cmp dword [ecx + 0x14], 0
je 0x10008d17
cmp byte [0x10012542], 0
je 0x10008d17
push 0xac
push ecx
push 0x1002a9e0
call sub.MSVCRT.dll_memcpy
mov eax, dword [0x1002aa90]
add esp, 0xc
and byte [0x10012542], 0
cmp byte [0x1002ae01], 0
je 0x10008d2a
cmp byte [ebp + 8], 0
je 0x10008df8
cmp byte [0x1002ae00], 0
jne 0x10008d63
mov byte [0x1002ae00], 1
xor esi, esi
mov ecx, dword [esi + eax]
cmp byte [ecx], 0xc3
je 0x10008d58
and byte [0x1002ae00], 0
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
add esi, 4
cmp esi, 0xa0
jl 0x10008d3c
mov ecx, dword [eax + 0xc]
cmp byte [ecx], 0xc3
jne 0x10008d77
mov dword [eax + 0xc], 0x10008607
mov eax, dword [0x1002aa90]
mov ecx, dword [eax + 0x18]
cmp byte [ecx], 0xc3
jne 0x10008d8b
mov dword [eax + 0x18], 0x10008651
mov eax, dword [0x1002aa90]
mov ecx, dword [eax + 0x38]
cmp byte [ecx], 0xc3
jne 0x10008d9f
mov dword [eax + 0x38], 0x100085e2
mov eax, dword [0x1002aa90]
mov ecx, dword [eax + 0x4c]
cmp byte [ecx], 0xc3
jne 0x10008db3
mov dword [eax + 0x4c], 0x100085af
mov eax, dword [0x1002aa90]
mov ecx, dword [eax + 0x50]
cmp byte [ecx], 0xc3
jne 0x10008dc7
mov dword [eax + 0x50], 0x10008680
mov eax, dword [0x1002aa90]
mov ecx, dword [eax + 0x64]
cmp byte [ecx], 0xc3
jne 0x10008ddb
mov dword [eax + 0x64], 0x1000862c
mov eax, dword [0x1002aa90]
mov ecx, dword [eax + 0x88]
add eax, 0x88
cmp byte [ecx], 0xc3
jne 0x10008df1
mov dword [eax], 0x100086af
mov byte [0x1002ae01], 1
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret