Function at 0x140015090
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 [0x140062c10]
mov ebx, r15d
mov qword [rbp - 0x70], 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 0x140015209
or eax, 1
mov dword [rcx + r10], eax
lea rax, [r10 + r9]
movups xmm0, xmmword [0x14004af90]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x14004afa0]
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 r13, [rsp + 0x44]
sub r13, rax
lea r15, [rsp + 0x45]
sub r15, 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 [rcx + r13]
mov byte [rcx + 4], al
movzx eax, byte [r15 + rcx]
mov byte [rcx + 5], al
movzx eax, byte [rcx + r12]
mov byte [rcx + 6], al
movzx eax, byte [rcx + r10]
mov byte [rcx + 7], al
movzx eax, byte [rcx + r9]
mov byte [rcx + 8], al
movzx eax, byte [rcx + rdi]
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 0x140015180
xor edi, edi
mov r12, qword [rbp + 0xc0]
mov r9d, 0x318
mov r15d, dword [0x140062c10]
mov r10, qword [rbp + 0xc8]
mov ebx, r15d
cmp byte [r10 + r9 + 9], 0
jne 0x140015232
lea r8, [r10 + r9]
mov edx, edi
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx + 0x7e]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 0xc
jb 0x140015220
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 0x1400152b4
lea rcx, [rbp + 0xc8]
call fcn.140005c80
cmp byte [rax + 9], sil
jne 0x140015284
mov r8d, edi
nop dword [rax]
movsxd rdx, r8d
lea ecx, [r8 + 0x7e]
xor byte [rdx + rax + 0xa], cl
inc r8d
cmp r8d, 0x13
jb 0x140015270
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 0x1400152a5
jmp 0x14001602f
mov rax, qword gs:[0x58]
mov r9, qword [rax + rbx*8]
mov qword [rbp - 0x68], r9
mov ecx, 0x378
mov eax, dword [rcx + r9]
mov edx, 0x360
test al, 1
jne 0x140015443
or eax, 1
mov dword [rcx + r9], eax
mov eax, edx
add rax, r9
movups xmm0, xmmword [0x14004afc8]
movaps xmmword [rsp + 0x60], xmm0
movsd xmm0, qword [0x14004afd8]
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 - 0x58], rdx
lea rdx, [rsp + 0x6c]
sub rdx, rax
mov qword [rbp - 0x60], 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 - 0x58]
movzx eax, byte [rax + rcx]
mov byte [rcx + 0xb], al
mov rax, qword [rbp - 0x60]
movzx eax, byte [rax + rcx]
mov byte [rcx + 0xc], al
add edx, 0xe
lea rcx, [rcx + 0xe]
cmp edx, 0xe
jb 0x1400153a0
xor edi, edi
mov r12, qword [rbp + 0xc0]
mov rsi, qword [rbp + 0xd8]
mov r15d, dword [0x140062c10]
mov r9, qword [rbp - 0x68]
mov rbx, qword [rbp - 0x70]
mov edx, 0x360
mov r8d, edx
add r8, r9
cmp byte [r8 + 9], 0
jne 0x140015472
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 0x140015460
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.140006a70
cmp byte [rax + 9], 0
jne 0x1400154b4
mov r8d, edi
movsxd rdx, r8d
lea ecx, [r8 + 0x7f]
xor byte [rdx + rax + 0xa], cl
inc r8d
cmp r8d, 0x11
jb 0x1400154a0
mov byte [rax + 9], 1
lea rdx, [rax + 0xa]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp - 0x70], 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 0x140015522
or ecx, 1
mov dword [rax + r14], ecx
lea rcx, [r14 + rbx]
movups xmm0, xmmword [0x14004b000]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x14004b010]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [0x14004b018]
mov dword [rsp + 0x58], eax
lea rdx, [rsp + 0x40]
call fcn.1400035c0
lea r8, [r14 + rbx]
cmp byte [r8 + 9], 0
jne 0x140015542
mov edx, edi
nop
movsxd rcx, edx
lea eax, [rdx - 0x80]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 0x11
jb 0x140015530
mov byte [r8 + 9], 1
lea rdx, [r8 + 0xa]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp - 0x68], 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 0x1400155b4
or ecx, 1
mov dword [rax + r14], ecx
lea rcx, [r14 + rbx]
movups xmm0, xmmword [0x14004b020]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x14004b030]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [0x14004b038]
mov dword [rsp + 0x58], eax
lea rdx, [rsp + 0x40]
call fcn.1400035c0
lea r8, [rbx + r14]
cmp byte [r8 + 9], 0
jne 0x1400155e2
mov edx, edi
nop dword [rax]
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x80]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 0x11
jb 0x1400155d0
mov byte [r8 + 9], 1
lea rdx, [r8 + 0xa]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp - 0x60], rax
mov rdx, qword gs:[0x58]
mov ecx, r15d
mov r14, qword [rdx + rcx*8]
mov eax, 0x3fc
mov ecx, dword [rax + r14]
mov ebx, 0x3e0
test cl, 1
jne 0x140015654
or ecx, 1
mov dword [rax + r14], ecx
lea rcx, [r14 + rbx]
movups xmm0, xmmword [0x14004b040]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x14004b050]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [0x14004b058]
mov dword [rsp + 0x58], eax
lea rdx, [rsp + 0x40]
call fcn.1400035c0
lea r8, [rbx + r14]
cmp byte [r8 + 9], 0
jne 0x140015682
mov edx, edi
nop dword [rax]
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x80]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 0x11
jb 0x140015670
mov byte [r8 + 9], 1
lea rdx, [r8 + 0xa]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r14, rax
mov qword [rbp - 0x58], rax
lea rcx, [rbp + 0xc8]
call fcn.140008050
cmp byte [rax + 9], 0
jne 0x1400156c4
mov r8d, edi
movsxd rdx, r8d
lea ecx, [r8 - 0x7f]
xor byte [rdx + rax + 0xa], cl
inc r8d
cmp r8d, 0x14
jb 0x1400156b0
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 0x140015fca
cmp qword [rbp - 0x70], 0
je 0x140015fca
cmp qword [rbp - 0x68], 0
je 0x140015fca
cmp qword [rbp - 0x60], 0
je 0x140015fca
test r14, r14
je 0x140015fca
test rax, rax
je 0x140015fca
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 0x14001586e
or eax, 1
mov dword [rcx + rdx], eax
mov eax, r8d
add rax, rdx
movups xmm0, xmmword [0x14004b0a0]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x14004b0b0]
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 + 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
add edx, 0xc
lea rcx, [rcx + 0xc]
cmp edx, 0xc
jb 0x1400157e0
xor edi, edi
mov r12, qword [rbp + 0xc0]
mov rsi, qword [rbp + 0xd8]
mov r15d, dword [0x140062c10]
mov rbx, qword [rbp - 0x78]
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 0x1400158a2
mov edx, edi
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x7f]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 0xc
jb 0x140015890
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 0x140015916
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, [rbp + 0xc8]
call fcn.140004410
cmp byte [rax + 9], r13b
jne 0x140015901
nop dword [rax]
nop word [rax + rax]
movsxd rdx, edi
lea ecx, [rdi - 0x7e]
xor byte [rdx + rax + 0xa], cl
inc edi
cmp edi, 0x13
jb 0x1400158f0
mov byte [rax + 9], 1
lea rdx, [rax + 0xa]
mov rcx, r12
call fcn.140003320
jmp 0x14001603a
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 0x140015aa5
or eax, 1
mov dword [rcx + rdx], eax
mov eax, r8d
add rax, rdx
movups xmm0, xmmword [0x14004b0d8]
movaps xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x14004b0e8]
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 0x140015a00
xor edi, edi
mov r12, qword [rbp + 0xc0]
mov rsi, qword [rbp + 0xd8]
mov r15d, dword [0x140062c10]
mov rbx, qword [rbp - 0x78]
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 0x140015ae2
mov edx, edi
nop dword [rax]
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x7e]
xor byte [rcx + r9 + 0xa], al
inc edx
cmp edx, 0xe
jb 0x140015ad0
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 - 0x70]
mov r14, rax
mov qword [rbp + 0xc8], rax
test rax, rax
jne 0x140015b66
mov rcx, r13
call rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, [rbp + 0xc8]
call fcn.140004d80
cmp byte [rax + 9], r14b
jne 0x140015901
nop dword [rax]
nop word [rax + rax]
movsxd rdx, edi
lea ecx, [rdi - 0x7d]
xor byte [rdx + rax + 0xa], cl
inc edi
cmp edi, 0x13
jb 0x140015b50
jmp 0x140015901
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 0x140015c6d
or eax, 1
mov dword [rcx + rdx], eax
mov ecx, r8d
add rcx, rdx
movups xmm0, xmmword [0x14004b110]
movaps xmmword [rsp + 0x60], xmm0
mov eax, dword [0x14004b120]
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 0x140015c10
mov r15d, dword [0x140062c10]
mov rbx, qword [rbp - 0x78]
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 0x140015ca2
mov edx, edi
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x7d]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 7
jb 0x140015c90
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 0x140015d5c
or eax, 1
mov dword [rcx + rdx], eax
mov eax, r13d
add rax, rdx
movups xmm0, xmmword [0x14004b128]
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 0x140015d30
mov rcx, qword gs:[0x58]
mov eax, r15d
mov r8d, r13d
add r8, qword [rcx + rax*8]
cmp byte [r8 + 9], 0
jne 0x140015d92
mov edx, edi
nop dword [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x7d]
xor byte [rcx + r8 + 0xa], al
inc edx
cmp edx, 4
jb 0x140015d80
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, [0x1400480c4]
mov rcx, r14
call qword [rbp - 0x68]
mov r13, rax
test rax, rax
jne 0x140015e16
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.140005060
cmp byte [rax + 9], r13b
jne 0x140015901
nop dword [rax]
nop dword [rax + rax]
movsxd rdx, edi
lea ecx, [rdi - 0x7c]
xor byte [rdx + rax + 0xa], cl
inc edi
cmp edi, 0x13
jb 0x140015e00
jmp 0x140015901
mov dword [rsp + 0x20], edi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r13
call qword [rbp - 0x60]
test eax, eax
jne 0x140015e95
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.14001d3b4
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 [0x1400480f8]
mov word [rax + 0x10], cx
mov byte [rax + 0x12], 0
jmp 0x14001603a
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 - 0x58]
test eax, eax
je 0x140015f98
mov r15, 0xffffffffffffffff
movzx ebx, byte [rbp + 0xc8]
mov r12, qword [rbp - 0x58]
nop dword [rax]
mov eax, dword [rbp + 0xd0]
test eax, eax
je 0x140015f83
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 0x140015f00
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x38]
mov rax, rdx
sub rax, rcx
cmp r14, rax
ja 0x140015f4b
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.1400447d0
mov byte [r14 + rsi], 0
jmp 0x140015f64
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 0x140015ee0
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 0x14001603a
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, [rbp + 0xc8]
call fcn.1400085d0
cmp byte [rax + 9], 0
jne 0x140016004
mov r8d, edi
nop dword [rax + rax]
movsxd rdx, r8d
lea ecx, [r8 - 0x7f]
xor byte [rdx + rax + 0xa], cl
inc r8d
cmp r8d, 0x13
jb 0x140015ff0
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 0x140016025
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