Function at 0x140006670
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x12b0]
mov eax, 0x13b0
call fcn.1400ede50
sub rsp, rax
mov eax, dword [reloc.WS2_32.dll_bind]
cmp eax, 4
jne 0x140006907
lea rcx, [rbp + 0x12d0]
call fcn.140005490
mov ebx, 1
mov dword [rbp + 0x12a4], 0xffffffff
mov ecx, ebx
mov edx, dword [rax]
mov dword [rsp + 0x24], edx
nop dword [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x24], edx
inc rcx
cmp rcx, 0x270
jb 0x1400066d0
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x270
call fcn.14002efb0
mov ecx, eax
mov edi, 0x80000000
shl rcx, 3
shr rcx, 0x20
add ecx, 0x80000003
cmp ecx, edi
lea eax, [rcx - 0x80000000]
lea esi, [rcx + rdi]
lea rcx, [rbp + 0x12d0]
cmovae esi, eax
call fcn.140005490
mov dword [rbp + 0x12a4], 0xffffffff
mov rcx, rbx
mov edx, dword [rax]
mov dword [rsp + 0x24], edx
nop dword [rax]
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x24], edx
inc rcx
cmp rcx, 0x270
jb 0x140006750
cmp esi, edi
mov dword [rsp + 0x20], 0x270
lea eax, [rsi - 0x80000000]
lea r15d, [rsi + rdi]
cmovae r15d, eax
mov eax, 0x80000008
sub eax, r15d
cmp eax, 0xffffffff
jne 0x140006811
lea r8, [rsp + 0x28]
mov r9d, 0x270
nop
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, bl
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, rbx
jne 0x1400067a0
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + rax*4 + 0x24]
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12a4]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov r8d, ecx
shr r8d, 0x12
xor r8d, ecx
jmp 0x14000685a
lea rcx, [rsp + 0x20]
lea esi, [rax + 1]
call fcn.14002efb0
mov r8d, eax
mov r14d, esi
imul r8, r14
cmp r8d, esi
jae 0x140006856
mov eax, esi
xor edx, edx
neg eax
div esi
mov esi, edx
cmp r8d, edx
jae 0x140006856
nop dword [rax]
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov r8d, eax
imul r8, r14
cmp r8d, esi
jb 0x140006840
shr r8, 0x20
lea ecx, [r15 + r8]
cmp ecx, edi
lea eax, [rcx + rdi]
lea esi, [rcx - 0x80000000]
lea rcx, [rbp + 0x12d0]
cmovae esi, eax
call fcn.140005490
mov dword [rbp + 0x12a4], 0xffffffff
mov ecx, dword [rax]
mov dword [rsp + 0x24], ecx
nop dword [rax + rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, ebx
mov dword [rsp + rbx*4 + 0x24], ecx
inc rbx
cmp rbx, 0x270
jb 0x140006890
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x270
call fcn.14002efb0
mov ecx, eax
imul rbx, rcx, 0x15f
cmp ebx, 0x15
ja 0x1400068e8
nop
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov ecx, eax
imul rbx, rcx, 0x15f
cmp ebx, 0x16
jb 0x1400068d0
shr rbx, 0x20
call fcn.140002970
mov ecx, dword [rax + 0x8f0]
lea eax, [rbx + 0xc8]
cdq
sub ecx, esi
idiv ecx
jmp 0x1400072be
cmp eax, 3
jne 0x140006b77
lea rcx, [rbp + 0x12d0]
call fcn.140005490
mov ebx, 1
mov dword [rbp + 0x12a4], 0xffffffff
mov ecx, ebx
mov edx, dword [rax]
mov dword [rsp + 0x24], edx
nop dword [rax]
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x24], edx
inc rcx
cmp rcx, 0x270
jb 0x140006940
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x270
call fcn.14002efb0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 3
ja 0x140006998
nop
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x140006980
shr rdi, 0x20
lea rcx, [rbp + 0x12d0]
call fcn.140005490
mov dword [rbp + 0x12a4], 0xffffffff
mov rcx, rbx
mov edx, dword [rax]
mov dword [rsp + 0x24], edx
nop dword [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x24], edx
inc rcx
cmp rcx, 0x270
jb 0x1400069c0
lea r14d, [rdi - 0x7fffffff]
mov dword [rsp + 0x20], 0x270
mov eax, 0x80000008
sub eax, r14d
cmp eax, 0xffffffff
jne 0x140006a81
lea r8, [rsp + 0x28]
mov r9d, 0x270
nop word [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, bl
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [r8 + 0x62c]
mov dword [r8 + 0x9b8], ecx
sub r9, rbx
jne 0x140006a10
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + rax*4 + 0x24]
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12a4]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov r8d, ecx
shr r8d, 0x12
xor r8d, ecx
jmp 0x140006aca
lea rcx, [rsp + 0x20]
lea edi, [rax + 1]
call fcn.14002efb0
mov r8d, eax
mov esi, edi
imul r8, rsi
cmp r8d, edi
jae 0x140006ac6
mov eax, edi
xor edx, edx
neg eax
div edi
mov edi, edx
cmp r8d, edx
jae 0x140006ac6
nop dword [rax + rax]
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov r8d, eax
imul r8, rsi
cmp r8d, edi
jb 0x140006ab0
shr r8, 0x20
lea ecx, [r8 + r14]
mov edi, 0x80000000
cmp ecx, edi
lea esi, [rcx - 0x80000000]
lea eax, [rcx + rdi]
lea rcx, [rbp + 0x12d0]
cmovae esi, eax
call fcn.140005490
mov dword [rbp + 0x12a4], 0xffffffff
mov ecx, dword [rax]
mov dword [rsp + 0x24], ecx
nop dword [rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, ebx
mov dword [rsp + rbx*4 + 0x24], ecx
inc rbx
cmp rbx, 0x270
jb 0x140006b00
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x270
call fcn.14002efb0
mov ecx, eax
imul rbx, rcx, 0xfb
cmp ebx, 0x7a
ja 0x140006b58
nop
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov ecx, eax
imul rbx, rcx, 0xfb
cmp ebx, 0x7b
jb 0x140006b40
shr rbx, 0x20
call fcn.140002970
mov ecx, dword [rax + 0x8f0]
lea eax, [rbx + 0xfa]
cdq
sub ecx, esi
idiv ecx
jmp 0x1400072be
cmp eax, 2
jne 0x140006de7
lea rcx, [rbp + 0x12d0]
call fcn.140005490
mov ebx, 1
mov dword [rbp + 0x12a4], 0xffffffff
mov ecx, ebx
mov edx, dword [rax]
mov dword [rsp + 0x24], edx
nop dword [rax]
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x24], edx
inc rcx
cmp rcx, 0x270
jb 0x140006bb0
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x270
call fcn.14002efb0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 3
ja 0x140006c08
nop
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x140006bf0
shr rdi, 0x20
lea rcx, [rbp + 0x12d0]
call fcn.140005490
mov dword [rbp + 0x12a4], 0xffffffff
mov rcx, rbx
mov edx, dword [rax]
mov dword [rsp + 0x24], edx
nop dword [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x24], edx
inc rcx
cmp rcx, 0x270
jb 0x140006c30
lea r14d, [rdi - 0x7fffffff]
mov dword [rsp + 0x20], 0x270
mov eax, 0x80000005
sub eax, r14d
cmp eax, 0xffffffff
jne 0x140006cf1
lea r8, [rsp + 0x28]
mov r9d, 0x270
nop word [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, bl
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [r8 + 0x62c]
mov dword [r8 + 0x9b8], ecx
sub r9, rbx
jne 0x140006c80
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + rax*4 + 0x24]
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12a4]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov r8d, ecx
shr r8d, 0x12
xor r8d, ecx
jmp 0x140006d3a
lea rcx, [rsp + 0x20]
lea edi, [rax + 1]
call fcn.14002efb0
mov r8d, eax
mov esi, edi
imul r8, rsi
cmp r8d, edi
jae 0x140006d36
mov eax, edi
xor edx, edx
neg eax
div edi
mov edi, edx
cmp r8d, edx
jae 0x140006d36
nop dword [rax + rax]
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov r8d, eax
imul r8, rsi
cmp r8d, edi
jb 0x140006d20
shr r8, 0x20
lea ecx, [r8 + r14]
mov edi, 0x80000000
cmp ecx, edi
lea esi, [rcx - 0x80000000]
lea eax, [rcx + rdi]
lea rcx, [rbp + 0x12d0]
cmovae esi, eax
call fcn.140005490
mov dword [rbp + 0x12a4], 0xffffffff
mov ecx, dword [rax]
mov dword [rsp + 0x24], ecx
nop dword [rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, ebx
mov dword [rsp + rbx*4 + 0x24], ecx
inc rbx
cmp rbx, 0x270
jb 0x140006d70
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x270
call fcn.14002efb0
mov ecx, eax
imul rbx, rcx, 0xfb
cmp ebx, 0x7a
ja 0x140006dc8
nop
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov ecx, eax
imul rbx, rcx, 0xfb
cmp ebx, 0x7b
jb 0x140006db0
shr rbx, 0x20
call fcn.140002970
mov ecx, dword [rax + 0x8f0]
lea eax, [rbx + 0x15e]
cdq
sub ecx, esi
idiv ecx
jmp 0x1400072be
cmp eax, 1
jne 0x140007054
lea rcx, [rbp + 0x12d0]
call fcn.140005490
mov ebx, 1
mov dword [rbp + 0x12a4], 0xffffffff
mov ecx, ebx
mov edx, dword [rax]
mov dword [rsp + 0x24], edx
nop dword [rax]
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x24], edx
inc rcx
cmp rcx, 0x270
jb 0x140006e20
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x270
call fcn.14002efb0
mov ecx, eax
mov edi, 0x80000000
shl rcx, 2
shr rcx, 0x20
add ecx, 0x80000002
cmp ecx, edi
lea eax, [rcx - 0x80000000]
lea esi, [rcx + rdi]
lea rcx, [rbp + 0x12d0]
cmovae esi, eax
call fcn.140005490
mov dword [rbp + 0x12a4], 0xffffffff
mov rcx, rbx
mov edx, dword [rax]
mov dword [rsp + 0x24], edx
nop dword [rax]
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x24], edx
inc rcx
cmp rcx, 0x270
jb 0x140006ea0
cmp esi, edi
mov dword [rsp + 0x20], 0x270
lea eax, [rsi - 0x80000000]
lea r15d, [rsi + rdi]
cmovae r15d, eax
mov eax, 0x80000005
sub eax, r15d
cmp eax, 0xffffffff
jne 0x140006f61
lea r8, [rsp + 0x28]
mov r9d, 0x270
nop
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, bl
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, rbx
jne 0x140006ef0
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + rax*4 + 0x24]
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12a4]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov r8d, ecx
shr r8d, 0x12
xor r8d, ecx
jmp 0x140006faa
lea rcx, [rsp + 0x20]
lea esi, [rax + 1]
call fcn.14002efb0
mov r8d, eax
mov r14d, esi
imul r8, r14
cmp r8d, esi
jae 0x140006fa6
mov eax, esi
xor edx, edx
neg eax
div esi
mov esi, edx
cmp r8d, edx
jae 0x140006fa6
nop dword [rax]
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov r8d, eax
imul r8, r14
cmp r8d, esi
jb 0x140006f90
shr r8, 0x20
lea ecx, [r15 + r8]
cmp ecx, edi
lea eax, [rcx + rdi]
lea esi, [rcx - 0x80000000]
lea rcx, [rbp + 0x12d0]
cmovae esi, eax
call fcn.140005490
mov dword [rbp + 0x12a4], 0xffffffff
mov ecx, dword [rax]
mov dword [rsp + 0x24], ecx
nop dword [rax + rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, ebx
mov dword [rsp + rbx*4 + 0x24], ecx
inc rbx
cmp rbx, 0x270
jb 0x140006fe0
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x270
call fcn.14002efb0
mov ecx, eax
imul rbx, rcx, 0x65
cmp ebx, 0x43
ja 0x140007035
nop dword [rax]
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov ecx, eax
imul rbx, rcx, 0x65
cmp ebx, 0x44
jb 0x140007020
shr rbx, 0x20
call fcn.140002970
mov ecx, dword [rax + 0x8f0]
lea eax, [rbx + 0x190]
cdq
sub ecx, esi
idiv ecx
jmp 0x1400072be
test eax, eax
jne 0x1400072b4
lea rcx, [rbp + 0x12d0]
call fcn.140005490
mov ebx, 1
mov dword [rbp + 0x12a4], 0xffffffff
mov ecx, ebx
mov edx, dword [rax]
mov dword [rsp + 0x24], edx
nop
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x24], edx
inc rcx
cmp rcx, 0x270
jb 0x140007080
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x270
call fcn.14002efb0
mov ecx, eax
lea rdi, [rcx + rcx*2]
test edi, edi
jne 0x1400070d4
nop dword [rax + rax]
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov ecx, eax
lea rdi, [rcx + rcx*2]
cmp edi, ebx
jb 0x1400070c0
shr rdi, 0x20
lea rcx, [rbp + 0x12d0]
call fcn.140005490
mov dword [rbp + 0x12a4], 0xffffffff
mov rcx, rbx
mov edx, dword [rax]
mov dword [rsp + 0x24], edx
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0x24], edx
inc rcx
cmp rcx, 0x270
jb 0x140007100
lea r14d, [rdi - 0x7fffffff]
mov dword [rsp + 0x20], 0x270
mov eax, 0x80000003
sub eax, r14d
cmp eax, 0xffffffff
jne 0x1400071c1
lea r8, [rsp + 0x28]
mov r9d, 0x270
nop word [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, bl
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [r8 + 0x62c]
mov dword [r8 + 0x9b8], ecx
sub r9, rbx
jne 0x140007150
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + rax*4 + 0x24]
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12a4]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov r8d, ecx
shr r8d, 0x12
xor r8d, ecx
jmp 0x14000720a
lea rcx, [rsp + 0x20]
lea edi, [rax + 1]
call fcn.14002efb0
mov r8d, eax
mov esi, edi
imul r8, rsi
cmp r8d, edi
jae 0x140007206
mov eax, edi
xor edx, edx
neg eax
div edi
mov edi, edx
cmp r8d, edx
jae 0x140007206
nop dword [rax + rax]
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov r8d, eax
imul r8, rsi
cmp r8d, edi
jb 0x1400071f0
shr r8, 0x20
lea ecx, [r14 + r8]
mov edi, 0x80000000
cmp ecx, edi
lea esi, [rcx - 0x80000000]
lea eax, [rcx + rdi]
lea rcx, [rbp + 0x12d0]
cmovae esi, eax
call fcn.140005490
mov dword [rbp + 0x12a4], 0xffffffff
mov ecx, dword [rax]
mov dword [rsp + 0x24], ecx
nop dword [rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, ebx
mov dword [rsp + rbx*4 + 0x24], ecx
inc rbx
cmp rbx, 0x270
jb 0x140007240
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x270
call fcn.14002efb0
mov ecx, eax
imul rbx, rcx, 0x97
cmp ebx, 3
ja 0x140007298
nop
lea rcx, [rsp + 0x20]
call fcn.14002efb0
mov ecx, eax
imul rbx, rcx, 0x97
cmp ebx, 4
jb 0x140007280
shr rbx, 0x20
call fcn.140002970
mov ecx, dword [rax + 0x8f0]
lea eax, [rbx + 0x1c2]
cdq
sub ecx, esi
idiv ecx
jmp 0x1400072be
cmp eax, 5
jne 0x1400072be
mov eax, 1
lea r11, [rsp + 0x13b0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret