Function at 0x180003910
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rdi
push rbp
push r12
push r15
lea rbp, [rax - 0xa8]
sub rsp, 0x190
mov qword [rax + 0x10], r14
xor ebx, ebx
mov r14, qword [0x180093e20]
movzx r15d, bx
mov rcx, r14
call fcn.180001d60
mov rdi, rax
test rax, rax
je 0x180003962
mov rcx, rax
call fcn.1800018d0
mov r14, qword [0x180093e20]
movzx r15d, ax
cmp byte [0x180093d4e], bl
movabs r12, 0x7fffffff0000
mov qword [rsp + 0x1b0], rsi
movaps xmmword [rsp + 0x170], xmm9
je 0x180003d5d
lea rdx, [rdi + 0x20]
lea rcx, [rdi + 0x28]
cmp rdx, 0x400000
jbe 0x180003d5d
cmp rcx, r12
jae 0x1800039c5
mov rax, qword [rdx]
lea r8, [rax + 0x18]
cmp r8, 0x400000
jbe 0x1800039db
add rax, 0x1c
cmp rax, r12
jae 0x1800039db
cmp dword [r8], 0x40547fde
je 0x180003a08
cmp rdx, 0x400000
jbe 0x180003d5d
cmp rcx, r12
jae 0x180003d5d
mov rax, qword [rdx]
lea rcx, [rax + 0x18]
cmp rcx, 0x400000
jbe 0x180003d5d
add rax, 0x1c
cmp rax, r12
jae 0x180003d5d
cmp dword [rcx], 0x847b9bf0
jne 0x180003d5d
lea rcx, [rdi + 0x98]
cmp rcx, 0x400000
jbe 0x180003a55
lea rax, [rdi + 0xa0]
cmp rax, r12
jae 0x180003a55
mov rcx, qword [rcx]
mov rsi, rcx
lea rdx, [rcx + 0x278]
cmp rdx, 0x400000
jbe 0x180003a58
lea rax, [rcx + 0x27c]
cmp rax, r12
jae 0x180003a58
mov dword [rdx], 0x3f800000
mov r14, qword [0x180093e20]
jmp 0x180003a58
mov rsi, rbx
lea rcx, [r14 + 0x5cc]
cmp rcx, 0x400000
jbe 0x180003a7b
lea rax, [r14 + 0x5d0]
cmp rax, r12
jae 0x180003a7b
movss xmm9, dword [rcx]
jmp 0x180003a7f
xorps xmm9, xmm9
lea rcx, [rsi + 0x188]
cmp rcx, 0x400000
jbe 0x180003d5d
lea rax, [rsi + 0x189]
cmp rax, r12
jae 0x180003d5d
cmp byte [rcx], bl
je 0x180003d5d
movss xmm0, dword [0x180093b5c]
addss xmm0, dword [0x1800894bc]
comiss xmm9, xmm0
jbe 0x180003d63
cmp byte [0x180093b59], bl
je 0x180003d42
lea rcx, [0x180060bc8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
movups xmm0, xmmword [str._ERkV__]
pextrw ecx, xmm0, 7
lea r10, [rax + 0x3b5c90]
movups xmmword [rsp + 0x20], xmm0
test cx, cx
je 0x180003c57
cmp dword [0x180092030], 2
mov r8d, ebx
jl 0x180003c11
movdqa xmm2, xmmword [0x1800897f0]
mov eax, 4
movdqa xmm3, xmmword [0x180089800]
movdqa xmm1, xmm2
movdqa xmm4, xmmword [0x180089db0]
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
movaps xmmword [rsp + 0x180], xmm6
movd xmm6, eax
mov eax, 0x1f
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movd xmm5, eax
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180089840]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [str._ERkV__]
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
paddw xmm2, xmmword [0x180089850]
pxor xmm2, xmm0
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movq qword [rsp + 0x20], xmm2
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movaps xmm6, xmmword [rsp + 0x180]
movdqa xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x180089840]
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rsp + 0x28]
pshufd xmm2, xmm1, 0xd8
paddw xmm2, xmmword [0x180089850]
pxor xmm2, xmm0
movq qword [rsp + 0x28], xmm2
jmp 0x180003c57
lea r9, [rsp + 0x20]
nop word [rax + rax]
mov eax, 0x2f684bdb
lea r9, [r9 + 2]
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movzx eax, ax
imul ecx, eax, 0x36
movzx eax, r8w
inc r8d
sub ax, cx
add ax, 0x35
xor word [r9 - 2], ax
cmp r8d, 8
jl 0x180003c20
movzx edx, word [rsp + 0x20]
lea rax, [rsp + 0x20]
mov ecx, ebx
test dx, dx
je 0x180003c8a
nop dword [rax + rax]
inc ecx
lea rax, [rax + 2]
cmp word [rax], bx
jne 0x180003c70
cmp ecx, 0x40
jb 0x180003c8a
mov dword [rsp + 0x40], 0x40
jmp 0x180003cb3
lea rcx, [rsp + 0x20]
mov eax, ebx
test dx, dx
je 0x180003cab
nop word [rax + rax]
inc eax
lea rcx, [rcx + 2]
cmp word [rcx], bx
jne 0x180003ca0
mov dword [rsp + 0x40], eax
test eax, eax
jle 0x180003cd8
mov rcx, rbx
mov edx, ebx
nop dword [rax + rax]
movzx eax, word [rsp + rcx + 0x20]
inc edx
mov word [rsp + rcx + 0x44], ax
lea rcx, [rcx + 2]
mov eax, dword [rsp + 0x40]
cmp edx, eax
jl 0x180003cc0
cdqe
lea rdx, [rbp - 0x30]
mov rcx, rsi
mov word [rsp + rax*2 + 0x44], bx
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rsp + 0x50]
movaps xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [rsp + 0x60]
movaps xmmword [rbp - 0x10], xmm0
movups xmm0, xmmword [rsp + 0x70]
movaps xmmword [rbp], xmm1
movups xmm1, xmmword [rbp - 0x80]
movaps xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [rbp - 0x70]
movaps xmmword [rbp + 0x20], xmm1
movups xmm1, xmmword [rbp - 0x60]
movaps xmmword [rbp + 0x30], xmm0
movups xmm0, xmmword [rbp - 0x50]
movaps xmmword [rbp + 0x40], xmm1
movsd xmm1, qword [rbp - 0x40]
movaps xmmword [rbp + 0x50], xmm0
movsd qword [rbp + 0x60], xmm1
call r10
jmp 0x180003d4b
addss xmm9, dword [0x180089480]
movss dword [0x180093b5c], xmm9
mov byte [0x180093b59], 1
jmp 0x180003d63
mov byte [0x180093b59], bl
movaps xmm9, xmmword [rsp + 0x170]
mov r9d, 0x435e
mov r14, qword [rsp + 0x1b8]
mov rsi, qword [rsp + 0x1b0]
movzx ecx, r15w
cmp ecx, 0x74f5
ja 0x1800041d1
je 0x180004264
cmp ecx, 0x4b0a
ja 0x180003ec3
je 0x180003de4
cmp ecx, 0x2658
ja 0x180003e89
je 0x180003de4
test ecx, ecx
je 0x18000411d
cmp ecx, 0xcd
je 0x180003de4
cmp ecx, 0x6b1
je 0x180004264
cmp ecx, 0x1f2d
je 0x180003de4
cmp ecx, 0x2333
jne 0x18000411d
cmp byte [0x180093d2e], bl
je 0x18000411d
lea rcx, [rdi + 0x98]
add rdi, 0xa0
cmp rcx, 0x400000
jbe 0x18000411d
cmp rdi, r12
jae 0x18000411d
mov rax, qword [rcx]
lea rdx, [rax + 0x27c]
cmp rdx, 0x400000
jbe 0x180003e38
add rax, 0x280
cmp rax, r12
jae 0x180003e38
mov dword [rdx], 0x41700000
mov rax, qword [rcx]
lea rdx, [rax + 0x278]
cmp rdx, 0x400000
jbe 0x180003e5c
add rax, 0x27c
cmp rax, r12
jae 0x180003e5c
mov dword [rdx], 0x40900000
mov rax, qword [rcx]
lea rcx, [rax + 0x281]
cmp rcx, 0x400000
jbe 0x18000411d
add rax, 0x285
cmp rax, r12
jae 0x18000411d
mov dword [rcx], ebx
jmp 0x18000411d
cmp ecx, 0x282a
je 0x180003de4
cmp ecx, 0x2f12
je 0x180003de4
cmp ecx, 0x3146
je 0x180004264
cmp ecx, 0x3511
je 0x180003f0d
cmp ecx, r9d
je 0x1800040c7
jmp 0x18000411d
cmp ecx, 0x65b4
ja 0x18000419c
je 0x180003de4
cmp ecx, 0x52f7
je 0x180003f0d
cmp ecx, 0x573c
je 0x180004264
cmp ecx, 0x5a9f
je 0x180004136
cmp ecx, 0x6104
je 0x180003de4
cmp ecx, 0x62e5
jne 0x18000411d
cmp byte [0x180093d36], bl
je 0x180003fda
lea rdx, [rdi + 0x98]
cmp rdx, 0x400000
jbe 0x180003fda
lea rax, [rdi + 0xa0]
cmp rax, r12
jae 0x180003fda
mov rdx, qword [rdx]
mov rcx, rdx
lea r8, [rdx + 0x304]
cmp r8, 0x400000
jbe 0x180003f62
lea rax, [rdx + 0x308]
cmp rax, r12
jae 0x180003f62
mov dword [r8], ebx
lea rdx, [rcx + 0x308]
cmp rdx, 0x400000
jbe 0x180003f80
lea rax, [rcx + 0x30c]
cmp rax, r12
jae 0x180003f80
mov dword [rdx], ebx
lea rdx, [rcx + 0x2d0]
cmp rdx, 0x400000
jbe 0x180003f9e
lea rax, [rcx + 0x2d4]
cmp rax, r12
jae 0x180003f9e
mov dword [rdx], ebx
lea rdx, [rcx + 0x2d4]
cmp rdx, 0x400000
jbe 0x180003fbc
lea rax, [rcx + 0x2d8]
cmp rax, r12
jae 0x180003fbc
mov dword [rdx], ebx
lea rdx, [rcx + 0x2d8]
cmp rdx, 0x400000
jbe 0x180003fda
lea rax, [rcx + 0x2dc]
cmp rax, r12
jae 0x180003fda
mov dword [rdx], ebx
cmp byte [0x180093d34], bl
je 0x1800040c7
lea rcx, [rdi + 0x98]
cmp rcx, 0x400000
jbe 0x1800040c7
lea rax, [rdi + 0xa0]
cmp rax, r12
jae 0x1800040c7
mov rax, qword [rcx]
lea rdx, [rax + 0x2c0]
cmp rdx, 0x400000
jbe 0x1800040c7
add rax, 0x2c8
cmp rax, r12
jae 0x1800040c7
mov rdx, qword [rdx]
mov rcx, rdx
lea r8, [rdx + 0x18]
cmp r8, 0x400000
jbe 0x18000404f
lea rax, [rdx + 0x1c]
cmp rax, r12
jae 0x18000404f
mov dword [r8], ebx
lea rdx, [rcx + 0x1c]
cmp rdx, 0x400000
jbe 0x180004067
lea rax, [rcx + 0x20]
cmp rax, r12
jae 0x180004067
mov dword [rdx], ebx
lea rdx, [rcx + 0x20]
cmp rdx, 0x400000
jbe 0x18000407f
lea rax, [rcx + 0x24]
cmp rax, r12
jae 0x18000407f
mov dword [rdx], ebx
lea rdx, [rcx + 0x24]
cmp rdx, 0x400000
jbe 0x180004097
lea rax, [rcx + 0x28]
cmp rax, r12
jae 0x180004097
mov dword [rdx], ebx
lea rdx, [rcx + 0x30]
cmp rdx, 0x400000
jbe 0x1800040af
lea rax, [rcx + 0x34]
cmp rax, r12
jae 0x1800040af
mov dword [rdx], ebx
lea rdx, [rcx + 0x34]
cmp rdx, 0x400000
jbe 0x1800040c7
lea rax, [rcx + 0x38]
cmp rax, r12
jae 0x1800040c7
mov dword [rdx], ebx
cmp r15w, r9w
jne 0x18000411d
mov rcx, rdi
call fcn.180001a10
cmp byte [0x180093d3f], bl
je 0x18000411d
lea rcx, [rdi + 0x98]
cmp rcx, 0x400000
jbe 0x18000411d
lea rax, [rdi + 0xa0]
cmp rax, r12
jae 0x18000411d
mov rax, qword [rcx]
lea rcx, [rax + 0x348]
cmp rcx, 0x400000
jbe 0x18000411d
add rax, 0x34c
cmp rax, r12
jae 0x18000411d
mov dword [rcx], 0x3f800000
lea r11, [rsp + 0x190]
mov rbx, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r12
pop rbp
ret
cmp byte [0x180093d4f], bl
je 0x18000411d
lea rcx, [rdi + 0x98]
cmp rcx, 0x400000
jbe 0x18000411d
lea rax, [rdi + 0xa0]
cmp rax, r12
jae 0x18000411d
mov rcx, qword [rcx]
mov rdx, rcx
lea r8, [rcx + 0x348]
cmp r8, 0x400000
jbe 0x180004180
lea rax, [rcx + 0x349]
cmp rax, r12
jae 0x180004180
mov byte [r8], 1
lea rcx, [rdx + 0x34c]
cmp rcx, 0x400000
jbe 0x18000411d
lea rax, [rdx + 0x350]
jmp 0x180004112
cmp ecx, 0x67da
je 0x180004264
cmp ecx, 0x6a09
je 0x180003f0d
cmp ecx, 0x7296
je 0x180003de4
cmp ecx, 0x7340
je 0x180003de4
jmp 0x18000411d
cmp ecx, 0xc68b
ja 0x1800042c2
je 0x180003de4
cmp ecx, 0xab85
ja 0x18000422b
je 0x180003de4
sub ecx, 0x77e9
je 0x180003f0d
sub ecx, 0x19a
je 0x180003f0d
sub ecx, 0x41
je 0x180004264
sub ecx, 0x78d
je 0x180003de4
cmp ecx, 0x1582
je 0x180003de4
jmp 0x18000411d
cmp ecx, 0xac02
je 0x180003de4
cmp ecx, 0xb0a0
je 0x1800040c7
cmp ecx, 0xb32a
je 0x180004264
cmp ecx, 0xc196
je 0x180004264
cmp ecx, 0xc2dd
je 0x180003f0d
jmp 0x18000411d
cmp byte [0x180093d50], bl
je 0x180003f0d
lea rcx, [rdi + 0x98]
cmp rcx, 0x400000
jbe 0x180003f0d
lea rax, [rdi + 0xa0]
cmp rax, r12
jae 0x180003f0d
mov rax, qword [rcx]
lea rcx, [rax + 0x270]
cmp rcx, 0x400000
jbe 0x180003f0d
add rax, 0x271
cmp rax, r12
jae 0x180003f0d
mov byte [rcx], 1
jmp 0x180003f0d
cmp ecx, 0xf3b9
ja 0x180004411
je 0x180004311
cmp ecx, 0xc859
je 0x180003de4
cmp ecx, 0xcbd8
je 0x180003de4
cmp ecx, 0xcfa1
je 0x180003f0d
cmp ecx, 0xe5ea
je 0x180003f0d
cmp ecx, 0xe97d
je 0x180003f0d
jmp 0x18000411d
lea rcx, [rdi + 0x98]
cmp rcx, 0x400000
jbe 0x18000434e
lea rax, [rdi + 0xa0]
cmp rax, r12
jae 0x18000434e
mov rax, qword [rcx]
lea rcx, [rax + 0x1c8]
cmp rcx, 0x400000
jbe 0x18000434e
add rax, 0x1d0
cmp rax, r12
jae 0x18000434e
mov rbx, qword [rcx]
cmp byte [0x180093d37], 0
je 0x1800043e2
mov rax, qword [0x180094070]
test rax, rax
jne 0x1800043a6
mov dword [rsp + 0x20], 0xe000c
lea rax, str.user32
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x20]
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
call fcn.1800016a0
mov rcx, rax
lea rdx, str.GetAsyncKeyState
call fcn.180001530
mov qword [0x180094070], rax
mov ecx, dword [0x180093d40]
call rax
test ax, ax
je 0x1800043d5
lea rcx, [rbx + 0xec]
cmp rcx, 0x400000
jbe 0x1800043d5
lea rax, [rbx + 0xf0]
cmp rax, r12
jae 0x1800043d5
mov dword [rcx], 0xf
cmp byte [0x180093d37], 0
jne 0x18000411d
lea rcx, [rbx + 0xec]
cmp rcx, 0x400000
jbe 0x18000411d
lea rax, [rbx + 0xf0]
cmp rax, r12
jae 0x18000411d
mov dword [rcx], 0xb4
jmp 0x18000411d
sub ecx, 0xf87e
je 0x180003f0d
sub ecx, 0x250
je 0x180003de4
sub ecx, 0x5d
je 0x180003de4
cmp ecx, 0x298
je 0x180003f0d
jmp 0x18000411d