Function at 0x439b20
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov qword [rsp + 0xb8], rdx
mov r13, r8
mov dword [rsp + 0xc8], r9d
and ecx, 0x40000004
mov dword [rsp + 0x30], ecx
jne 0x439b56
shl dword [rsp + 0xc8], 1
cmp dword [rsp + 0xc8], 0x117
jle 0x43ac95
cmp dword [rsp + 0xc8], 0x22f
jg 0x43a61f
mov dword [rsp + 0x50], 0x500
mov byte [rsp + 0x5b], 0
mov dword [rsp + 0x54], 0xff
mov dword [rsp + 0x2c], 0
mov r12d, 0x200
mov r15d, 0x100
mov ecx, 0x400
mov dword [rsp + 0x44], 1
mov edx, 1
call sub.msvcrt.dll_calloc
mov r14, rax
mov rcx, r15
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x20], rax
mov rcx, r12
call sub.msvcrt.dll_malloc
mov qword [rsp + 0x48], rax
mov edx, dword [rsp + 0xc8]
lea ecx, [rdx - 1]
mov ebx, dword [rsp + 0x30]
test ebx, ebx
mov dword [rsp + 0x5c], ecx
mov r15, r13
je 0x43aa43
xor eax, eax
mov dword [rsp + 0x40], 0xffffffff
lea r11, [r13 + rcx*4 + 4]
add rcx, 1
and ecx, 3
je 0x43ac42
cmp rcx, 1
je 0x439c4c
cmp rcx, 2
jne 0x43abab
mov r12d, dword [r15]
movzx esi, r12b
mov edi, dword [rsp + 0x40]
lea edx, [rsi + rdi*2]
add edi, edx
mov dword [rsp + 0x40], edi
cdqe
shl rax, 0xa
lea rax, [rax + rsi*4]
add dword [r14 + rax], 1
add r15, 4
mov eax, dword [rsp + 0x2c]
and eax, r12d
mov ebx, dword [r15]
movzx r10d, bl
mov ecx, dword [rsp + 0x40]
lea r8d, [r10 + rcx*2]
add ecx, r8d
mov dword [rsp + 0x40], ecx
cdqe
shl rax, 0xa
lea rbp, [rax + r10*4]
add dword [r14 + rbp], 1
add r15, 4
mov eax, dword [rsp + 0x2c]
and eax, ebx
cmp r15, r11
je 0x439d1e
mov ebx, ecx
mov r9d, dword [rsp + 0x2c]
mov r12d, dword [r15]
movzx esi, r12b
lea edi, [rsi + rbx*2]
add ebx, edi
cdqe
shl rax, 0xa
lea rdx, [rax + rsi*4]
add dword [r14 + rdx], 1
and r12d, r9d
movsxd r8, r12d
mov ecx, dword [r15 + 4]
movzx r10d, cl
lea ebp, [r10 + rbx*2]
add ebp, ebx
shl r8, 0xa
lea rbx, [r8 + r10*4]
add dword [r14 + rbx], 1
and ecx, r9d
movsxd rax, ecx
mov r12d, dword [r15 + 8]
movzx esi, r12b
lea edi, [rsi + rbp*2]
add ebp, edi
shl rax, 0xa
lea rdx, [rax + rsi*4]
add dword [r14 + rdx], 1
and r12d, r9d
mov r8d, dword [r15 + 0xc]
movzx ecx, r8b
lea ebx, [rcx + rbp*2]
add ebx, ebp
movsxd r10, r12d
shl r10, 0xa
lea rbp, [r10 + rcx*4]
add dword [r14 + rbp], 1
add r15, 0x10
mov eax, r8d
and eax, r9d
cmp r15, r11
jne 0x439c8b
mov dword [rsp + 0x40], ebx
mov r8, r14
mov r9, qword [rsp + 0x48]
mov r15d, dword [rsp + 0x44]
sub r15d, 1
add r15, 1
shl r15, 8
mov qword [rsp + 0x38], r15
xor r11d, r11d
mov dword [rsp + 0x34], 0
mov r12d, 1
mov ebp, 1
mov qword [rsp + 0xc0], r13
mov r13, r11
mov rax, qword [rsp + 0x20]
lea r10, [rax + r13]
mov rdi, r8
shr rdi, 2
neg rdi
and edi, 3
je 0x43a924
mov ebx, dword [r8]
test ebx, ebx
mov edx, 0
cmovns edx, dword [r8]
cmp edi, 1
je 0x43a915
mov r15d, dword [r8 + 4]
cmp edx, r15d
cmovl edx, r15d
cmp edi, 3
jne 0x43a996
mov r11d, dword [r8 + 8]
cmp edx, r11d
cmovl edx, r11d
mov esi, 0xfd
mov ecx, 3
mov ebx, 0x100
sub ebx, edi
movd xmm4, edx
pshufd xmm0, xmm4, 0
mov eax, edi
add rax, r13
lea rdi, [r14 + rax*4]
mov edx, ebx
shr edx, 2
shl rdx, 4
lea r15, [rdx + rdi]
sub rdx, 0x10
shr rdx, 4
add rdx, 1
and edx, 7
je 0x439ef1
cmp rdx, 1
je 0x439ecc
cmp rdx, 2
je 0x439eb0
cmp rdx, 3
je 0x439e94
cmp rdx, 4
je 0x439e78
cmp rdx, 5
je 0x439e5c
cmp rdx, 6
je 0x439e40
movdqa xmm2, xmmword [rdi]
movdqa xmm1, xmm0
pcmpgtd xmm1, xmm2
pand xmm0, xmm1
pandn xmm1, xmm2
por xmm0, xmm1
add rdi, 0x10
movdqa xmm3, xmmword [rdi]
movdqa xmm5, xmm0
pcmpgtd xmm5, xmm3
pand xmm0, xmm5
pandn xmm5, xmm3
por xmm0, xmm5
add rdi, 0x10
movdqa xmm4, xmmword [rdi]
movdqa xmm2, xmm0
pcmpgtd xmm2, xmm4
pand xmm0, xmm2
pandn xmm2, xmm4
por xmm0, xmm2
add rdi, 0x10
movdqa xmm3, xmmword [rdi]
movdqa xmm1, xmm0
pcmpgtd xmm1, xmm3
pand xmm0, xmm1
pandn xmm1, xmm3
por xmm0, xmm1
add rdi, 0x10
movdqa xmm5, xmmword [rdi]
movdqa xmm4, xmm0
pcmpgtd xmm4, xmm5
pand xmm0, xmm4
pandn xmm4, xmm5
por xmm0, xmm4
add rdi, 0x10
movdqa xmm2, xmmword [rdi]
movdqa xmm3, xmm0
pcmpgtd xmm3, xmm2
pand xmm0, xmm3
pandn xmm3, xmm2
por xmm0, xmm3
add rdi, 0x10
movdqa xmm5, xmmword [rdi]
movdqa xmm1, xmm0
pcmpgtd xmm1, xmm5
pand xmm0, xmm1
pandn xmm1, xmm5
por xmm0, xmm1
add rdi, 0x10
cmp r15, rdi
je 0x439fe9
movdqa xmm4, xmmword [rdi]
movdqa xmm2, xmm0
pcmpgtd xmm2, xmm4
pand xmm0, xmm2
pandn xmm2, xmm4
por xmm0, xmm2
movdqa xmm3, xmmword [rdi + 0x10]
movdqa xmm1, xmm0
pcmpgtd xmm1, xmm3
pand xmm0, xmm1
pandn xmm1, xmm3
movdqa xmm5, xmm1
por xmm5, xmm0
movdqa xmm4, xmmword [rdi + 0x20]
movdqa xmm1, xmm5
pcmpgtd xmm1, xmm4
movdqa xmm0, xmm5
pand xmm0, xmm1
pandn xmm1, xmm4
movdqa xmm2, xmm1
por xmm2, xmm0
movdqa xmm3, xmmword [rdi + 0x30]
movdqa xmm1, xmm2
pcmpgtd xmm1, xmm3
movdqa xmm5, xmm2
pand xmm5, xmm1
pandn xmm1, xmm3
movdqa xmm2, xmm1
por xmm2, xmm5
movdqa xmm4, xmmword [rdi + 0x40]
movdqa xmm1, xmm2
pcmpgtd xmm1, xmm4
movdqa xmm0, xmm2
pand xmm0, xmm1
pandn xmm1, xmm4
movdqa xmm2, xmm1
por xmm2, xmm0
movdqa xmm3, xmmword [rdi + 0x50]
movdqa xmm1, xmm2
pcmpgtd xmm1, xmm3
movdqa xmm5, xmm2
pand xmm5, xmm1
movdqa xmm4, xmm1
pandn xmm4, xmm3
por xmm4, xmm5
movdqa xmm0, xmmword [rdi + 0x60]
movdqa xmm2, xmm4
pcmpgtd xmm2, xmm0
pand xmm4, xmm2
pandn xmm2, xmm0
por xmm4, xmm2
movdqa xmm3, xmmword [rdi + 0x70]
movdqa xmm0, xmm4
pcmpgtd xmm0, xmm3
pand xmm4, xmm0
pandn xmm0, xmm3
por xmm0, xmm4
sub rdi, 0xffffffffffffff80
cmp r15, rdi
jne 0x439ef1
movdqa xmm5, xmm0
psrldq xmm5, 8
movdqa xmm1, xmm5
pcmpgtd xmm1, xmm0
pand xmm5, xmm1
pandn xmm1, xmm0
por xmm1, xmm5
movdqa xmm2, xmm1
psrldq xmm2, 4
movdqa xmm3, xmm2
pcmpgtd xmm3, xmm1
pand xmm2, xmm3
pandn xmm3, xmm1
por xmm3, xmm2
movd eax, xmm3
mov edi, ebx
and edi, 0xfffffffc
add ecx, edi
mov r11d, edi
not r11d
cmp edi, ebx
je 0x43a070
movsxd rbx, ecx
mov edx, dword [r8 + rbx*4]
cmp eax, edx
cmovl eax, edx
add ecx, 1
add r11d, esi
je 0x43a070
movsxd rsi, ecx
lea r15, [rsi*4]
mov ecx, dword [r8 + r15]
cmp eax, ecx
cmovl eax, ecx
cmp r11d, 1
je 0x43a070
mov edi, dword [r8 + r15 + 4]
cmp eax, edi
cmovl eax, edi
test eax, eax
je 0x43a932
cmp eax, 0xa0
jle 0x43a90c
shl eax, 8
add eax, 0x50
movsxd rbx, eax
lea rdx, [rbx + rbx*2]
mov r11, rdx
shl r11, 4
add rdx, r11
mov rsi, rdx
shl rsi, 8
add rdx, rsi
mov r15, rdx
shl r15, 0x10
add rdx, r15
lea rdi, [rbx + rdx*2]
sar rdi, 0x26
sar eax, 0x1f
sub edi, eax
mov r15d, edi
sar r15d, 1
test edi, edi
jne 0x43a71d
xor r15d, r15d
xor ecx, ecx
xor r11d, r11d
mov ebx, dword [r8 + r11*4]
test ebx, ebx
je 0x43a6e5
cmp ecx, ebx
cmovl ecx, ebx
add r15d, ebx
mov word [r9 + r11*2], r15w
mov byte [r10 + r11], bl
add r11, 1
cmp r11, 0x100
jne 0x43a0d1
cmp ecx, 0xa0
jg 0x43a70c
movzx r10d, word [r9 + 0x1fe]
add dword [rsp + 0x34], r10d
add r8, 0x400
add r9, 0x200
add r13, 0x100
cmp r13, qword [rsp + 0x38]
jne 0x439d5d
mov r13, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xb8]
mov r9, qword [r8]
mov r12d, dword [rsp + 0x40]
mov dword [r9 + 0x1c], r12d
mov r15, qword [rsp + 0x48]
lea rbp, [r15 + 0x1fe]
mov r11d, dword [rsp + 0x34]
cmp dword [rsp + 0x50], r11d
jge 0x43a459
mov rdi, r15
mov rsi, qword [rsp + 0x20]
mov ebx, dword [rsp + 0x34]
mov r11d, dword [rsp + 0x44]
mov r12d, dword [rsp + 0x50]
mov rcx, rbp
xor r8d, r8d
xor edx, edx
xor eax, eax
mov r10d, r11d
and r10d, 7
je 0x43a27a
cmp r10d, 1
je 0x43a258
cmp r10d, 2
je 0x43a23f
cmp r10d, 3
je 0x43a226
cmp r10d, 4
je 0x43a20d
cmp r10d, 5
je 0x43a1f4
cmp r10d, 6
je 0x43a1db
movzx ecx, word [rbp]
cmp ecx, 0
cmovg edx, ecx
mov eax, 1
lea rcx, [rbp + 0x200]
movzx r9d, word [rcx]
cmp r9d, edx
jle 0x43a1ea
mov r8d, eax
mov edx, r9d
add eax, 1
add rcx, 0x200
movzx r15d, word [rcx]
cmp r15d, edx
jle 0x43a203
mov r8d, eax
mov edx, r15d
add eax, 1
add rcx, 0x200
movzx r10d, word [rcx]
cmp r10d, edx
jle 0x43a21c
mov r8d, eax
mov edx, r10d
add eax, 1
add rcx, 0x200
movzx r9d, word [rcx]
cmp r9d, edx
jle 0x43a235
mov r8d, eax
mov edx, r9d
add eax, 1
add rcx, 0x200
movzx r15d, word [rcx]
cmp r15d, edx
jle 0x43a24e
mov r8d, eax
mov edx, r15d
add eax, 1
add rcx, 0x200
movzx r10d, word [rcx]
cmp r10d, edx
jle 0x43a267
mov r8d, eax
mov edx, r10d
add eax, 1
add rcx, 0x200
cmp r11d, eax
je 0x43a33a
movzx r9d, word [rcx]
cmp r9d, edx
jle 0x43a289
mov r8d, eax
mov edx, r9d
add eax, 1
lea r15, [rcx + 0x200]
movzx ecx, word [rcx + 0x200]
cmp ecx, edx
jle 0x43a2a3
mov r8d, eax
mov edx, ecx
lea r10d, [rax + 1]
movzx r9d, word [r15 + 0x200]
cmp r9d, edx
jle 0x43a2ba
mov r8d, r10d
mov edx, r9d
lea r10d, [rax + 2]
movzx ecx, word [r15 + 0x400]
cmp ecx, edx
jle 0x43a2cf
mov r8d, r10d
mov edx, ecx
lea r9d, [rax + 3]
movzx r10d, word [r15 + 0x600]
cmp r10d, edx
jle 0x43a2e6
mov r8d, r9d
mov edx, r10d
lea r9d, [rax + 4]
movzx ecx, word [r15 + 0x800]
cmp ecx, edx
jle 0x43a2fb
mov r8d, r9d
mov edx, ecx
lea r10d, [rax + 5]
movzx r9d, word [r15 + 0xa00]
cmp r9d, edx
jle 0x43a312
mov r8d, r10d
mov edx, r9d
lea r10d, [rax + 6]
movzx ecx, word [r15 + 0xc00]
cmp ecx, edx
jle 0x43a327
mov r8d, r10d
mov edx, ecx
add eax, 7
lea rcx, [r15 + 0xe00]
cmp r11d, eax
jne 0x43a27a
sub ebx, edx
movsxd r10, r8d
mov r9, r10
shl r9, 8
add r9, rsi
shl r10, 9
add r10, rdi
xor r8d, r8d
xor ecx, ecx
movzx r15d, byte [r9 + r8]
add r15d, 1
sar r15d, 1
mov byte [r9 + r8], r15b
lea edx, [rcx + r15]
mov word [r10 + r8*2], dx
lea rcx, [r8 + 1]
movzx eax, byte [r9 + r8 + 1]
add eax, 1
sar eax, 1
mov byte [r9 + r8 + 1], al
lea edx, [rdx + rax]
mov word [r10 + rcx*2], dx
lea rcx, [r8 + 2]
movzx r15d, byte [r9 + r8 + 2]
add r15d, 1
sar r15d, 1
mov byte [r9 + r8 + 2], r15b
lea eax, [rdx + r15]
mov word [r10 + rcx*2], ax
lea rdx, [r8 + 3]
movzx ecx, byte [r9 + r8 + 3]
add ecx, 1
sar ecx, 1
mov byte [r9 + r8 + 3], cl
lea r15d, [rax + rcx]
mov word [r10 + rdx*2], r15w
lea rax, [r8 + 4]
movzx edx, byte [r9 + r8 + 4]
add edx, 1
sar edx, 1
mov byte [r9 + r8 + 4], dl
lea ecx, [r15 + rdx]
mov word [r10 + rax*2], cx
lea r15, [r8 + 5]
movzx edx, byte [r9 + r8 + 5]
add edx, 1
sar edx, 1
mov byte [r9 + r8 + 5], dl
add edx, ecx
mov word [r10 + r15*2], dx
lea rcx, [r8 + 6]
movzx eax, byte [r9 + r8 + 6]
add eax, 1
sar eax, 1
mov byte [r9 + r8 + 6], al
add edx, eax
mov word [r10 + rcx*2], dx
lea r15, [r8 + 7]
movzx ecx, byte [r9 + r8 + 7]
add ecx, 1
sar ecx, 1
mov byte [r9 + r8 + 7], cl
add ecx, edx
mov word [r10 + r15*2], cx
add r8, 8
cmp r8, 0x100
jne 0x43a355
movzx r10d, word [r10 + 0x1fe]
add ebx, r10d
cmp ebx, r12d
jg 0x43a182
mov rcx, r14
call sub.msvcrt.dll_free
mov rsi, qword [rsp + 0xd0]
mov byte [rsi], 1
movzx ebx, byte [rsp + 0x5b]
mov byte [rsi + 1], bl
lea rbx, [rsi + 3]
mov byte [rsi + 2], 0xa0
movsxd rbp, dword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd0]
lea rsi, [rdi + rbp - 0xa]
movsxd r11, dword [rsp + 0x54]
mov r12, qword [rsp + 0x20]
lea r14, [r12 + r11 + 1]
mov rdx, rbx
xor eax, eax
mov r9d, 0x5f
jmp 0x43a4b5
add eax, 1
cmp r12, r14
je 0x43a4ee
movzx r15d, byte [r12]
add r12, 1
test r15b, r15b
je 0x43a4ad
test eax, eax
je 0x43a4e0
cmp eax, 0x5f
mov ecx, r9d
cmovle ecx, eax
add rdx, 1
lea r8d, [rcx - 0x60]
mov byte [rdx - 1], r8b
sub eax, ecx
jne 0x43a4c7
mov byte [rdx], r15b
add rdx, 1
xor eax, eax
cmp r12, r14
jne 0x43a4b5
test eax, eax
je 0x43a510
mov r10d, 0x5f
cmp eax, 0x5f
mov ebp, r10d
cmovle ebp, eax
add rdx, 1
lea edi, [rbp - 0x60]
mov byte [rdx - 1], dil
sub eax, ebp
jne 0x43a4f8
mov byte [rdx], 0
lea rax, [rdx + 1]
sub rax, rbx
cdqe
add rbx, rax
cmp rsi, rbx
jbe 0x43a9df
mov rdi, qword [rsp + 0x48]
movzx r11d, word [rdi + 0x1fe]
mov eax, 0xffffffff
xor edx, edx
div r11d
mov r12d, dword [rsp + 0x5c]
lea r11, [r13 + r12*4 + 4]
mov r9, rdi
xor r10d, r10d
xor r8d, r8d
xor r14d, r14d
mov edx, dword [r13]
mov r15d, edx
and r15d, 0xff
je 0x43a578
lea ecx, [r15 - 1]
movsxd rbp, ecx
movzx r9d, word [r9 + rbp*2]
imul r9d, eax
add r14d, r9d
shl r8, 8
add r8, qword [rsp + 0x20]
movsxd r12, r15d
movzx r8d, byte [r8 + r12]
imul eax, r8d
lea eax, [r14 + rax - 1]
mov r15d, r14d
xor r15d, eax
and r15d, 0xff000000
jne 0x43a5c7
add rbx, 1
mov edx, eax
shr edx, 0x18
mov byte [rbx - 1], dl
shl eax, 8
or al, 0xff
shl r14d, 8
mov ecx, eax
xor ecx, r14d
and ecx, 0xff000000
je 0x43a5a1
mov edx, dword [r13]
add r13, 4
and edx, dword [rsp + 0x2c]
mov ebp, dword [rsp + 0x30]
test ebp, ebp
jne 0x43a5e0
mov r9d, edx
mov edx, r10d
mov r10d, r9d
cmp rsi, rbx
jbe 0x43a9e2
cmp r13, r11
je 0x43a9e2
sub eax, r14d
movsxd r8, edx
mov r12, r8
shl r12, 9
lea r9, [rdi + r12]
movzx r15d, word [rdi + r12 + 0x1fe]
cmp eax, r15d
jb 0x43a9a5
xor edx, edx
div r15d
jmp 0x43a555
cmp dword [rsp + 0xc8], 0x6bc
jle 0x43ab70
cmp dword [rsp + 0xc8], 0x1387
jle 0x43abcd
cmp dword [rsp + 0xc8], 0x36af
jle 0x43ac5a
cmp dword [rsp + 0xc8], 0x6d60
mov edx, 0x5000
mov eax, 0xa000
cmovl eax, edx
mov dword [rsp + 0x50], eax
setge cl
add ecx, 4
mov byte [rsp + 0x5b], cl
cmp dword [rsp + 0xc8], 0x6d60
mov ebx, 0xfff
mov esi, 0x1fff
cmovl esi, ebx
mov dword [rsp + 0x54], esi
mov edi, 0xf
mov ebp, 0x1f
cmovl ebp, edi
mov dword [rsp + 0x2c], ebp
mov r8d, 0x2000
mov ecx, 0x4000
mov r12, rcx
cmovl r12, r8
mov r15d, 0x1000
cmovge r15, r8
mov r9d, 0x8000
cmovge rcx, r9
mov r10d, 0x10
mov r11d, 0x20
cmovl r11d, r10d
mov dword [rsp + 0x44], r11d
jmp 0x439bae
mov word [r9 + r11*2], r15w
mov byte [r10 + r11], 0
add r11, 1
cmp r11, 0x100
jne 0x43a0d1
cmp ecx, 0xa0
jle 0x43a107
add edi, 1
mov r15d, edi
sar r15d, 1
test edi, edi
je 0x43a0c9
xor esi, esi
xor r11d, r11d
xor ecx, ecx
jmp 0x43a8ca
shl eax, 8
add eax, r15d
cdq
idiv edi
test eax, eax
mov ebx, ebp
cmovne ebx, eax
cmove eax, r12d
cmp ecx, eax
cmovl ecx, eax
add r11d, eax
mov word [r9 + rsi*2], r11w
mov byte [r10 + rsi], bl
lea rbx, [rsi + 1]
mov eax, dword [r8 + rbx*4]
test eax, eax
je 0x43a905
shl eax, 8
add eax, r15d
cdq
idiv edi
test eax, eax
mov esi, ebp
cmovne esi, eax
cmove eax, r12d
cmp ecx, eax
cmovl ecx, eax
add r11d, eax
mov word [r9 + rbx*2], r11w
mov byte [r10 + rbx], sil
lea rsi, [rbx + 1]
mov eax, dword [r8 + rsi*4]
test eax, eax
je 0x43a8fc
shl eax, 8
add eax, r15d
cdq
idiv edi
test eax, eax
mov edx, ebp
cmovne edx, eax
cmove eax, r12d
cmp ecx, eax
cmovl ecx, eax
add r11d, eax
mov word [r9 + rsi*2], r11w
mov byte [r10 + rsi], dl
lea rsi, [rbx + 2]
mov eax, dword [r8 + rsi*4]
test eax, eax
je 0x43a8f5
shl eax, 8
add eax, r15d
cdq
idiv edi
test eax, eax
mov edx, ebp
cmovne edx, eax
cmove eax, r12d
cmp ecx, eax
cmovl ecx, eax
add r11d, eax
mov word [r9 + rsi*2], r11w
mov byte [r10 + rsi], dl
lea rsi, [rbx + 3]
mov eax, dword [r8 + rsi*4]
test eax, eax
je 0x43a8ec
shl eax, 8
add eax, r15d
cdq
idiv edi
test eax, eax
mov edx, ebp
cmovne edx, eax
cmove eax, r12d
cmp ecx, eax
cmovl ecx, eax
add r11d, eax
mov word [r9 + rsi*2], r11w
mov byte [r10 + rsi], dl
lea rsi, [rbx + 4]
mov eax, dword [r8 + rsi*4]
test eax, eax
je 0x43a8e5
shl eax, 8
add eax, r15d
cdq
idiv edi
test eax, eax
mov edx, ebp
cmovne edx, eax
cmove eax, r12d
cmp ecx, eax
cmovl ecx, eax
add r11d, eax
mov word [r9 + rsi*2], r11w
mov byte [r10 + rsi], dl
lea rsi, [rbx + 5]
mov eax, dword [r8 + rsi*4]
test eax, eax
je 0x43a8e1
shl eax, 8
add eax, r15d
cdq
idiv edi
test eax, eax
mov edx, ebp
cmovne edx, eax
cmove eax, r12d
cmp ecx, eax
cmovl ecx, eax
add r11d, eax
mov word [r9 + rsi*2], r11w
mov byte [r10 + rsi], dl
lea rsi, [rbx + 6]
mov eax, dword [r8 + rsi*4]
test eax, eax
je 0x43a8dd
shl eax, 8
add eax, r15d
cdq
idiv edi
test eax, eax
mov edx, ebp
cmovne edx, eax
cmove eax, r12d
cmp ecx, eax
cmovl ecx, eax
add r11d, eax
mov word [r9 + rsi*2], r11w
mov byte [r10 + rsi], dl
lea rsi, [rbx + 7]
cmp rbx, 0xf9
je 0x43a0fb
mov eax, dword [r8 + rsi*4]
test eax, eax
jne 0x43a729
xor ebx, ebx
jmp 0x43a745
xor edx, edx
jmp 0x43a8b0
xor edx, edx
jmp 0x43a87f
xor edx, edx
jmp 0x43a84e
xor edx, edx
nop
jmp 0x43a819
xor edx, edx
jmp 0x43a7e4
xor edx, edx
nop
jmp 0x43a7af
xor esi, esi
jmp 0x43a77a
xor edi, edi
nop
jmp 0x43a0bb
mov esi, 0xff
mov ecx, 1
jmp 0x439db9
mov esi, 0x100
xor edx, edx
xor ecx, ecx
jmp 0x439db9
mov edx, 0x100
xor eax, eax
test r10b, 1
jne 0x43ac08
test r10b, 2
jne 0x43ac1e
test r10b, 4
jne 0x43ac33
mov ecx, edx
shr ecx, 3
mov rdi, r10
rep stosq qword [rdi], rax
mov rsi, rdi
test dl, 4
je 0x43a96e
stosd dword [rdi], eax
mov rsi, rdi
test dl, 2
je 0x43a97b
mov rdi, rsi
stosw word [rdi], ax
mov rsi, rdi
and edx, 1
je 0x43a984
mov rdi, rsi
stosb byte [rdi], al
mov ecx, 0x40
xor eax, eax
mov rdi, r9
rep stosq qword [rdi], rax
jmp 0x43a114
mov esi, 0xfe
mov ecx, 2
jmp 0x439db9
mov ecx, r14d
add rbx, 1
mov ebp, r14d
shr ebp, 0x18
mov byte [rbx - 1], bpl
shl r14d, 8
or r14b, 0xff
shl ecx, 8
mov eax, r14d
xor eax, ecx
test eax, 0xff000000
je 0x43a9a8
mov eax, r14d
sub eax, ecx
xor edx, edx
div r15d
mov r14d, ecx
jmp 0x43a555
xor r14d, r14d
mov r13d, r14d
add rbx, 1
mov edi, r14d
shr edi, 0x18
mov byte [rbx - 1], dil
shl r14d, 8
or r14b, 0xff
shl r13d, 8
mov eax, r14d
xor eax, r13d
test eax, 0xff000000
je 0x43a9e5
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x20]
call sub.msvcrt.dll_free
cmp rsi, rbx
jbe 0x43ac95
mov eax, ebx
sub eax, dword [rsp + 0xd0]
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r11d, r11d
xor eax, eax
mov ebp, 0xffffffff
lea r9, [r13 + rcx*4 + 4]
and ecx, 3
je 0x43ac51
mov r11d, dword [r13]
movzx esi, r11b
lea ebp, [rsi - 3]
add dword [r14 + rsi*4], 1
lea r15, [r13 + 4]
movsxd rax, dword [rsp + 0x30]
mov edi, dword [rsp + 0x2c]
and r11d, edi
cmp rcx, 1
je 0x43ab3b
cmp rcx, 2
je 0x43aaab
mov r8d, dword [r15]
movzx r10d, r8b
lea r12d, [r10 + rbp*2]
add ebp, r12d
add dword [r14 + r10*4], 1
lea r15, [r13 + 8]
movsxd rax, r11d
and r8d, edi
mov r11d, r8d
mov edx, dword [r15]
movzx ecx, dl
lea ebx, [rcx + rbp*2]
add ebp, ebx
shl rax, 0xa
lea rax, [rax + rcx*4]
add dword [r14 + rax], 1
add r15, 4
mov eax, r11d
mov r11d, edx
mov edi, dword [rsp + 0x2c]
and r11d, edi
jmp 0x43ab3b
mov ecx, dword [r15 + 4]
movzx ebx, cl
lea eax, [rbx + rbp*2]
add ebp, eax
movsxd r11, r11d
shl r11, 0xa
lea r10, [r11 + rbx*4]
add dword [r14 + r10], 1
and ecx, edi
mov eax, dword [r15 + 8]
movzx r8d, al
lea r12d, [r8 + rbp*2]
add ebp, r12d
movsxd rsi, esi
shl rsi, 0xa
lea rdx, [rsi + r8*4]
add dword [r14 + rdx], 1
mov r11d, dword [r15 + 0xc]
movzx ebx, r11b
lea r10d, [rbx + rbp*2]
add ebp, r10d
movsxd rcx, ecx
shl rcx, 0xa
lea r8, [rcx + rbx*4]
add dword [r14 + r8], 1
add r15, 0x10
and eax, edi
and r11d, edi
mov esi, dword [r15]
movzx r10d, sil
lea r8d, [r10 + rbp*2]
add ebp, r8d
cdqe
shl rax, 0xa
lea r12, [rax + r10*4]
add dword [r14 + r12], 1
lea rdx, [r15 + 4]
and esi, edi
cmp rdx, r9
jne 0x43aad6
mov dword [rsp + 0x40], ebp
jmp 0x439d1e
mov dword [rsp + 0x50], 0xa00
mov byte [rsp + 0x5b], 1
mov dword [rsp + 0x54], 0x1ff
mov dword [rsp + 0x2c], 1
mov r12d, 0x400
mov r15d, 0x200
mov ecx, 0x800
mov dword [rsp + 0x44], 2
jmp 0x439bae
mov eax, dword [r13]
movzx ebp, al
lea r9d, [rbp - 3]
mov dword [rsp + 0x40], r9d
add dword [r14 + rbp*4], 1
lea r15, [r13 + 4]
and eax, dword [rsp + 0x2c]
jmp 0x439c1e
mov dword [rsp + 0x50], 0x1400
mov byte [rsp + 0x5b], 2
mov dword [rsp + 0x54], 0x3ff
mov dword [rsp + 0x2c], 3
mov r12d, 0x800
mov r15d, 0x400
mov ecx, 0x1000
mov dword [rsp + 0x44], 4
jmp 0x439bae
mov rdi, r10
stosb byte [rdi], al
mov r10, rdi
mov edx, 0xff
test r10b, 2
je 0x43a94d
mov rdi, r10
stosw word [rdi], ax
mov r10, rdi
sub edx, 2
test r10b, 4
je 0x43a957
mov rdi, r10
stosd dword [rdi], eax
mov r10, rdi
sub edx, 4
jmp 0x43a957
mov ebx, 0xffffffff
mov r9d, dword [rsp + 0x2c]
jmp 0x439c8b
mov edi, dword [rsp + 0x2c]
jmp 0x43ab3b
mov dword [rsp + 0x50], 0x2800
mov byte [rsp + 0x5b], 3
mov dword [rsp + 0x54], 0x7ff
mov dword [rsp + 0x2c], 7
mov r12d, 0x1000
mov r15d, 0x800
mov ecx, 0x2000
mov dword [rsp + 0x44], 8
jmp 0x439bae
mov eax, 0xffffffff
jmp 0x43aa32