Function at 0x4524c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1a8
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0x110], xmm7
movaps xmmword [rsp + 0x120], xmm8
movaps xmmword [rsp + 0x130], xmm9
movaps xmmword [rsp + 0x140], xmm10
movaps xmmword [rsp + 0x150], xmm11
movaps xmmword [rsp + 0x160], xmm12
movaps xmmword [rsp + 0x170], xmm13
movaps xmmword [rsp + 0x180], xmm14
movaps xmmword [rsp + 0x190], xmm15
mov qword [rsp + 0x1f0], rcx
mov rbx, rdx
mov r12d, r8d
mov r8d, 0xa
lea rcx, [rsp + 0xa0]
mov edx, r12d
mov qword [rsp + 0x80], rcx
call qword [0x0075cedc]
mov rax, qword [rbx]
mov qword [rsp + 0x98], rax
mov edx, dword [rax]
add edx, 1
cmp edx, 1
ja 0x4532bb
lea rdi, [rsp + 0xe0]
mov r8d, reloc.WS2_32.dll_inet_ntoa
mov r13, qword [0x0075ceb4]
lea rdx, str._NANO2D_pix_
mov rcx, rdi
call r13
lea rsi, [rsp + 0x98]
mov rdx, rdi
mov r14, qword [0x0075cecc]
mov rcx, rsi
call r14
mov rcx, qword [rsp + 0xe0]
mov ebp, dword [rcx]
test ebp, ebp
je 0x45327b
cmp ebp, 0xffffffff
je 0x4525d4
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xe0]
je 0x45327b
mov r8, qword [rsp + 0x98]
mov qword [rsp + 0xc0], r8
mov r9d, dword [r8]
add r9d, 1
cmp r9d, 1
ja 0x4532b1
lea rbp, [rsp + 0xc0]
mov rdx, qword [rsp + 0x80]
mov rcx, rbp
call r14
mov r10, qword [rsp + 0xc0]
mov qword [rsp + 0x90], r10
mov r11d, dword [r10]
add r11d, 1
cmp r11d, 1
ja 0x4532a7
lea rdx, [0x006db6d3]
mov r8d, 6
mov rcx, rdi
call r13
lea rcx, [rsp + 0x90]
mov rdx, rdi
mov qword [rsp + 0x88], rcx
call r14
mov rcx, qword [rsp + 0xe0]
mov ebx, dword [rcx]
test ebx, ebx
je 0x453265
cmp ebx, 0xffffffff
je 0x45267e
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xe0]
je 0x453265
mov rcx, qword [rsp + 0xc0]
mov eax, dword [rcx]
test eax, eax
je 0x45324f
cmp eax, 0xffffffff
je 0x4526a7
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xc0]
je 0x45324f
mov rcx, qword [rsp + 0x98]
mov edx, dword [rcx]
test edx, edx
je 0x453239
cmp edx, 0xffffffff
je 0x4526d0
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x98]
je 0x453239
mov rcx, qword [rsp + 0xa0]
mov r13d, dword [rcx]
test r13d, r13d
je 0x453223
cmp r13d, 0xffffffff
je 0x4526fc
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xa0]
je 0x453223
lea r8, [0x006db6dd]
mov rcx, rdi
lea r14, [rdi + 0x10]
lea rdx, [r8 - 3]
mov qword [rsp + 0xe0], r14
call fcn.004507d0
mov r9, qword [rsp + 0x90]
xor edx, edx
cmp r9, qword [0x0075cc7c]
mov r8d, dword [r9 + 4]
je 0x452739
add r9, qword [r9 + 0x10]
mov rdx, r9
mov rcx, rsi
call qword [0x0075cec4]
mov r15, qword [rsp + 0x98]
lea r8, [rbp + 0x10]
add r15, qword [r15 + 0x10]
mov qword [rsp + 0xc0], r8
mov r8, 0xffffffffffffffff
test r15, r15
je 0x452772
mov rcx, r15
call fcn.005b9bb8
lea r8, [r15 + rax]
mov rdx, r15
mov rcx, rbp
call fcn.004507d0
mov rcx, qword [rsp + 0x80]
mov r8, rdi
mov rdx, rbp
call fcn.00560950
mov rcx, qword [rsp + 0xc0]
add rbp, 0x10
cmp rcx, rbp
je 0x4527a6
call fcn.005ab730
mov rcx, qword [rsp + 0x98]
mov esi, dword [rcx]
test esi, esi
je 0x45320d
cmp esi, 0xffffffff
je 0x4527cf
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x98]
je 0x45320d
mov rcx, qword [rsp + 0xe0]
add rdi, 0x10
cmp rcx, rdi
je 0x4527e5
call fcn.005ab730
mov rbp, qword [rsp + 0x1f0]
pxor xmm1, xmm1
pxor xmm0, xmm0
cvtsi2ss xmm0, r12d
mov ecx, 0xc4
mov r10, qword [rbp + 0x38]
cvtsi2ss xmm1, dword [r10 + 0x278]
divss xmm1, xmm0
movss dword [rsp + 0x68], xmm1
call fcn.005ab718
lea r12, [rax + 0xc4]
mov rbp, rax
mov dword [rax], 0
lea r11, [rax + 4]
mov dword [r11], 0
add r11, 0x20
mov dword [r11 - 0x1c], 0
mov dword [r11 - 0x18], 0
mov dword [r11 - 0x14], 0
mov dword [r11 - 0x10], 0
mov dword [r11 - 0xc], 0
mov dword [r11 - 8], 0
mov dword [r11 - 4], 0
cmp r11, r12
jne 0x45282f
movsd xmm7, qword [0x006dcaf0]
mov r13, rbp
mov ebx, 3
movq xmm8, qword [0x006dcae0]
mov edi, ebx
pxor xmm6, xmm6
mov r14, r13
mov r15d, 3
shr edi, 1
cvtsi2sd xmm6, edi
mulsd xmm6, xmm6
nop dword [rax]
mov ecx, r15d
pxor xmm0, xmm0
sub r15d, 1
add r14, 4
shr ecx, 1
cvtsi2sd xmm0, ecx
mulsd xmm0, xmm0
addsd xmm0, xmm6
xorpd xmm0, xmm8
mulsd xmm0, xmm7
call fcn.005b0a50
pxor xmm2, xmm2
cvtsd2ss xmm2, xmm0
movss dword [r14 - 4], xmm2
cmp r15d, 0xfffffffc
jne 0x4528b0
sub ebx, 1
add r13, 0x1c
cmp ebx, 0xfffffffc
jne 0x452890
mov rax, qword [rsp + 0x1f0]
mov rcx, qword [rax + 0x38]
mov edx, dword [rcx + 0x60]
mov r9d, dword [rcx + 0x64]
mov dword [rsp + 0x50], edx
imul edx, r9d
mov dword [rsp + 0x5c], r9d
test edx, edx
mov r12d, edx
je 0x453320
lea rcx, [r12*4]
call fcn.005ab718
mov r8, qword [rsp + 0x1f0]
mov r10, r12
xor r11d, r11d
mov rsi, rax
and r10d, 7
mov rcx, qword [r8 + 0x38]
je 0x4529c3
cmp r10, 1
je 0x4529b2
cmp r10, 2
je 0x4529a6
cmp r10, 3
je 0x45299a
cmp r10, 4
je 0x45298e
cmp r10, 5
je 0x452982
cmp r10, 6
jne 0x4532c4
mov dword [rsi + r11*4], 0
add r11, 1
mov dword [rsi + r11*4], 0
add r11, 1
mov dword [rsi + r11*4], 0
add r11, 1
mov dword [rsi + r11*4], 0
add r11, 1
mov dword [rsi + r11*4], 0
add r11, 1
mov dword [rsi + r11*4], 0
add r11, 1
cmp r12, r11
je 0x452a13
mov dword [rsi + r11*4], 0
mov dword [rsi + r11*4 + 4], 0
mov dword [rsi + r11*4 + 8], 0
mov dword [rsi + r11*4 + 0xc], 0
mov dword [rsi + r11*4 + 0x10], 0
mov dword [rsi + r11*4 + 0x14], 0
mov dword [rsi + r11*4 + 0x18], 0
mov dword [rsi + r11*4 + 0x1c], 0
add r11, 8
cmp r12, r11
jne 0x4529c3
mov r13, qword [rcx + 0x1e8]
mov r10, qword [r13 + 8]
mov rdx, qword [r13]
mov rbx, r10
sub rbx, rdx
sar rbx, 3
test rbx, rbx
mov qword [rsp + 0x78], rbx
je 0x453110
movss xmm13, dword [0x006dcb10]
mov dword [rsp + 0x74], 0
movss xmm12, dword [0x006dcb00]
movsxd rdi, dword [rsp + 0x74]
sub r10, rdx
sar r10, 3
cmp rdi, r10
jae 0x453090
mov r15, qword [rdx + rdi*8]
test r15, r15
je 0x453090
movabs rdx, 0x8e38e38e38e38e39
mov r14, qword [r15]
mov rax, qword [r15 + 8]
sub rax, r14
sar rax, 3
imul rax, rdx
cmp byte [rcx + 0x1c1], 0
mov qword [rsp + 0x40], rax
jne 0x4530c2
cmp qword [rsp + 0x40], 0
je 0x453090
pxor xmm3, xmm3
movss dword [rsp + 0x58], xmm3
movss dword [rsp + 0x54], xmm3
movss xmm11, dword [0x006dcaf8]
mov dword [rsp + 0x34], 0
xor edi, edi
movss xmm9, dword [0x006dcb18]
nop dword [rax]
lea r9, [rdi + rdi*8]
movss xmm5, dword [rsp + 0x68]
lea r8, [r9*8]
lea r12, [r14 + r8]
mov qword [rsp + 0x38], r8
movss xmm8, dword [r12 + 4]
subss xmm8, dword [rsp + 0x58]
movss xmm6, dword [r12]
subss xmm6, dword [rsp + 0x54]
mulss xmm8, xmm5
mulss xmm6, xmm5
movaps xmm0, xmm8
subss xmm0, xmm11
call fcn.005abc80
cvttss2si rbx, xmm0
movaps xmm0, xmm8
addss xmm0, xmm11
mov dword [rsp + 0x48], ebx
call fcn.005abc80
movaps xmm10, xmm0
movaps xmm0, xmm6
subss xmm0, xmm11
call fcn.005abc80
cvttss2si r13, xmm0
movaps xmm0, xmm6
addss xmm0, xmm11
call fcn.005abc80
mov r10d, dword [rsp + 0x5c]
mov r14d, r13d
cmp r10d, ebx
jb 0x452d54
mov r11d, dword [rsp + 0x50]
cmp r11d, r13d
jb 0x452d54
cvttss2si rax, xmm10
cvttss2si rcx, xmm0
cmp r10d, eax
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x6c], ecx
jb 0x452d54
cmp r11d, ecx
jb 0x452d54
mov r9, qword [rsp + 0x1f0]
mov rcx, qword [r9 + 0x38]
mov r8d, dword [rcx + 0xe8]
lea r10d, [r8 - 2]
cmp r10d, 1
jbe 0x452da0
mov rdi, qword [rsp + 0x60]
cmp ebx, edi
jae 0x452d54
mov r12d, dword [rsp + 0x50]
xor r8d, r8d
lea r11d, [r12 - 7]
imul r12d, ebx
lea edx, [r12 + r13]
mov r13d, edi
sub r13d, ebx
mov ebx, dword [rsp + 0x6c]
lea edi, [r13*8]
sub edi, r13d
mov r10d, ebx
sub r10d, r14d
nop dword [rax]
cmp r14d, ebx
jae 0x452d44
lea r9d, [r10 + r8]
mov ecx, r10d
mov eax, r8d
and ecx, 3
je 0x452cb0
cmp ecx, 1
je 0x452c82
cmp ecx, 2
je 0x452c5d
lea eax, [r8 + rdx]
mov r13d, r8d
movss xmm4, dword [rbp + r13*4]
lea r12, [rsi + rax*4]
lea eax, [r8 + 1]
mulss xmm4, xmm9
addss xmm4, dword [r12]
movss dword [r12], xmm4
lea ecx, [rax + rdx]
mov r12d, eax
add eax, 1
movss xmm14, dword [rbp + r12*4]
lea r13, [rsi + rcx*4]
mulss xmm14, xmm9
addss xmm14, dword [r13]
movss dword [r13], xmm14
lea ecx, [rax + rdx]
mov r12d, eax
add eax, 1
movss xmm15, dword [rbp + r12*4]
lea r13, [rsi + rcx*4]
cmp eax, r9d
mulss xmm15, xmm9
addss xmm15, dword [r13]
movss dword [r13], xmm15
je 0x452d44
lea ecx, [rax + rdx]
mov r12d, eax
movss xmm1, dword [rbp + r12*4]
lea r13, [rsi + rcx*4]
lea ecx, [rax + 1]
mulss xmm1, xmm9
addss xmm1, dword [r13]
movss xmm0, dword [rbp + rcx*4]
movss dword [r13], xmm1
lea r13d, [rcx + rdx]
lea r12, [rsi + r13*4]
mulss xmm0, xmm9
addss xmm0, dword [r12]
lea ecx, [rax + 2]
lea r13d, [rcx + rdx]
movss xmm7, dword [rbp + rcx*4]
movss dword [r12], xmm0
lea r12, [rsi + r13*4]
mulss xmm7, xmm9
addss xmm7, dword [r12]
lea ecx, [rax + 3]
add eax, 4
lea r13d, [rcx + rdx]
movss xmm2, dword [rbp + rcx*4]
cmp eax, r9d
movss dword [r12], xmm7
lea r12, [rsi + r13*4]
mulss xmm2, xmm9
addss xmm2, dword [r12]
movss dword [r12], xmm2
jne 0x452cb0
add r8d, 7
add edx, r11d
cmp edi, r8d
jne 0x452c10
add dword [rsp + 0x34], 1
mov edi, dword [rsp + 0x34]
cmp rdi, qword [rsp + 0x40]
jae 0x453090
movabs rbx, 0x8e38e38e38e38e39
mov r14, qword [r15]
mov r8, qword [r15 + 8]
sub r8, r14
sar r8, 3
imul r8, rbx
cmp rdi, r8
jb 0x452ae0
lea rcx, [0x006db6e0]
mov rdx, rdi
call fcn.005ab768
nop dword [rax]
pxor xmm15, xmm15
movss xmm10, dword [r12 + 0x10]
cvtsi2ss xmm15, dword [rcx + 0x278]
movss xmm1, dword [r12 + 0x20]
mulss xmm10, xmm15
mulss xmm15, dword [r12 + 0x14]
call fcn.00426320
mov r10, qword [r15]
movaps xmm14, xmm0
movabs rdx, 0x8e38e38e38e38e39
mov r8, qword [r15 + 8]
mov r11, qword [rsp + 0x1f0]
sub r8, r10
sar r8, 3
mov rcx, qword [r11 + 0x38]
imul r8, rdx
cmp r8, rdi
jbe 0x45332c
mov rdi, qword [rsp + 0x38]
movss xmm1, dword [r10 + rdi + 0x30]
call fcn.00426320
mov r8, qword [rsp + 0x1f0]
movaps xmm3, xmm0
movaps xmm2, xmm15
movaps xmm1, xmm10
mov rcx, qword [r8 + 0x38]
mov r9d, dword [rcx + 0xe8]
movss dword [rsp + 0x20], xmm14
mov dword [rsp + 0x28], r9d
call fcn.00426360
mov rax, qword [rsp + 0x1f0]
pxor xmm3, xmm3
movaps xmm7, xmm0
cmp ebx, dword [rsp + 0x60]
mov rcx, qword [rax + 0x38]
cvtsi2ss xmm3, dword [rcx + 0x78]
divss xmm7, xmm3
mulss xmm7, dword [0x006dcafc]
jae 0x452d54
mov r13d, dword [rsp + 0x70]
mov qword [rsp + 0x60], rbp
mov edi, dword [rsp + 0x6c]
imul ebx, dword [rsp + 0x50]
movss xmm15, dword [0x006dcb14]
mov r12d, dword [rsp + 0x48]
mov qword [rsp + 0x48], r15
nop word cs:[rax + rax]
cmp r14d, edi
jae 0x45305c
mov ebp, r12d
pxor xmm14, xmm14
mov r15d, r14d
cvtsi2ss xmm14, rbp
subss xmm14, xmm8
andps xmm14, xmm12
movaps xmm0, xmm14
divss xmm0, xmm7
call fcn.005abda0
movaps xmm10, xmm0
movaps xmm0, xmm14
addss xmm0, xmm13
divss xmm0, xmm7
call fcn.005abda0
mov eax, edi
sub eax, r14d
subss xmm10, xmm0
test al, 1
je 0x452f70
mov r15d, r14d
pxor xmm14, xmm14
cvtsi2ss xmm14, r15
lea r15d, [r14 + 1]
subss xmm14, xmm6
andps xmm14, xmm12
movaps xmm0, xmm14
divss xmm0, xmm7
call fcn.005abda0
movss dword [rsp + 0x38], xmm0
movaps xmm0, xmm14
addss xmm0, xmm13
divss xmm0, xmm7
call fcn.005abda0
movss xmm4, dword [rsp + 0x38]
lea r11d, [rbx + r14]
cmp edi, r15d
lea r10, [rsi + r11*4]
subss xmm4, xmm0
movaps xmm1, xmm4
mulss xmm1, xmm15
mulss xmm1, xmm10
addss xmm1, xmm1
mulss xmm1, dword [0x006dcb18]
addss xmm1, dword [r10]
movss dword [r10], xmm1
je 0x45305c
mov edx, r15d
pxor xmm14, xmm14
cvtsi2ss xmm14, rdx
subss xmm14, xmm6
andps xmm14, xmm12
movaps xmm0, xmm14
divss xmm0, xmm7
call fcn.005abda0
movd ebp, xmm0
movaps xmm0, xmm14
pxor xmm14, xmm14
addss xmm0, xmm13
divss xmm0, xmm7
call fcn.005abda0
lea ecx, [r15 + 1]
movd xmm2, ebp
subss xmm2, xmm0
lea r8d, [rbx + r15]
mov rbp, rcx
cvtsi2ss xmm14, rcx
lea r9, [rsi + r8*4]
add r15d, 2
movaps xmm0, xmm2
mulss xmm0, xmm15
subss xmm14, xmm6
mulss xmm0, xmm10
andps xmm14, xmm12
addss xmm0, xmm0
mulss xmm0, dword [0x006dcb18]
addss xmm0, dword [r9]
movss dword [r9], xmm0
movaps xmm0, xmm14
divss xmm0, xmm7
call fcn.005abda0
movss dword [rsp + 0x38], xmm0
movaps xmm0, xmm14
addss xmm0, xmm13
divss xmm0, xmm7
call fcn.005abda0
movss xmm5, dword [rsp + 0x38]
lea eax, [rbx + rbp]
cmp edi, r15d
lea r11, [rsi + rax*4]
subss xmm5, xmm0
movaps xmm4, xmm5
mulss xmm4, xmm15
mulss xmm4, xmm10
addss xmm4, xmm4
mulss xmm4, dword [0x006dcb18]
addss xmm4, dword [r11]
movss dword [r11], xmm4
jne 0x452f70
add r12d, 1
add ebx, dword [rsp + 0x50]
cmp r13d, r12d
jne 0x452ea0
add dword [rsp + 0x34], 1
mov edi, dword [rsp + 0x34]
cmp rdi, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x60]
jb 0x452d68
nop dword [rax + rax]
add dword [rsp + 0x74], 1
mov r14d, dword [rsp + 0x74]
cmp r14, qword [rsp + 0x78]
jae 0x453110
mov r13, qword [rsp + 0x1f0]
mov rcx, qword [r13 + 0x38]
mov r12, qword [rcx + 0x1e8]
mov r10, qword [r12 + 8]
mov rdx, qword [r12]
jmp 0x452a54
mov r12d, dword [rsp + 0x74]
mov edx, r12d
call fcn.00426240
mov rcx, qword [rsp + 0x1f0]
mov edx, r12d
mov dword [rsp + 0x54], eax
mov rcx, qword [rcx + 0x38]
call fcn.00426240
shr rax, 0x20
cmp qword [rsp + 0x40], 0
mov dword [rsp + 0x58], eax
je 0x453090
mov r14, qword [r15]
cmp qword [r15 + 8], r14
jne 0x452ac0
xor r8d, r8d
xor edi, edi
jmp 0x452d8d
mov r9d, dword [rsp + 0x5c]
mov edx, 0x20
mov r8d, dword [rsp + 0x50]
mov rcx, qword [rsp + 0xa0]
call fcn.00565940
mov rdx, rsi
mov rcx, rax
mov r15, rax
call fcn.00566060
mov rcx, r15
call fcn.00565e80
test rsi, rsi
je 0x45314f
mov rcx, rsi
call fcn.005ab730
mov rcx, rbp
call fcn.005ab730
mov rsi, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xa0]
add rsi, 0x10
cmp rcx, rsi
je 0x453175
call fcn.005ab730
mov rcx, qword [rsp + 0x90]
mov r8d, dword [rcx]
test r8d, r8d
je 0x453291
cmp r8d, 0xffffffff
je 0x4531a1
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x90]
je 0x453291
movaps xmm6, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmm8, xmmword [rsp + 0x120]
movaps xmm9, xmmword [rsp + 0x130]
movaps xmm10, xmmword [rsp + 0x140]
movaps xmm11, xmmword [rsp + 0x150]
movaps xmm12, xmmword [rsp + 0x160]
movaps xmm13, xmmword [rsp + 0x170]
movaps xmm14, xmmword [rsp + 0x180]
movaps xmm15, xmmword [rsp + 0x190]
add rsp, 0x1a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, 8
mov edx, 1
call qword [0x0075cc74]
jmp 0x4527cf
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x4526fc
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x4526d0
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x4526a7
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x45267e
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x4525d4
mov r8d, 8
mov edx, 2
call qword [0x0075cc74]
jmp 0x4531a1
lock add dword [r10], 1
jmp 0x45262c
lock add dword [r8], 1
jmp 0x4525f5
lock add dword [rax], 1
jmp 0x452571
mov dword [rax], 0
mov r11d, 1
jmp 0x452976
xor esi, esi
jmp 0x452a13
lea rcx, [0x006db6e0]
mov rdx, rdi
call fcn.005ab768
lea rsi, [rsp + 0x98]
mov r15, rax
mov rcx, rsi
call fcn.006599d0
mov rcx, qword [rsp + 0x80]
call fcn.006599d0
mov rcx, r15
call fcn.005ab970
mov rcx, rdi
mov r15, rax
call fcn.006599d0
jmp 0x453346