Function at 0x14003b250
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0xc8
mov rax, qword [0x140113040]
xor rax, rsp
mov qword [rbp - 1], rax
movzx r13d, r9b
mov byte [rbp - 0x69], r13b
movzx r12d, r8b
mov byte [rbp - 0x68], r8b
mov rsi, rdx
mov rdi, rcx
cmp dword [rcx + 0xc], 1
jl 0x14003b2a1
mov rcx, qword [rcx]
mov eax, dword [rdx + 0xc]
inc eax
mov dword [rcx + 0x1b8], eax
xor r14d, r14d
cmp dword [rdi + 8], 2
jl 0x14003b3ca
cmp byte [rdx + 0x38], r14b
jne 0x14003b3ca
mov rdx, qword [rdx + 0x20]
mov rcx, rdi
call fcn.140038e90
mov rbx, rax
test rax, rax
je 0x14003b3ca
cmp qword [rdi + 0x50], r14
je 0x14003b325
mov r10, qword [rdi + 0x58]
cmp rax, r10
je 0x14003b325
mov r9, qword [rdi + 0x48]
dec r9
shr rax, 5
xor rax, rbx
shr rax, 4
and rax, r9
mov edx, r14d
mov r11, qword [rdi + 0x40]
nop dword [rax + rax]
imul rcx, rax, 0x38
add rcx, r11
mov r8, qword [rcx]
cmp r8, rbx
je 0x14003b328
cmp r8, r10
je 0x14003b325
inc rax
add rax, rdx
and rax, r9
inc rdx
cmp rdx, r9
jbe 0x14003b300
mov rcx, r14
lea r15, [rcx + 8]
test rcx, rcx
cmove r15, r14
test r15, r15
je 0x14003b389
cmp byte [r15 + 0x2c], r14b
je 0x14003b389
mov eax, dword [reloc.WS2_32.dll_getpeername]
mov ecx, dword [0x140113218]
mov edx, dword [0x1401131e8]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], edx
movzx eax, byte [rbp + 0x7f]
mov byte [rsp + 0x28], al
mov byte [rsp + 0x20], r13b
movzx r9d, r12b
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call fcn.14003a410
test al, al
jne 0x14003bcd9
cmp byte [r15 + 0x2c], r14b
jne 0x14003b3ca
cmp byte [rbx + 0x88], r14b
je 0x14003b39b
lea rdx, str.inlining_failed:_function_is_variadic
jmp 0x14003b3c2
test r15, r15
jne 0x14003b3a9
lea rdx, str.inlining_failed:_cant_inline_recursive_calls
jmp 0x14003b3c2
cmp byte [rdi + 0x421], r14b
jne 0x14003b3bb
cmp byte [rdi + 0x422], r14b
je 0x14003b3ca
lea rdx, str.inlining_failed:_module_uses_getfenv_setfenv
mov rcx, qword [rdi]
call fcn.1400333f0
mov qword [rbp - 0x29], rdi
mov r9d, dword [rdi + 0x40c]
mov dword [rbp - 0x59], r9d
mov dword [rbp - 0x21], r9d
movzx ecx, byte [rsi + 0x38]
mov r8d, dword [rsi + 0x30]
inc r8d
add r8d, ecx
cmp r8d, r13d
cmovb r8d, r13d
cmp byte [rbp + 0x77], 0
je 0x14003b4d1
sub r8d, r13d
lea ecx, [r9 + r8]
cmp ecx, 0xff
ja 0x14003bd25
movzx r12d, r9b
sub r12b, r13b
mov dword [rbp - 9], r12d
mov dword [rdi + 0x40c], ecx
mov eax, dword [rdi + 0x410]
cmp eax, ecx
cmovb eax, ecx
mov dword [rdi + 0x410], eax
mov byte [rbp - 0x5d], 0
mov r15, 0xffffffffffffffff
mov ebx, r15d
mov dword [rbp - 0x65], ebx
cmp dword [rdi + 8], 1
jl 0x14003b7a9
cmp byte [rsi + 0x38], 0
jne 0x14003b7a9
cmp qword [rdi + 0x168], 0
je 0x14003b7a9
mov r10, qword [rdi + 0x170]
cmp rsi, r10
je 0x14003b7a9
mov r9, qword [rdi + 0x160]
dec r9
mov rax, rsi
shr rax, 5
xor rax, rsi
shr rax, 4
and rax, r9
mov rdx, r14
mov r11, qword [rdi + 0x158]
nop dword [rax]
mov rcx, rax
shl rcx, 4
add rcx, r11
mov r8, qword [rcx]
cmp r8, rsi
je 0x14003b4ed
cmp r8, r10
je 0x14003b7a9
inc rax
add rax, rdx
and rax, r9
inc rdx
cmp rdx, r9
jbe 0x14003b4a0
jmp 0x14003b7a9
mov r12d, r9d
mov dword [rbp - 9], r9d
lea ecx, [r9 + r8]
cmp ecx, 0xff
ja 0x14003bd0e
jmp 0x14003b41a
lea rax, [rcx + 8]
test rcx, rcx
cmove rax, r14
test rax, rax
je 0x14003b7a9
mov ebx, dword [rax]
mov dword [rbp - 0x65], ebx
test ebx, ebx
js 0x14003b5e0
mov rax, qword [rdi]
mov ecx, dword [rax + 0x2e0]
shr ecx, 4
test cl, 1
je 0x14003b5e0
lea r9, [rdi + 0xb8]
lea r8, [rdi + 0x90]
mov rdx, qword [rsi + 0x20]
lea rcx, [rbp - 0x49]
call fcn.1400303a0
movups xmm1, xmmword [rax]
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x14003b563
mov rdx, qword [rsi + 0x28]
mov rdx, qword [rdx + rax*8 - 8]
mov rcx, rdi
call fcn.1400398f0
test al, al
je 0x14003b563
mov cl, 1
jmp 0x14003b565
xor cl, cl
movq r8, xmm1
psrldq xmm1, 8
test r8, r8
je 0x14003b5aa
lea rdx, [0x1400dd944]
lea rax, [0x1400db633]
test cl, cl
cmovne rax, rdx
mov qword [rsp + 0x28], rax
mov eax, dword [rsi + 0x30]
mov dword [rsp + 0x20], eax
movq r9, xmm1
lea rdx, str.builtin__s._s__d_s
mov rcx, qword [rdi]
call fcn.1400333f0
jmp 0x14003b5e0
movq r8, xmm1
test r8, r8
je 0x14003b5e0
lea rdx, [0x1400dd944]
lea rax, [0x1400db633]
test cl, cl
cmovne rax, rdx
mov qword [rsp + 0x20], rax
mov r9d, dword [rsi + 0x30]
lea rdx, str.builtin__s__d_s
mov rcx, qword [rdi]
call fcn.1400333f0
cmp ebx, 0x39
jne 0x14003b627
cmp byte [rbp + 0x7f], 0
jne 0x14003b61c
cmp r13b, 1
jne 0x14003b61c
mov byte [rsp + 0x30], r12b
mov byte [rsp + 0x28], 0
movzx eax, byte [rbp + 0x77]
mov byte [rsp + 0x20], al
movzx r9d, r13b
movzx r8d, byte [rbp - 0x68]
mov rdx, rsi
mov rcx, rdi
call fcn.140039c10
jmp 0x14003bcd0
mov ebx, r15d
mov dword [rbp - 0x65], ebx
jmp 0x14003b7a9
cmp ebx, 0x22
jne 0x14003b7a9
cmp qword [rsi + 0x30], 3
jne 0x14003b7a9
mov r13, qword [rsi + 0x28]
mov r12, qword [r13 + 8]
mov qword [rbp - 0x19], r12
lea rdx, [rbp - 0x19]
lea rcx, [rdi + 0xe0]
call fcn.140047300
test rax, rax
je 0x14003b7a6
cmp dword [rax], 0
je 0x14003b7a6
mov r13, qword [r13 + 0x10]
mov qword [rbp - 0x19], r13
lea rdx, [rbp - 0x19]
lea rcx, [rdi + 0xe0]
call fcn.140047300
test rax, rax
je 0x14003b7a6
cmp dword [rax], 0
je 0x14003b7a6
mov qword [rbp - 0x19], r12
lea rdx, [rbp - 0x19]
lea rcx, [rdi + 0xe0]
call fcn.140047300
test rax, rax
je 0x14003b6b6
movups xmm2, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
jmp 0x14003b6ca
mov qword [rbp - 0x49], r14
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x41], xmm0
movups xmm2, xmmword [rbp - 0x49]
unpckhpd xmm0, xmm0
movsd qword [rbp - 0x39], xmm0
mov qword [rbp - 0x19], r13
lea rcx, [rdi + 0xe0]
lea rdx, [rbp - 0x19]
call fcn.140047300
test rax, rax
je 0x14003b6f2
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
jmp 0x14003b706
mov qword [rbp - 0x49], r14
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x41], xmm0
movups xmm1, xmmword [rbp - 0x49]
unpckhpd xmm0, xmm0
movsd qword [rbp - 0x39], xmm0
movd eax, xmm2
cmp eax, 3
jne 0x14003b71e
unpckhpd xmm2, xmm2
cvttsd2si edx, xmm2
jmp 0x14003b721
mov edx, r15d
movd eax, xmm1
cmp eax, 3
jne 0x14003b734
unpckhpd xmm1, xmm1
cvttsd2si ecx, xmm1
jmp 0x14003b737
mov ecx, r15d
test edx, edx
js 0x14003b7a6
test ecx, ecx
jle 0x14003b7a6
lea eax, [rcx + rdx]
cmp eax, 0x20
jg 0x14003b7a6
shl ecx, 5
sub ecx, 0x20
or ecx, edx
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mov rcx, qword [rdi]
call fcn.140032ab0
test eax, eax
js 0x14003bd3c
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], 0x3b
mov r15d, dword [rbp - 9]
mov byte [rsp + 0x30], r15b
movzx eax, byte [rbp + 0x7f]
mov byte [rsp + 0x28], al
movzx eax, byte [rbp + 0x77]
mov byte [rsp + 0x20], al
movzx r9d, byte [rbp - 0x69]
movzx r8d, byte [rbp - 0x68]
mov rdx, rsi
mov rcx, rdi
call fcn.140039f50
jmp 0x14003bcd0
mov ebx, dword [rbp - 0x65]
mov ecx, 2
movzx r13d, byte [0x140113248]
test r13b, r13b
je 0x14003b802
test ebx, ebx
js 0x14003b86e
cmp qword [rsi + 0x30], 3
jne 0x14003b806
mov rbx, r14
mov r12, qword [rsi + 0x28]
mov rdx, qword [r12]
mov rcx, rdi
call fcn.140041060
test eax, eax
jns 0x14003b7f8
inc rbx
add r12, 8
cmp rbx, 3
jb 0x14003b7d1
mov ecx, 2
mov ebx, dword [rbp - 0x65]
jmp 0x14003b806
mov ecx, 3
mov ebx, dword [rbp - 0x65]
jmp 0x14003b806
test ebx, ebx
js 0x14003b86e
mov r8, qword [rsi + 0x30]
cmp r8, 1
jb 0x14003b86e
mov eax, 2
test r13b, r13b
cmovne rax, rcx
cmp r8, rax
ja 0x14003b86e
mov rdx, qword [rsi + 0x28]
mov rdx, qword [rdx + r8*8 - 8]
mov rcx, rdi
call fcn.1400398f0
test al, al
jne 0x14003b844
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x38], ebx
jmp 0x14003b773
cmp dword [rdi + 8], 2
jl 0x14003b86e
mov edx, ebx
lea rcx, [rbp - 0x49]
call fcn.1400318b0
movsd xmm0, qword [rax]
movsd qword [rbp - 0x19], xmm0
mov ecx, dword [rax + 8]
mov eax, dword [rbp - 0x19]
cmp dword [rsi + 0x30], eax
jne 0x14003b86e
test cl, 1
jne 0x14003b836
cmp byte [rsi + 0x38], 0
je 0x14003b8d1
mov rcx, qword [rsi + 0x20]
mov rdx, r14
mov eax, dword [0x14011fbfc]
cmp dword [rcx + 8], eax
cmove rdx, rcx
mov r12, qword [rdx + 0x20]
mov rdx, r12
mov rcx, rdi
call fcn.140041060
mov dword [rbp - 0x5d], eax
mov r13d, dword [rbp - 9]
test eax, eax
jns 0x14003b909
mov byte [rbp - 0x5d], r13b
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
movzx eax, r13b
inc eax
mov dword [rdi + 0x40c], eax
movzx r8d, r13b
mov rdx, r12
mov rcx, rdi
call fcn.140040420
nop
jmp 0x14003b903
mov r13d, dword [rbp - 9]
test ebx, ebx
jns 0x14003b909
mov rdx, qword [rsi + 0x20]
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
movzx eax, r13b
inc eax
mov dword [rdi + 0x40c], eax
movzx r8d, r13b
mov rcx, rdi
call fcn.140040420
nop
mov dword [rdi + 0x40c], ebx
mov byte [rbp - 0x61], 0
mov rax, r14
mov rcx, qword [rsi + 0x30]
test rcx, rcx
je 0x14003b980
nop dword [rax]
lea r12, [rax + 1]
movzx r8d, al
add r8b, byte [rsi + 0x38]
mov rdx, qword [rsi + 0x28]
inc r8b
mov rdx, qword [rdx + rax*8]
add r8b, r13b
cmp r12, rcx
jne 0x14003b94c
mov rcx, rdi
call fcn.140039ab0
mov byte [rbp - 0x61], al
jmp 0x14003b974
mov qword [rbp - 0x49], rdi
mov ebx, dword [rdi + 0x40c]
mov dword [rbp - 0x41], ebx
movzx eax, r8b
inc eax
mov dword [rdi + 0x40c], eax
mov rcx, rdi
call fcn.140040420
nop
mov dword [rdi + 0x40c], ebx
mov rax, r12
mov rcx, qword [rsi + 0x30]
cmp r12, rcx
jb 0x14003b920
mov rax, qword [rsi + 0x20]
cmp dword [rdi + 0xc], 1
jl 0x14003b998
mov rcx, qword [rdi]
mov eax, dword [rax + 0x14]
inc eax
mov dword [rcx + 0x1b8], eax
cmp byte [rsi + 0x38], 0
je 0x14003bb0e
mov rcx, qword [rsi + 0x20]
mov r12, r14
mov eax, dword [0x14011fbfc]
cmp dword [rcx + 8], eax
cmove r12, rcx
cmp dword [rdi + 0xc], 1
jl 0x14003b9cc
mov rcx, qword [rdi]
mov eax, dword [r12 + 0x30]
inc eax
mov dword [rcx + 0x1b8], eax
mov rbx, qword [r12 + 0x28]
inc r15
cmp byte [rbx + r15], 0
jne 0x14003b9d1
mov qword [rbp - 0x49], rbx
mov qword [rbp - 0x41], r15
lea rdx, [rbp - 0x49]
mov rcx, qword [rdi]
call fcn.140032d90
mov dword [rbp - 0x65], eax
test eax, eax
js 0x14003bd4d
mov r13, qword [rdi]
mov rdx, r15
test r15, r15
je 0x14003ba31
lea r8, [rbx - 1]
add r8, rdx
nop dword [rax]
mov ecx, r15d
shl ecx, 5
mov eax, r15d
shr eax, 2
add ecx, eax
movzx eax, byte [r8]
add ecx, eax
xor r15d, ecx
lea r8, [r8 - 1]
sub rdx, 1
jne 0x14003ba10
movzx ecx, r15b
shl ecx, 8
movzx eax, byte [rbp - 0x5d]
or ecx, eax
shl ecx, 8
mov r15d, dword [rbp - 9]
movzx eax, r15b
or ecx, eax
shl ecx, 8
or ecx, 0x14
mov dword [rbp - 9], ecx
mov rdx, qword [r13 + 0x30]
cmp rdx, qword [r13 + 0x38]
je 0x14003ba67
mov dword [rdx], ecx
add qword [r13 + 0x30], 4
jmp 0x14003ba74
lea r8, [rbp - 9]
lea rcx, [r13 + 0x28]
call fcn.140028a60
lea rcx, [r13 + 0x40]
lea r8, [r13 + 0x1b8]
mov rdx, qword [r13 + 0x48]
cmp rdx, qword [r13 + 0x50]
je 0x14003ba95
mov eax, dword [r8]
mov dword [rdx], eax
add qword [r13 + 0x48], 4
jmp 0x14003ba9a
call fcn.140028a60
mov rbx, qword [rdi]
mov eax, dword [rbp - 0x65]
mov dword [rbp - 9], eax
lea rcx, [rbx + 0x28]
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x14003baba
mov dword [rdx], eax
add qword [rbx + 0x30], 4
jmp 0x14003bac3
lea r8, [rbp - 9]
call fcn.140028a60
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x14003bae4
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x14003bae9
call fcn.140028a60
movzx r8d, byte [rbp - 0x5d]
mov dword [rsp + 0x20], 2
mov r9d, 4
mov rdx, qword [r12 + 0x20]
mov rcx, rdi
call fcn.140045100
jmp 0x14003bbb8
mov eax, dword [rbp - 0x65]
test eax, eax
js 0x14003bbb4
mov rbx, qword [rdi]
lea rcx, [rbx + 0x28]
mov rdx, qword [rcx + 8]
mov r15, rdx
sub r15, qword [rcx]
sar r15, 2
movzx eax, al
shl eax, 8
or eax, 0x44
mov dword [rbp - 0x5d], eax
cmp rdx, qword [rcx + 0x10]
je 0x14003bb49
mov dword [rdx], eax
add qword [rcx + 8], 4
jmp 0x14003bb52
lea r8, [rbp - 0x5d]
call fcn.140028a60
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x14003bb73
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x14003bb78
call fcn.140028a60
mov r9b, 1
movzx r8d, r13b
mov rdx, qword [rsi + 0x20]
mov rcx, rdi
call fcn.14003fe60
mov rax, qword [rdi]
mov rdx, qword [rax + 0x28]
mov rcx, qword [rax + 0x30]
sub rcx, rdx
sar rcx, 2
sub ecx, r15d
dec ecx
movzx eax, cl
cmp eax, ecx
jne 0x14003bcf9
shl ecx, 0x18
or dword [rdx + r15*4], ecx
mov r15d, dword [rbp - 9]
mov rbx, qword [rdi]
movzx r12d, byte [rbp - 0x69]
cmp byte [rbp + 0x7f], 0
je 0x14003bbca
xor cl, cl
jmp 0x14003bbcf
lea ecx, [r12 + 1]
cmp byte [rbp - 0x61], 0
je 0x14003bbd9
xor al, al
jmp 0x14003bbe2
movzx eax, byte [rsi + 0x38]
inc al
add al, byte [rsi + 0x30]
movzx ecx, cl
shl ecx, 8
movzx eax, al
or ecx, eax
shl ecx, 8
movzx eax, r15b
or ecx, eax
shl ecx, 8
or ecx, 0x15
mov dword [rbp - 0x5d], ecx
mov rdx, qword [rbx + 0x30]
cmp rdx, qword [rbx + 0x38]
je 0x14003bc12
mov dword [rdx], ecx
add qword [rbx + 0x30], 4
jmp 0x14003bc1f
lea r8, [rbp - 0x5d]
lea rcx, [rbx + 0x28]
call fcn.140028a60
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x14003bc40
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x14003bc45
call fcn.140028a60
cmp byte [rbp + 0x77], 0
jne 0x14003bcd0
movzx esi, r12b
test r12b, r12b
je 0x14003bcd0
movzx r12d, byte [rbp - 0x68]
nop dword [rax]
mov rbx, qword [rdi]
lea eax, [r15 + r14]
movzx edx, al
shl edx, 8
lea eax, [r14 + r12]
movzx ecx, al
or edx, ecx
shl edx, 8
or edx, 6
mov dword [rbp - 0x5d], edx
lea rcx, [rbx + 0x28]
mov rax, qword [rbx + 0x30]
cmp rax, qword [rbx + 0x38]
je 0x14003bc96
mov dword [rax], edx
add qword [rbx + 0x30], 4
jmp 0x14003bca2
lea r8, [rbp - 0x5d]
mov rdx, rax
call fcn.140028a60
lea rcx, [rbx + 0x40]
lea r8, [rbx + 0x1b8]
mov rdx, qword [rbx + 0x48]
cmp rdx, qword [rbx + 0x50]
je 0x14003bcc3
mov eax, dword [r8]
mov dword [rdx], eax
add qword [rbx + 0x48], 4
jmp 0x14003bcc8
call fcn.140028a60
inc r14
cmp r14, rsi
jb 0x14003bc60
mov eax, dword [rbp - 0x59]
mov dword [rdi + 0x40c], eax
mov rcx, qword [rbp - 1]
xor rcx, rsp
call fcn.1400ce8a0
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, qword [rsi + 0x20]
add rcx, 0xc
lea rdx, str.Exceeded_jump_distance_limit__simplify_the_code_to_compile
call fcn.140038810
int3
lea rcx, [rsi + 0xc]
mov r9d, 0xff
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.140038810
int3
lea rcx, [rsi + 0xc]
mov r9d, 0xff
lea rdx, str.Out_of_registers_when_trying_to_allocate__d_registers:_exceeded_limit__d
call fcn.140038810
int3
lea rcx, [rsi + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.140038810
int3
lea rcx, [r12 + 0xc]
lea rdx, str.Exceeded_constant_limit__simplify_the_code_to_compile
call fcn.140038810
int3