Function at 0x8ab440
Capabilities:
Encode data using xor
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc8
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x8abee0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.008abed0
movzx edx, byte [0xa57038]
mov esi, dword [0xa44b20]
mov dword [ebp - 0x6c], eax
add esi, eax
mov ecx, dword [0xa44b14]
mov dword [ebp - 0x48], edx
add esi, edx
add ecx, esi
add ecx, 0x6d4e
call dword [0xa0535c]
call ecx
movzx ecx, byte [0xa44aad]
mov dword [ebp - 0x30], eax
mov ebx, eax
mov bh, al
xor bh, 0x19
cmp cl, bh
je 0x8ab81c
mov ecx, ebx
xor cl, 0xb2
mov edx, ebx
xor dl, 0xf4
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0xa44aad], dl
je 0x8ab4e5
cmp al, bh
jne 0x8ab4d0
jmp 0x8ab81c
nop
mov esi, dword [ebp - 0x30]
mov ecx, esi
xor ecx, 0x3b62c9d4
xor esi, 0xbd10b398
mov eax, ebx
xor al, 0xeb
cmp esi, 2
mov edx, 1
cmovge edx, esi
xor edi, edi
cmp esi, 0x10
nop
mov byte [ebp - 0x58], al
mov dword [ebp - 0x38], edx
jl 0x8ab7e0
mov byte [ebp - 0x41], bh
mov edi, edx
and edi, 0x7ffffff0
mov byte [ebp - 0x34], bl
mov edx, eax
movzx eax, bl
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmmword [ebp - 0xd4], xmm0
movzx eax, dl
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmmword [ebp - 0x8c], xmm0
xor ebx, ebx
mov dword [ebp - 0x54], edi
nop word [eax + eax]
lea eax, [ecx + ebx]
lea edi, [ecx + ebx]
inc edi
lea edx, [ecx + ebx + 2]
mov dword [ebp - 0x20], edx
lea edx, [ecx + ebx + 3]
mov dword [ebp - 0x50], edx
lea edx, [ecx + ebx]
add edx, 4
mov dword [ebp - 0x40], edx
xor edx, edx
div esi
mov dword [ebp - 0x28], edx
mov eax, edi
xor edx, edx
div esi
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x20]
xor edx, edx
div esi
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x50]
xor edx, edx
div esi
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x40]
xor edx, edx
div esi
mov dword [ebp - 0x40], edx
lea eax, [ecx + ebx]
add eax, 5
xor edx, edx
div esi
mov dword [ebp - 0x70], edx
lea eax, [ecx + ebx]
add eax, 6
xor edx, edx
div esi
mov dword [ebp - 0x2c], edx
lea eax, [ecx + ebx]
add eax, 7
xor edx, edx
div esi
mov dword [ebp - 0x3c], edx
lea eax, [ecx + ebx]
add eax, 8
xor edx, edx
div esi
mov dword [ebp - 0x68], edx
lea eax, [ecx + ebx]
add eax, 9
xor edx, edx
div esi
mov dword [ebp - 0x64], edx
lea eax, [ecx + ebx]
add eax, 0xa
xor edx, edx
div esi
mov dword [ebp - 0x4c], edx
lea eax, [ecx + ebx]
add eax, 0xb
xor edx, edx
div esi
mov dword [ebp - 0x9c], edx
lea eax, [ecx + ebx]
add eax, 0xc
xor edx, edx
div esi
mov dword [ebp - 0x60], edx
lea eax, [ecx + ebx]
add eax, 0xd
xor edx, edx
div esi
mov dword [ebp - 0x5c], edx
lea eax, [ecx + ebx]
add eax, 0xe
xor edx, edx
div esi
mov edi, edx
lea eax, [ecx + ebx]
add eax, 0xf
xor edx, edx
div esi
movzx eax, byte [edx + 0x9ba510]
movd xmm0, eax
movzx eax, byte [edi + 0x9ba510]
mov edi, dword [ebp - 0x54]
movd xmm6, eax
mov eax, dword [ebp - 0x5c]
movzx eax, byte [eax + 0x9ba510]
movd xmm7, eax
mov eax, dword [ebp - 0x60]
movzx eax, byte [eax + 0x9ba510]
movd xmm5, eax
mov eax, dword [ebp - 0x9c]
movzx eax, byte [eax + 0x9ba510]
movd xmm1, eax
movdqu xmmword [ebp - 0x9c], xmm1
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 0x9ba510]
movd xmm3, eax
mov eax, dword [ebp - 0x64]
movzx eax, byte [eax + 0x9ba510]
movd xmm2, eax
mov eax, dword [ebp - 0x68]
movzx eax, byte [eax + 0x9ba510]
movd xmm4, eax
punpcklbw xmm6, xmm0
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax + 0x9ba510]
movd xmm1, eax
punpcklbw xmm5, xmm7
mov eax, dword [ebp - 0x2c]
movzx eax, byte [eax + 0x9ba510]
movd xmm0, eax
punpcklwd xmm5, xmm6
mov eax, dword [ebp - 0x70]
movzx eax, byte [eax + 0x9ba510]
movd xmm6, eax
movdqu xmm7, xmmword [ebp - 0x9c]
punpcklbw xmm3, xmm7
punpcklbw xmm4, xmm2
punpcklwd xmm4, xmm3
punpckldq xmm4, xmm5
mov eax, dword [ebp - 0x40]
movzx eax, byte [eax + 0x9ba510]
movd xmm2, eax
punpcklbw xmm0, xmm1
mov eax, dword [ebp - 0x50]
movzx eax, byte [eax + 0x9ba510]
movd xmm1, eax
punpcklbw xmm2, xmm6
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax + 0x9ba510]
movd xmm3, eax
punpcklwd xmm2, xmm0
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0x9ba510]
movd xmm0, eax
punpcklbw xmm3, xmm1
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax + 0x9ba510]
movd xmm5, eax
punpcklbw xmm5, xmm0
punpcklwd xmm5, xmm3
punpckldq xmm5, xmm2
punpcklqdq xmm5, xmm4
movdqu xmm0, xmmword [ebp - 0xd4]
pxor xmm5, xmm0
pxor xmm5, xmmword [0x9ba4e0]
movdqu xmm1, xmmword [ebp - 0x8c]
psubb xmm5, xmm1
psubb xmm5, xmmword [0x9a2490]
movdqa xmm0, xmm5
pxor xmm0, xmm1
pand xmm5, xmm1
paddb xmm5, xmm5
paddb xmm5, xmm0
movdqa xmm0, xmmword [ebx + 0xa44aa0]
psubb xmm0, xmm5
movdqa xmmword [ebx + 0xa44aa0], xmm0
add ebx, 0x10
cmp edi, ebx
jne 0x8ab570
cmp dword [ebp - 0x38], edi
movzx ebx, byte [ebp - 0x34]
mov bh, byte [ebp - 0x41]
je 0x8ab80e
nop dword [eax]
lea eax, [ecx + edi]
xor edx, edx
div esi
mov ah, byte [ebp - 0x58]
mov al, byte [edx + 0x9ba510]
xor al, bl
xor al, 0xac
sub al, ah
inc al
mov edx, eax
xor dl, ah
and al, ah
add al, al
add al, dl
sub byte [edi + 0xa44aa0], al
inc edi
cmp dword [ebp - 0x38], edi
jne 0x8ab7e0
nop
xchg byte [0xa44aad], bh
mov dword [ebp - 0x10], 0xffffffff
nop
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x30]
mov eax, esi
xor eax, 0xbd10b398
mov dword [ebp - 0x10], 0xffffffff
lea ecx, [ebp - 0xc1]
push eax
push ecx
push 0xa44aa0
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov ecx, esi
xor ecx, 0xbd10b399
mov dword [ebp - 0x3c], ecx
cmp eax, ecx
jne 0x8abb0d
nop
mov dword [ebp - 0x2c], 0xffff92b2
mov eax, dword [0x9ba4f0]
mov dword [ebp - 0x24], eax
mov eax, dword [0x9ba4f8]
mov dword [ebp - 0x50], eax
mov eax, 0x9ba4fc
add eax, dword [0x9ba4fc]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0xa4], 0
mov edi, esi
xor edi, 0xbd10b39a
mov dword [ebp - 0xa0], edi
mov byte [ebp - 0xb4], 0
lea eax, [ebp - 0xc1]
push eax
call fcn.008d08c0
add esp, 4
mov esi, eax
mov dword [ebp - 0x5c], edi
cmp eax, edi
ja 0x8ab904
nop
test byte [0xa57038], 1
jne 0x8ab904
nop
mov dword [ebp - 0xa4], esi
mov eax, dword [0xa44b24]
mov ecx, dword [0xa44b18]
sub ecx, dword [ebp - 0x48]
add ecx, eax
mov edi, dword [ebp - 0x6c]
add ecx, edi
add ecx, 0x6d4e
call dword [0xa0535c]
lea eax, [ebp - 0xb4]
push esi
lea edx, [ebp - 0xc1]
push edx
push eax
call ecx
add esp, 0xc
mov byte [ebp + esi - 0xb4], 0
jmp 0x8ab94a
nop
mov eax, dword [0xa44b28]
mov ecx, dword [0xa44b10]
sub ecx, dword [ebp - 0x48]
add ecx, eax
mov edi, dword [ebp - 0x6c]
add ecx, edi
add ecx, 0x6d4e
mov dword [ebp - 0x28], ecx
call dword [0xa0535c]
sub esp, 0xc
movzx eax, byte [ebp - 0x7c]
mov byte [esp + 4], al
lea eax, [ebp - 0xc1]
mov dword [esp + 8], eax
mov dword [esp], esi
lea ecx, [ebp - 0xb4]
call dword [ebp - 0x28]
nop
sub dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x38], eax
cmp eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xa4]
lea esi, [ebp - 0xb4]
mov dword [ebp - 0x8c], eax
cmova esi, eax
mov dword [ebp - 0x28], ecx
test ecx, ecx
je 0x8abb23
mov edx, dword [ebp - 0x30]
mov eax, edx
shl eax, 0x1d
xor eax, edx
xor eax, 0x5b3b05bb
mov ecx, edx
xor ecx, 0x4c4fa44
add ecx, eax
shl edx, 4
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x24]
add eax, ecx
add eax, 0x9ba4f1
mov dword [ebp - 0x70], eax
mov eax, ebx
xor al, 0xa5
mov byte [ebp - 0x24], al
mov eax, ebx
xor al, 0x53
mov byte [ebp - 0x20], al
mov edx, ebx
xor dl, 0x92
mov ah, bl
xor ah, 0x2c
mov ch, bl
xor ch, 0x8f
xor bl, 0xf3
mov byte [ebp - 0x34], bl
mov ebx, 1
nop word cs:[eax + eax]
nop
mov al, byte [esi + ebx - 1]
cmp al, byte [ebp - 0x24]
jl 0x8aba18
mov dh, al
add dh, byte [ebp - 0x20]
cmp dh, dl
jb 0x8aba18
mov dh, al
add dh, ah
cmp dh, ch
setb cl
cmp al, byte [ebp - 0x34]
seta dh
or dh, cl
jne 0x8aba10
lea edi, [ebx + 1]
cmp dword [ebp - 0x28], ebx
mov ebx, edi
jne 0x8ab9e0
test dh, dh
je 0x8abd81
nop
mov edx, dword [0xa44b2c]
mov eax, edx
not eax
mov ecx, edx
xor ecx, 1
and eax, 0x7ffffffe
or eax, ecx
not eax
add eax, eax
mov dword [0xa44b38], 0xb9a5905b
xor ecx, eax
and eax, edx
lea eax, [ecx + eax*2]
mov dword [0xa44b2c], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x6c], eax
test eax, edx
je 0x8abb38
mov edx, dword [ebp - 0x38]
cmp edx, dword [ebp - 0x5c]
jbe 0x8abb09
nop
mov ecx, dword [0xa44b34]
mov esi, dword [ebp - 0x30]
xor ecx, esi
lea eax, [edx + 1]
add edx, 0xfffffffb
cmp ecx, 0xd726d2fe
cmove eax, edx
mov ecx, esi
xor ecx, 0xbd10bc6a
cmp eax, ecx
jbe 0x8abaca
nop
mov edx, dword [ebp - 0x8c]
mov ecx, dword [edx - 4]
mov eax, esi
xor eax, 0x42ef4c69
add eax, edx
sub eax, ecx
mov edx, esi
xor edx, 0xbd10b3b5
cmp eax, edx
jae 0x8abe90
mov eax, esi
xor eax, 0xbd10b3b1
mov edx, dword [ebp - 0x38]
add edx, eax
mov eax, edx
mov dword [ebp - 0x8c], ecx
cmp esi, 0xa946e77e
mov ecx, dword [0x9ba4f4]
je 0x8abaf9
nop
mov edx, dword [ebp - 0x6c]
test dword [ebp - 0x48], edx
sete dl
cmp ecx, dword [ebp - 0x20]
setne cl
and cl, dl
or cl, byte [0xa57038]
and cl, 1
mov byte [0xa57038], cl
nop
push eax
push dword [ebp - 0x8c]
call fcn.008ea1ad
add esp, 8
nop
mov edi, dword [ebp + 8]
nop
mov byte [edi], 0
mov dword [edi + 4], 0
mov word [edi + 0x1c], 0
jmp 0x8abe6c
pxor xmm0, xmm0
movq qword [ebp - 0x7c], xmm0
mov dword [ebp - 0x74], 0
jmp 0x8abdbe
nop
mov ecx, dword [0xa44b30]
mov eax, dword [ebp - 0x30]
xor ecx, eax
xor eax, 0x2ef4c6b
xor edx, edx
cmp ecx, 0x88d909e7
mov dword [ebp - 0x20], 0
cmovne eax, edx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ecx + eax*4]
cmp dword [ebp - 0x50], 0
jle 0x8aba5e
mov ecx, dword [ebp - 0x60]
lea eax, [ecx + eax*4]
add eax, edx
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x30]
lea eax, [ecx*8]
xor eax, 0x92621d33
mov dword [ebp - 0x24], eax
mov eax, ecx
xor eax, 0x8d6f4cb6
mov dword [ebp - 0x20], eax
mov ebx, ecx
shr ebx, 1
mov edx, ecx
shl edx, 0x1f
xor edx, ecx
xor edx, 0xf290b349
xor ebx, 0xdb9027ae
lea eax, [ecx + ecx]
mov esi, eax
mov dword [ebp - 0x2c], eax
xor esi, 0xcaac7d83
mov dword [ebp - 0x3c], esi
mov esi, ecx
xor esi, 0xfa0a3226
mov dword [ebp - 0x68], esi
lea edi, [ecx*4]
mov esi, edi
xor esi, 0x9ca0bda2
mov dword [ebp - 0x64], esi
mov esi, ecx
xor esi, 0x250be937
mov dword [ebp - 0x58], esi
mov esi, ecx
xor esi, 0xdb73c04b
mov dword [ebp - 0x4c], esi
mov esi, ecx
xor esi, 0x1c79be25
mov dword [ebp - 0x34], esi
xor eax, 0xed3ceb23
mov dword [ebp - 0x9c], eax
mov eax, ecx
xor eax, 0xdaf416c8
mov dword [ebp - 0x54], eax
xor edi, 0x6dde4275
mov eax, ecx
xor eax, 0xe38641da
xor esi, esi
add eax, edx
adc edi, ebx
add eax, dword [ebp - 0x58]
adc edi, dword [ebp - 0x64]
add eax, dword [ebp - 0x34]
adc edi, dword [ebp - 0x4c]
add eax, dword [ebp - 0x54]
adc edi, dword [ebp - 0x9c]
add eax, dword [ebp - 0x20]
adc edi, dword [ebp - 0x24]
add eax, dword [ebp - 0x68]
adc edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
xor edx, 0x9e79dc06
mov ebx, ecx
xor ebx, 0x5f5cdd9
add ebx, eax
adc edx, edi
add ebx, 4
mov dword [ebp - 0x3c], ebx
adc edx, 0
mov dword [ebp - 0x40], edx
mov eax, ecx
xor eax, 0x763573ea
mov edx, ecx
xor edx, 0x89ca8c15
add edx, eax
mov dword [ebp - 0x58], edx
mov eax, ecx
xor eax, 0xb9a86f0c
mov edx, ecx
xor edx, 0x465790f3
add edx, eax
mov dword [ebp - 0x34], edx
xor dword [ebp - 0x2c], 0x7a21672a
mov edi, ecx
xor edi, 0xbd10b391
mov eax, ecx
xor eax, 0x25562136
mov dword [ebp - 0x64], eax
mov eax, ecx
xor eax, 0xbd10b396
mov dword [ebp - 0x54], eax
xor ecx, 0x9d5f7137
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x68], edi
jmp 0x8abcff
xor dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x64]
add esi, eax
mov ecx, esi
mov edi, dword [ebp - 0x68]
xor ecx, edi
and esi, edi
sub ecx, eax
lea esi, [ecx + esi*2]
cmp esi, dword [ebp - 0x50]
jge 0x8aba5e
nop
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x40]
adc ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x70]
lea ecx, [eax + esi]
sub edx, ecx
sbb ebx, 0
cmp edx, edi
sbb ebx, dword [ebp - 0x2c]
mov edi, dword [eax + esi]
jge 0x8abce0
mov eax, edx
mov ecx, dword [ebp - 0x54]
shl eax, cl
mov ebx, 1
mov ecx, eax
shl ebx, cl
add ebx, dword [ebp - 0x58]
and edi, ebx
mov dword [ebp - 0x9c], edi
mov ecx, dword [ebp - 0x4c]
neg ecx
mov ebx, dword [ebp - 0xd4]
mov eax, ebx
xor eax, ecx
and ecx, ebx
lea eax, [eax + ecx*2]
mov ecx, eax
mov edi, dword [ebp - 0x34]
xor ecx, edi
and eax, edi
mov edi, dword [ebp - 0x9c]
lea eax, [ecx + eax*2]
sub ebx, eax
add esi, edx
mov eax, dword [ebp - 0x60]
lea ecx, [eax + ebx*4]
mov dword [ebp - 0x4c], ebx
add ecx, dword [eax + ebx*4]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], 0
jmp 0x8abce0
pxor xmm0, xmm0
movq qword [ebp - 0x7c], xmm0
mov dword [ebp - 0x74], 0
mov eax, dword [0xa44b24]
mov ecx, dword [0xa44b18]
xor ecx, dword [ebp - 0x48]
sub ecx, dword [ebp - 0x2c]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa0535c]
lea eax, [ebp - 0x7c]
push dword [ebp - 0x28]
push esi
push eax
call ecx
add esp, 0xc
nop
mov edi, dword [ebp + 8]
mov byte [edi], 0
mov dword [edi + 4], 0
lea esi, [edi + 0x1d]
mov eax, dword [0xa44b24]
mov ecx, dword [ebp - 0x48]
or ecx, dword [0xa44b18]
sub ecx, dword [ebp - 0x2c]
add ecx, eax
call dword [0xa0535c]
lea eax, [ebp - 0x7c]
push dword [ebp - 0x3c]
push eax
push esi
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x5c]
mov byte [edi + 0x1c], 1
jbe 0x8abe68
lea ecx, [eax + 1]
mov esi, dword [ebp - 0x30]
mov eax, esi
xor eax, 0xbd10bc6a
cmp ecx, eax
jbe 0x8abe57
nop
mov edi, dword [ebp - 0x8c]
mov eax, dword [edi - 4]
mov ecx, esi
xor ecx, edi
xor ecx, 0x42ef4c69
not edi
mov edx, esi
xor edx, 0x3d10b396
and edx, edi
or edx, ecx
lea edx, [eax + edx*2]
neg edx
add ecx, edx
add ecx, 0xfffffffe
mov edx, esi
xor edx, 0xbd10b3b5
cmp ecx, edx
jae 0x8abe83
xor esi, 0xbd10b3b1
mov ecx, dword [ebp - 0x38]
add ecx, esi
jmp 0x8abe5d
mov eax, dword [ebp - 0x8c]
nop
push ecx
push eax
call fcn.008ea1ad
add esp, 8
nop
mov edi, dword [ebp + 8]
nop
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, edi
add esp, 0xc8
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov dword [ebp - 0x10], 0
call fcn.008cd651
nop
mov dword [ebp - 0x10], 1
call fcn.008cd651
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
call fcn.00901a00
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
call fcn.00901a00
int3