Function at 0x1400154d0
Capabilities:
Encode data using xor
Link many functions at runtime

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x78]
sub rsp, 0x178
mov r12, rcx
xor edi, edi
mov r15d, dword [0x14005fc10]
mov ebx, r15d
mov qword [rbp - 0x80], rbx
mov rax, qword gs:[0x58]
mov r10, qword [rax + r15*8]
mov qword [rbp + 0xc8], r10
mov ecx, 0x330
mov eax, dword [rcx + r10]
mov r9d, 0x318
test al, 1
jne 0x14001564a
or eax, 1
mov dword [rcx + r10], eax
lea rax, [r10 + r9]
movups xmm0, xmmword [0x140047c20]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x140047c30]
movsd qword [rsp + 0x50], xmm0
mov qword [rax], rdi
mov word [rax + 8], di
xor ecx, ecx
mov qword [rax + 0xa], rcx
mov dword [rax + 0x12], ecx
mov edx, edi
lea rcx, [rax + 0xb]
lea r8, [rsp + 0x4a]
sub r8, rax
lea r11, [rsp + 0x40]
sub r11, rax
lea rbx, [rsp + 0x41]
sub rbx, rax
lea rsi, [rsp + 0x42]
sub rsi, rax
lea r14, [rsp + 0x43]
sub r14, rax
lea r15, [rsp + 0x44]
sub r15, rax
lea r13, [rsp + 0x45]
sub r13, rax
lea r12, [rsp + 0x46]
sub r12, rax
lea r10, [rsp + 0x47]
sub r10, rax
lea r9, [rsp + 0x48]
sub r9, rax
lea rdi, [rsp + 0x49]
sub rdi, rax
nop
movzx eax, byte [r8 + rcx - 0xb]
mov byte [rcx - 1], al
movzx eax, byte [r11 + rcx]
mov byte [rcx], al
movzx eax, byte [rbx + rcx]
mov byte [rcx + 1], al
movzx eax, byte [rsi + rcx]
mov byte [rcx + 2], al
movzx eax, byte [r14 + rcx]
mov byte [rcx + 3], al
movzx eax, byte [r15 + rcx]
mov byte [rcx + 4], al
movzx eax, byte [rcx + r13]
mov byte [rcx + 5], al
movzx eax, byte [r12 + rcx]
mov byte [rcx + 6], al
movzx eax, byte [r10 + rcx]
mov byte [rcx + 7], al
movzx eax, byte [r9 + rcx]
mov byte [rcx + 8], al
movzx eax, byte [rdi + rcx]
mov byte [rcx + 9], al
movzx eax, byte [r8 + rcx]
mov byte [rcx + 0xa], al
add edx, 0xc
lea rcx, [rcx + 0xc]
cmp edx, 0xc
jb 0x1400155c0
xor edi, edi
mov r12, qword [rbp + 0xc0]
mov r9d, 0x318
mov r10, qword [rbp + 0xc8]
mov r15d, dword [0x14005fc10]
mov rbx, qword [rbp - 0x80]
cmp byte [r10 + r9 + 9], 0
jne 0x140015672
lea r8, [r10 + r9]
mov edx, edi
nop dword [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x80]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 0xc
jb 0x140015660
mov byte [r10 + r9 + 9], 1
lea rcx, [r9 + 0xa]
add rcx, r10
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rsi, rax
mov qword [rbp + 0xd8], rax
test rax, rax
jne 0x1400156f4
lea rcx, [rbp + 0xc8]
call fcn.140005bc0
cmp byte [rax + 9], sil
jne 0x1400156c4
mov r8d, edi
nop dword [rax]
movsxd rdx, r8d
lea ecx, [r8 - 0x7f]
xor byte [rdx + rax + 0xa], cl
inc r8d
cmp r8d, 0x13
jb 0x1400156b0
mov byte [rax + 9], 1
lea rdx, [rax + 0xa]
xorps xmm0, xmm0
movups xmmword [r12], xmm0
mov qword [r12 + 0x10], rdi
mov qword [r12 + 0x18], rdi
mov r15, 0xffffffffffffffff
inc r15
cmp byte [rdx + r15], 0
jne 0x1400156e5
jmp 0x14001640f
mov rax, qword gs:[0x58]
mov r9, qword [rax + rbx*8]
mov qword [rbp - 0x70], r9
mov ecx, 0x378
mov eax, dword [rcx + r9]
mov edx, 0x360
test al, 1
jne 0x140015883
or eax, 1
mov dword [rcx + r9], eax
mov eax, edx
add rax, r9
movups xmm0, xmmword [0x140047c58]
movaps xmmword [rsp + 0x60], xmm0
movsd xmm0, qword [0x140047c68]
movsd qword [rsp + 0x70], xmm0
mov qword [rax], 0
mov word [rax + 8], 0
xor ecx, ecx
mov qword [rax + 0xa], rcx
mov dword [rax + 0x12], ecx
mov word [rax + 0x16], cx
mov dword [rbp + 0xc8], edi
lea rcx, [rax + 0xb]
lea r8, [rsp + 0x6a]
sub r8, rax
lea r10, [rsp + 0x60]
sub r10, rax
lea r11, [rsp + 0x61]
sub r11, rax
lea rbx, [rsp + 0x62]
sub rbx, rax
lea r14, [rsp + 0x63]
sub r14, rax
lea r13, [rsp + 0x64]
sub r13, rax
lea r12, [rsp + 0x65]
sub r12, rax
lea r15, [rsp + 0x66]
sub r15, rax
lea rsi, [rsp + 0x67]
sub rsi, rax
lea r9, [rsp + 0x68]
sub r9, rax
lea rdi, [rsp + 0x69]
sub rdi, rax
lea rdx, [rsp + 0x6b]
sub rdx, rax
mov qword [rbp - 0x60], rdx
lea rdx, [rsp + 0x6c]
sub rdx, rax
mov qword [rbp - 0x68], rdx
mov edx, dword [rbp + 0xc8]
nop dword [rax + rax]
movzx eax, byte [rcx + r8 - 0xb]
mov byte [rcx - 1], al
movzx eax, byte [r10 + rcx]
mov byte [rcx], al
movzx eax, byte [r11 + rcx]
mov byte [rcx + 1], al
movzx eax, byte [rbx + rcx]
mov byte [rcx + 2], al
movzx eax, byte [r14 + rcx]
mov byte [rcx + 3], al
movzx eax, byte [rcx + r13]
mov byte [rcx + 4], al
movzx eax, byte [r12 + rcx]
mov byte [rcx + 5], al
movzx eax, byte [r15 + rcx]
mov byte [rcx + 6], al
movzx eax, byte [rsi + rcx]
mov byte [rcx + 7], al
movzx eax, byte [r9 + rcx]
mov byte [rcx + 8], al
movzx eax, byte [rdi + rcx]
mov byte [rcx + 9], al
movzx eax, byte [rcx + r8]
mov byte [rcx + 0xa], al
mov rax, qword [rbp - 0x60]
movzx eax, byte [rax + rcx]
mov byte [rcx + 0xb], al
mov rax, qword [rbp - 0x68]
movzx eax, byte [rax + rcx]
mov byte [rcx + 0xc], al
add edx, 0xe
lea rcx, [rcx + 0xe]
cmp edx, 0xe
jb 0x1400157e0
xor edi, edi
mov r12, qword [rbp + 0xc0]
mov rsi, qword [rbp + 0xd8]
mov r9, qword [rbp - 0x70]
mov r15d, dword [0x14005fc10]
mov rbx, qword [rbp - 0x80]
mov edx, 0x360
mov r8d, edx
add r8, r9
cmp byte [r8 + 9], 0
jne 0x1400158b2
mov edx, edi
nop dword [rax]
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x7f]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 0xe
jb 0x1400158a0
mov byte [r8 + 9], 1
lea rdx, [r8 + 0xa]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r13, rax
mov qword [rbp - 0x80], rax
lea rcx, [rbp + 0xc8]
call fcn.140006c40
cmp byte [rax + 9], 0
jne 0x1400158f4
mov r8d, edi
movsxd rdx, r8d
lea ecx, [r8 - 0x7f]
xor byte [rdx + rax + 0xa], cl
inc r8d
cmp r8d, 0x11
jb 0x1400158e0
mov byte [rax + 9], 1
lea rdx, [rax + 0xa]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp - 0x58], rax
mov rcx, qword gs:[0x58]
mov r14, qword [rcx + rbx*8]
mov eax, 0x3bc
mov ecx, dword [rax + r14]
mov ebx, 0x3a0
test cl, 1
jne 0x140015962
or ecx, 1
mov dword [rax + r14], ecx
lea rcx, [r14 + rbx]
movups xmm0, xmmword [0x140047c90]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x140047ca0]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [0x140047ca8]
mov dword [rsp + 0x58], eax
lea rdx, [rsp + 0x40]
call fcn.1400035c0
lea r8, [r14 + rbx]
cmp byte [r8 + 9], 0
jne 0x140015982
mov edx, edi
nop
movsxd rcx, edx
lea eax, [rdx - 0x7e]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 0x11
jb 0x140015970
mov byte [r8 + 9], 1
lea rdx, [r8 + 0xa]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp - 0x70], rax
mov rdx, qword gs:[0x58]
mov ecx, r15d
mov r14, qword [rdx + rcx*8]
mov eax, 0x3dc
mov ecx, dword [rax + r14]
mov ebx, 0x3c0
test cl, 1
jne 0x1400159f4
or ecx, 1
mov dword [rax + r14], ecx
lea rcx, [r14 + rbx]
movups xmm0, xmmword [0x140047cb0]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x140047cc0]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [0x140047cc8]
mov dword [rsp + 0x58], eax
lea rdx, [rsp + 0x40]
call fcn.1400035c0
lea r8, [rbx + r14]
cmp byte [r8 + 9], 0
jne 0x140015a22
mov edx, edi
nop dword [rax]
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x7e]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 0x11
jb 0x140015a10
mov byte [r8 + 9], 1
lea rdx, [r8 + 0xa]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp - 0x68], rax
lea rcx, [rbp + 0xc8]
call fcn.140007680
cmp byte [rax + 9], 0
jne 0x140015a64
mov r8d, edi
nop dword [rax]
movsxd rdx, r8d
lea ecx, [r8 - 0x7d]
xor byte [rdx + rax + 0xa], cl
inc r8d
cmp r8d, 0x11
jb 0x140015a50
mov byte [rax + 9], 1
lea rdx, [rax + 0xa]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r14, rax
mov qword [rbp - 0x60], rax
lea rcx, [rbp + 0xc8]
call fcn.140008040
cmp byte [rax + 9], 0
jne 0x140015aa5
mov r8d, edi
movsxd rdx, r8d
lea ecx, [r8 - 0x7d]
xor byte [rdx + rax + 0xa], cl
inc r8d
cmp r8d, 0x14
jb 0x140015a91
mov byte [rax + 9], 1
lea rdx, [rax + 0xa]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
mov qword [rbp - 0x78], rax
test r13, r13
je 0x1400163aa
cmp qword [rbp - 0x58], 0
je 0x1400163aa
cmp qword [rbp - 0x70], 0
je 0x1400163aa
cmp qword [rbp - 0x68], 0
je 0x1400163aa
test r14, r14
je 0x1400163aa
test rax, rax
je 0x1400163aa
mov rcx, qword gs:[0x58]
mov eax, r15d
mov rdx, qword [rcx + rax*8]
mov ecx, 0x468
mov eax, dword [rcx + rdx]
mov r8d, 0x450
test al, 1
jne 0x140015c4e
or eax, 1
mov dword [rcx + rdx], eax
mov eax, r8d
add rax, rdx
movups xmm0, xmmword [0x140047d30]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x140047d40]
movsd qword [rsp + 0x50], xmm0
mov qword [rax], 0
mov word [rax + 8], 0
xor ecx, ecx
mov qword [rax + 0xa], rcx
mov dword [rax + 0x12], ecx
mov edx, edi
lea rcx, [rax + 0xb]
lea r8, [rsp + 0x4a]
sub r8, rax
lea r9, [rsp + 0x40]
sub r9, rax
lea r10, [rsp + 0x41]
sub r10, rax
lea r11, [rsp + 0x42]
sub r11, rax
lea r14, [rsp + 0x43]
sub r14, rax
lea r13, [rsp + 0x44]
sub r13, rax
lea r12, [rsp + 0x45]
sub r12, rax
lea rsi, [rsp + 0x46]
sub rsi, rax
lea rbx, [rsp + 0x47]
sub rbx, rax
lea r15, [rsp + 0x48]
sub r15, rax
lea rdi, [rsp + 0x49]
sub rdi, rax
nop dword [rax]
movzx eax, byte [rcx + r8 - 0xb]
mov byte [rcx - 1], al
movzx eax, byte [r9 + rcx]
mov byte [rcx], al
movzx eax, byte [r10 + rcx]
mov byte [rcx + 1], al
movzx eax, byte [r11 + rcx]
mov byte [rcx + 2], al
movzx eax, byte [r14 + rcx]
mov byte [rcx + 3], al
movzx eax, byte [rcx + r13]
mov byte [rcx + 4], al
movzx eax, byte [r12 + rcx]
mov byte [rcx + 5], al
movzx eax, byte [rsi + rcx]
mov byte [rcx + 6], al
movzx eax, byte [rbx + rcx]
mov byte [rcx + 7], al
movzx eax, byte [rcx + r15]
mov byte [rcx + 8], al
movzx eax, byte [rcx + rdi]
mov byte [rcx + 9], al
movzx eax, byte [rcx + r8]
mov byte [rcx + 0xa], al
add edx, 0xc
lea rcx, [rcx + 0xc]
cmp edx, 0xc
jb 0x140015bc0
xor edi, edi
mov r12, qword [rbp + 0xc0]
mov rsi, qword [rbp + 0xd8]
mov rbx, qword [rbp - 0x78]
mov r15d, dword [0x14005fc10]
mov r13, qword [rbp - 0x80]
mov r8d, 0x450
mov rcx, qword gs:[0x58]
mov eax, r15d
add r8, qword [rcx + rax*8]
cmp byte [r8 + 9], 0
jne 0x140015c82
mov edx, edi
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x7c]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 0xc
jb 0x140015c70
mov byte [r8 + 9], 1
lea rcx, [r8 + 0xa]
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
call r13
mov r13, rax
mov qword [rbp - 0x80], rax
test rax, rax
jne 0x140015cf6
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, [rbp + 0xc8]
call fcn.140004650
cmp byte [rax + 9], r13b
jne 0x140015ce1
nop dword [rax]
nop word [rax + rax]
movsxd rdx, edi
lea ecx, [rdi - 0x7c]
xor byte [rdx + rax + 0xa], cl
inc edi
cmp edi, 0x13
jb 0x140015cd0
mov byte [rax + 9], 1
lea rdx, [rax + 0xa]
mov rcx, r12
call fcn.140003320
jmp 0x14001641a
mov rcx, qword gs:[0x58]
mov eax, r15d
mov rdx, qword [rcx + rax*8]
mov ecx, 0x4b0
mov eax, dword [rcx + rdx]
mov r8d, 0x498
test al, 1
jne 0x140015e85
or eax, 1
mov dword [rcx + rdx], eax
mov eax, r8d
add rax, rdx
movups xmm0, xmmword [0x140047d68]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x140047d78]
movsd qword [rsp + 0x50], xmm0
mov qword [rax], 0
mov word [rax + 8], 0
xor ecx, ecx
mov qword [rax + 0xa], rcx
mov dword [rax + 0x12], ecx
mov word [rax + 0x16], cx
mov dword [rbp + 0xc8], edi
lea rcx, [rax + 0xb]
lea r8, [rsp + 0x4a]
sub r8, rax
lea r9, [rsp + 0x40]
sub r9, rax
lea r10, [rsp + 0x41]
sub r10, rax
lea r11, [rsp + 0x42]
sub r11, rax
lea r14, [rsp + 0x43]
sub r14, rax
lea r13, [rsp + 0x44]
sub r13, rax
lea r12, [rsp + 0x45]
sub r12, rax
lea rsi, [rsp + 0x46]
sub rsi, rax
lea rbx, [rsp + 0x47]
sub rbx, rax
lea r15, [rsp + 0x48]
sub r15, rax
lea rdi, [rsp + 0x49]
sub rdi, rax
lea rdx, [rsp + 0x4b]
sub rdx, rax
mov qword [rbp - 0x28], rdx
lea rdx, [rsp + 0x4c]
sub rdx, rax
mov qword [rsp + 0x60], rdx
mov edx, dword [rbp + 0xc8]
nop dword [rax]
movzx eax, byte [rcx + r8 - 0xb]
mov byte [rcx - 1], al
movzx eax, byte [r9 + rcx]
mov byte [rcx], al
movzx eax, byte [r10 + rcx]
mov byte [rcx + 1], al
movzx eax, byte [r11 + rcx]
mov byte [rcx + 2], al
movzx eax, byte [r14 + rcx]
mov byte [rcx + 3], al
movzx eax, byte [rcx + r13]
mov byte [rcx + 4], al
movzx eax, byte [r12 + rcx]
mov byte [rcx + 5], al
movzx eax, byte [rsi + rcx]
mov byte [rcx + 6], al
movzx eax, byte [rbx + rcx]
mov byte [rcx + 7], al
movzx eax, byte [r15 + rcx]
mov byte [rcx + 8], al
movzx eax, byte [rdi + rcx]
mov byte [rcx + 9], al
movzx eax, byte [rcx + r8]
mov byte [rcx + 0xa], al
mov rax, qword [rbp - 0x28]
movzx eax, byte [rax + rcx]
mov byte [rcx + 0xb], al
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + rcx]
mov byte [rcx + 0xc], al
add edx, 0xe
lea rcx, [rcx + 0xe]
cmp edx, 0xe
jb 0x140015de0
xor edi, edi
mov r12, qword [rbp + 0xc0]
mov rsi, qword [rbp + 0xd8]
mov rbx, qword [rbp - 0x78]
mov r15d, dword [0x14005fc10]
mov r13, qword [rbp - 0x80]
mov r8d, 0x498
mov rcx, qword gs:[0x58]
mov eax, r15d
mov r9d, r8d
add r9, qword [rcx + rax*8]
cmp byte [r9 + 9], 0
jne 0x140015ec2
mov edx, edi
nop dword [rax]
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x7b]
xor byte [rcx + r9 + 0xa], al
inc edx
cmp edx, 0xe
jb 0x140015eb0
mov byte [r9 + 9], 1
mov r8d, 0x50
lea rdx, [r9 + 0xa]
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], rdi
xor r9d, r9d
mov rcx, r13
call qword [rbp - 0x58]
mov r14, rax
mov qword [rbp + 0xc8], rax
test rax, rax
jne 0x140015f46
mov rcx, r13
call rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, [rbp + 0xc8]
call fcn.140004fc0
cmp byte [rax + 9], r14b
jne 0x140015ce1
nop dword [rax]
nop word [rax + rax]
movsxd rdx, edi
lea ecx, [rdi - 0x7b]
xor byte [rdx + rax + 0xa], cl
inc edi
cmp edi, 0x13
jb 0x140015f30
jmp 0x140015ce1
mov rcx, qword gs:[0x58]
mov eax, r15d
mov rdx, qword [rcx + rax*8]
mov ecx, 0x4f4
mov eax, dword [rcx + rdx]
mov r8d, 0x4e0
test al, 1
jne 0x14001604d
or eax, 1
mov dword [rcx + rdx], eax
mov ecx, r8d
add rcx, rdx
movups xmm0, xmmword [0x140047da0]
movaps xmmword [rsp + 0x60], xmm0
mov eax, dword [0x140047db0]
mov dword [rsp + 0x70], eax
mov qword [rcx], 0
mov word [rcx + 8], 0
xor eax, eax
mov dword [rcx + 0xa], eax
mov word [rcx + 0xe], ax
mov byte [rcx + 0x10], al
mov r8d, edi
lea rdx, [rcx + 0xb]
lea r9, [rsp + 0x6a]
sub r9, rcx
lea r10, [rsp + 0x60]
sub r10, rcx
lea r11, [rsp + 0x61]
sub r11, rcx
lea rbx, [rsp + 0x62]
sub rbx, rcx
lea r14, [rsp + 0x63]
sub r14, rcx
lea r15, [rsp + 0x64]
sub r15, rcx
lea r13, [rsp + 0x65]
sub r13, rcx
nop word [rax + rax]
movzx eax, byte [rdx + r9 - 0xb]
mov byte [rdx - 1], al
movzx eax, byte [r10 + rdx]
mov byte [rdx], al
movzx eax, byte [r11 + rdx]
mov byte [rdx + 1], al
movzx eax, byte [rbx + rdx]
mov byte [rdx + 2], al
movzx eax, byte [r14 + rdx]
mov byte [rdx + 3], al
movzx eax, byte [r15 + rdx]
mov byte [rdx + 4], al
movzx eax, byte [rdx + r13]
mov byte [rdx + 5], al
add r8d, 7
lea rdx, [rdx + 7]
cmp r8d, 7
jb 0x140015ff0
mov rbx, qword [rbp - 0x78]
mov r15d, dword [0x14005fc10]
mov r14, qword [rbp + 0xc8]
mov r8d, 0x4e0
mov rcx, qword gs:[0x58]
mov eax, r15d
add r8, qword [rcx + rax*8]
cmp byte [r8 + 9], 0
jne 0x140016082
mov edx, edi
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x7b]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 7
jb 0x140016070
mov byte [r8 + 9], 1
lea rax, [r8 + 0xa]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rdi
mov rcx, qword gs:[0x58]
mov eax, r15d
mov rdx, qword [rcx + rax*8]
mov ecx, 0x508
mov eax, dword [rcx + rdx]
mov r13d, 0x4f8
test al, 1
jne 0x14001613c
or eax, 1
mov dword [rcx + rdx], eax
mov eax, r13d
add rax, rdx
movups xmm0, xmmword [0x140047db8]
movaps xmmword [rsp + 0x60], xmm0
mov qword [rax], 0
mov word [rax + 8], 0
xor ecx, ecx
mov dword [rax + 0xa], ecx
mov edx, edi
lea rcx, [rax + 0xb]
lea r8, [rsp + 0x6a]
sub r8, rax
lea r9, [rsp + 0x60]
sub r9, rax
lea r10, [rsp + 0x61]
sub r10, rax
lea r11, [rsp + 0x62]
sub r11, rax
nop dword [rax]
movzx eax, byte [rcx + r8 - 0xb]
mov byte [rcx - 1], al
movzx eax, byte [r9 + rcx]
mov byte [rcx], al
movzx eax, byte [r10 + rcx]
mov byte [rcx + 1], al
movzx eax, byte [r11 + rcx]
mov byte [rcx + 2], al
add edx, 4
lea rcx, [rcx + 4]
cmp edx, 4
jb 0x140016110
mov rcx, qword gs:[0x58]
mov eax, r15d
mov r8d, r13d
add r8, qword [rcx + rax*8]
cmp byte [r8 + 9], 0
jne 0x140016172
mov edx, edi
nop dword [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x7a]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 4
jb 0x140016160
mov byte [r8 + 9], 1
lea rdx, [r8 + 0xa]
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], edi
lea rax, [rbp - 0x20]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
xor r9d, r9d
lea r8, [0x140047de8]
mov rcx, r14
call qword [rbp - 0x70]
mov r13, rax
test rax, rax
jne 0x1400161f6
mov rcx, r14
call rbx
mov rcx, qword [rbp - 0x80]
call rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, [rbp + 0xc8]
call fcn.1400052a0
cmp byte [rax + 9], r13b
jne 0x140015ce1
nop dword [rax]
nop dword [rax + rax]
movsxd rdx, edi
lea ecx, [rdi - 0x7a]
xor byte [rdx + rax + 0xa], cl
inc edi
cmp edi, 0x13
jb 0x1400161e0
jmp 0x140015ce1
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r13
call qword [rbp - 0x68]
test eax, eax
jne 0x140016275
mov rcx, r13
call rbx
mov rcx, r14
call rbx
mov rcx, qword [rbp - 0x80]
call rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xorps xmm0, xmm0
movups xmmword [r12], xmm0
mov qword [r12 + 0x10], rdi
mov qword [r12 + 0x18], rdi
mov ecx, 0x20
call fcn.14001d794
mov qword [r12], rax
mov qword [r12 + 0x10], 0x12
mov qword [r12 + 0x18], 0x1f
movups xmm0, xmmword [str.Unknown_IP_Address]
movups xmmword [rax], xmm0
movzx ecx, word [0x140047e00]
mov word [rax + 0x10], cx
mov byte [rax + 0x12], 0
jmp 0x14001641a
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], rdi
mov qword [rbp - 0x38], 0xf
mov byte [rbp - 0x50], 0
lea r9, [rbp + 0xd0]
mov r8d, 0x7f
lea rdx, [rbp - 0x10]
mov rcx, r13
call qword [rbp - 0x60]
test eax, eax
je 0x140016378
mov r15, 0xffffffffffffffff
movzx ebx, byte [rbp + 0xc8]
mov r12, qword [rbp - 0x60]
nop dword [rax]
mov eax, dword [rbp + 0xd0]
test eax, eax
je 0x140016363
mov byte [rbp + rax - 0x10], 0
lea rax, [rbp - 0x10]
mov r14, r15
nop word [rax + rax]
inc r14
cmp byte [rax + r14], 0
jne 0x1400162e0
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x38]
mov rax, rdx
sub rax, rcx
cmp r14, rax
ja 0x14001632b
lea rax, [r14 + rcx]
mov qword [rbp - 0x40], rax
lea rsi, [rbp - 0x50]
cmp rdx, 0xf
cmova rsi, qword [rbp - 0x50]
add rsi, rcx
mov r8, r14
lea rdx, [rbp - 0x10]
mov rcx, rsi
call fcn.140044bb0
mov byte [r14 + rsi], 0
jmp 0x140016344
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x10]
movzx r8d, bl
mov rdx, r14
lea rcx, [rbp - 0x50]
call fcn.140001ee0
lea r9, [rbp + 0xd0]
mov r8d, 0x7f
lea rdx, [rbp - 0x10]
mov rcx, r13
call r12
test eax, eax
jne 0x1400162c0
mov r12, qword [rbp + 0xc0]
mov rsi, qword [rbp + 0xd8]
mov r14, qword [rbp + 0xc8]
mov rcx, r13
mov rbx, qword [rbp - 0x78]
call rbx
mov rcx, r14
call rbx
mov rcx, qword [rbp - 0x80]
call rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
movups xmm0, xmmword [rbp - 0x50]
movups xmmword [r12], xmm0
movups xmm1, xmmword [rbp - 0x40]
movups xmmword [r12 + 0x10], xmm1
jmp 0x14001641a
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, [rbp + 0xc8]
call fcn.1400087a0
cmp byte [rax + 9], 0
jne 0x1400163e4
mov r8d, edi
nop dword [rax + rax]
movsxd rdx, r8d
lea ecx, [r8 - 0x7d]
xor byte [rdx + rax + 0xa], cl
inc r8d
cmp r8d, 0x13
jb 0x1400163d0
mov byte [rax + 9], 1
lea rdx, [rax + 0xa]
xorps xmm0, xmm0
movups xmmword [r12], xmm0
mov qword [r12 + 0x10], rdi
mov qword [r12 + 0x18], rdi
mov r15, 0xffffffffffffffff
inc r15
cmp byte [rdx + r15], 0
jne 0x140016405
mov r8, r15
mov rcx, r12
call fcn.140001560
mov rax, r12
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret