Function at 0x43b2fa
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov rdi, rcx
mov rsi, rdx
movsxd rdx, dword [rcx + 0x1d0]
mov rax, qword [rcx + 0x1e0]
mov rbx, qword [rax + rdx*8]
mov eax, dword [rbx + 0x18]
mov dword [rsp + 0x34], eax
mov r12d, dword [rcx + 0x20c]
mov ecx, dword [rbx + 0x14]
mov dword [rsp + 0x30], ecx
test al, 4
jne 0x43b5db
test ecx, ecx
jle 0x43c330
mov rax, rsi
xor edx, edx
and ecx, 7
je 0x43b424
cmp ecx, 1
je 0x43b403
cmp ecx, 2
je 0x43b3ec
cmp ecx, 3
je 0x43b3d5
cmp ecx, 4
nop
je 0x43b3be
cmp ecx, 5
je 0x43b3a9
cmp ecx, 6
je 0x43b395
mov r15d, dword [rsi]
xor r15d, dword [rsi + 4]
test r15b, r15b
jne 0x43b9ca
lea rax, [rsi + 8]
mov edx, 1
mov ecx, dword [rax]
xor ecx, dword [rax + 4]
test cl, cl
jne 0x43b9ca
add rax, 8
add edx, 1
mov ebp, dword [rax]
xor ebp, dword [rax + 4]
test bpl, bpl
jne 0x43b9ca
add rax, 8
add edx, 1
mov r8d, dword [rax]
xor r8d, dword [rax + 4]
test r8b, r8b
jne 0x43b9ca
add rax, 8
add edx, 1
mov r9d, dword [rax]
xor r9d, dword [rax + 4]
test r9b, r9b
jne 0x43b9ca
add rax, 8
add edx, 1
mov r10d, dword [rax]
xor r10d, dword [rax + 4]
test r10b, r10b
jne 0x43b9ca
add rax, 8
add edx, 1
mov r11d, dword [rax]
xor r11d, dword [rax + 4]
test r11b, r11b
jne 0x43b9ca
add rax, 8
add edx, 1
cmp edx, dword [rsp + 0x30]
je 0x43b4d6
mov r13d, dword [rax]
xor r13d, dword [rax + 4]
test r13b, r13b
jne 0x43b9ca
lea r14d, [rdx + 1]
mov edx, r14d
mov r15d, dword [rax + 8]
xor r15d, dword [rax + 0xc]
test r15b, r15b
jne 0x43b9ca
add edx, 1
mov ecx, dword [rax + 0x10]
xor ecx, dword [rax + 0x14]
test cl, cl
jne 0x43b9ca
lea edx, [r14 + 2]
mov ebp, dword [rax + 0x18]
xor ebp, dword [rax + 0x1c]
test bpl, bpl
jne 0x43b9ca
lea edx, [r14 + 3]
mov r8d, dword [rax + 0x20]
xor r8d, dword [rax + 0x24]
test r8b, r8b
jne 0x43b9ca
lea edx, [r14 + 4]
mov r9d, dword [rax + 0x28]
xor r9d, dword [rax + 0x2c]
test r9b, r9b
jne 0x43b9ca
lea edx, [r14 + 5]
mov r10d, dword [rax + 0x30]
xor r10d, dword [rax + 0x34]
test r10b, r10b
jne 0x43b9ca
lea edx, [r14 + 6]
mov r11d, dword [rax + 0x38]
xor r11d, dword [rax + 0x3c]
test r11b, r11b
jne 0x43b9ca
add rax, 0x40
lea edx, [r14 + 7]
cmp edx, dword [rsp + 0x30]
jne 0x43b424
or dword [rsp + 0x34], 0x40000000
mov eax, dword [rsp + 0x34]
mov dword [rbx + 0x18], eax
sub edx, 1
lea rcx, [rdx*4 + 4]
xor ebp, ebp
add rdx, 1
and edx, 7
je 0x43b570
cmp rdx, 1
je 0x43b55f
cmp rdx, 2
je 0x43b555
cmp rdx, 3
je 0x43b54b
cmp rdx, 4
je 0x43b53f
cmp rdx, 5
je 0x43b533
cmp rdx, 6
mov r8d, 4
cmovne rbp, r8
mov r9d, dword [rsi + rbp*2]
mov dword [rsi + rbp], r9d
add rbp, 4
mov r10d, dword [rsi + rbp*2]
mov dword [rsi + rbp], r10d
add rbp, 4
mov r11d, dword [rsi + rbp*2]
mov dword [rsi + rbp], r11d
add rbp, 4
mov edx, dword [rsi + rbp*2]
mov dword [rsi + rbp], edx
add rbp, 4
mov eax, dword [rsi + rbp*2]
mov dword [rsi + rbp], eax
add rbp, 4
mov r13d, dword [rsi + rbp*2]
mov dword [rsi + rbp], r13d
add rbp, 4
cmp rcx, rbp
je 0x43b5db
mov r14d, dword [rsi + rbp*2]
mov dword [rsi + rbp], r14d
lea r15, [rbp + 4]
mov r8d, dword [rsi + r15*2]
mov dword [rsi + rbp + 4], r8d
lea r9, [rbp + 8]
mov r10d, dword [rsi + r9*2]
mov dword [rsi + rbp + 8], r10d
lea r11, [rbp + 0xc]
mov edx, dword [rsi + r11*2]
mov dword [rsi + rbp + 0xc], edx
lea rax, [rbp + 0x10]
mov r13d, dword [rsi + rax*2]
mov dword [rsi + rbp + 0x10], r13d
lea r14, [rbp + 0x14]
mov r15d, dword [rsi + r14*2]
mov dword [rsi + rbp + 0x14], r15d
lea r8, [rbp + 0x18]
mov r9d, dword [rsi + r8*2]
mov dword [rsi + rbp + 0x18], r9d
lea r10, [rbp + 0x1c]
mov r11d, dword [rsi + r10*2]
mov dword [rsi + rbp + 0x1c], r11d
add rbp, 0x20
cmp rcx, rbp
jne 0x43b570
mov dword [rbx + 4], 0x18
mov rcx, qword [rbx + 0x70]
mov rbp, qword [rbx]
mov qword [rcx], rbp
mov rdx, qword [rbx + 8]
mov qword [rcx + 8], rdx
mov rax, qword [rbx + 0x10]
mov qword [rcx + 0x10], rax
mov r13, qword [rbx + 0x18]
mov qword [rcx + 0x18], r13
mov r14d, dword [rdi + 0x64]
test r14d, r14d
je 0x43b64b
mov r15, qword [rdi + 0x58]
mov rdx, qword [rbx + 0x70]
mov r8, qword [rbx + 0x78]
mov rcx, r15
call fcn.00432115
mov r8d, dword [r15]
sub dword [rdi + 0x60], r8d
mov rcx, r15
add r15, 0x18
call fcn.004321e7
sub dword [rdi + 0x64], 1
jne 0x43b611
mov rcx, qword [rdi + 0x58]
call sub.msvcrt.dll_free
mov qword [rdi + 0x58], 0
mov r9d, dword [rsp + 0x30]
test r9d, r9d
jne 0x43b66b
mov eax, 1
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rdi
call fcn.00425999
mov r10, qword [rbx + 0x70]
mov r11, qword [r10]
mov qword [rbx], r11
mov rcx, qword [r10 + 8]
mov qword [rbx + 8], rcx
mov rbp, qword [r10 + 0x10]
mov qword [rbx + 0x10], rbp
mov rdx, qword [r10 + 0x18]
mov qword [rbx + 0x18], rdx
mov eax, dword [r10 + 4]
lea r13, [r10 + rax + 0xc]
mov qword [rsp + 0x40], r13
xor r15d, r15d
shr r12d, 1
je 0x43b6b4
add r15d, 1
shr r12d, 1
jne 0x43b6ab
mov r12, qword [rsp + 0x40]
lea r14, [r12 + 1]
mov qword [rsp + 0x48], r14
mov byte [r12], r15b
lea rdx, [rbx + 0x70]
mov qword [rsp + 0x50], rdx
test byte [rdi + 0x15], 8
je 0x43b94f
mov ecx, dword [rbx + 0x18]
mov qword [rsp + 0x20], r14
mov edi, dword [rsp + 0x30]
mov r9d, edi
mov r8, rsi
call fcn.00439b20
mov dword [rsp + 0x58], eax
mov ecx, dword [rbx + 0x18]
mov ebp, ecx
and ebp, 0x40000004
sete byte [rsp + 0x5f]
sete r8b
movzx eax, r8b
add eax, 1
imul eax, edi
cmp eax, 0x117
jle 0x43c0fb
mov r9, qword [rsp + 0x40]
mov byte [r9 + 1], 3
cdqe
mov r10, qword [rsp + 0x48]
lea r11, [r10 + rax - 0xa]
mov qword [rsp + 0x38], r11
lea r15, [r9 + 4]
cmp qword [rbx + 0x98], 0
jne 0x43b9fb
mov rdi, qword [rbx + 0x8d0]
test rdi, rdi
je 0x43c380
xor r9d, r9d
mov r10d, 0x600
mov eax, 0x7d8a6d
mov r12d, 0x100ffff
mov ecx, 0x10000
jmp 0x43b787
sub r9, 4
cmp r9, 0xfffffffffffffe00
je 0x43b8ec
mov rdx, r9
neg rdx
mov dword [rdi + rdx], eax
mov r14d, r12d
sub r14d, eax
mov dword [rdi + r9 + 0x3fc], r14d
cmp eax, 0x10000
jle 0x43b776
lea r8d, [r10 + r10*4]
lea r11d, [r8*4 + 0x80]
sar r11d, 8
add r10d, r11d
lea r13d, [r10 + 0x40]
sar r13d, 7
lea r14d, [r13 - 1]
mov edx, r13d
and edx, 7
je 0x43b86b
cmp edx, 1
je 0x43b850
cmp edx, 2
je 0x43b83f
cmp edx, 3
je 0x43b832
cmp edx, 4
je 0x43b821
cmp edx, 5
je 0x43b810
cmp edx, 6
je 0x43b7ff
mov r14d, ecx
sub r14d, eax
sar r14d, 8
add eax, r14d
lea r14d, [r13 - 2]
mov r8d, ecx
sub r8d, eax
sar r8d, 8
add eax, r8d
sub r14d, 1
mov r11d, ecx
sub r11d, eax
sar r11d, 8
add eax, r11d
sub r14d, 1
mov r13d, ecx
sub r13d, eax
sar r13d, 8
add eax, r13d
sub r14d, 1
mov edx, ecx
sub edx, eax
sar edx, 8
add eax, edx
sub r14d, 1
mov r8d, ecx
sub r8d, eax
sar r8d, 8
add eax, r8d
sub r14d, 1
mov r11d, ecx
sub r11d, eax
sar r11d, 8
add eax, r11d
sub r14d, 1
cmp r14d, 0xffffffff
je 0x43b776
mov r13d, ecx
sub r13d, eax
sar r13d, 8
lea edx, [rax + r13]
mov eax, ecx
sub eax, edx
sar eax, 8
lea r8d, [rdx + rax]
mov r11d, ecx
sub r11d, r8d
sar r11d, 8
lea r13d, [r8 + r11]
mov edx, ecx
sub edx, r13d
sar edx, 8
lea eax, [r13 + rdx]
mov r8d, ecx
sub r8d, eax
sar r8d, 8
lea r11d, [rax + r8]
mov r13d, ecx
sub r13d, r11d
sar r13d, 8
lea edx, [r11 + r13]
mov eax, ecx
sub eax, edx
sar eax, 8
lea r8d, [rdx + rax]
mov eax, ecx
sub eax, r8d
sar eax, 8
add eax, r8d
sub r14d, 8
cmp r14d, 0xffffffff
jne 0x43b86b
sub r9, 4
cmp r9, 0xfffffffffffffe00
jne 0x43b787
movabs rdi, 0x8000000080000
mov qword [rbx + 0x884], rdi
mov qword [rbx + 0x88c], rdi
mov qword [rbx + 0x894], 0x80000
mov dword [rbx + 0x89c], 0
mov qword [rbx + 0x8ac], rdi
mov qword [rbx + 0x8b4], rdi
mov qword [rbx + 0x8bc], 0x80000
mov dword [rbx + 0x8c4], 0
mov rdi, qword [rsp + 0x40]
mov word [rdi + 2], 0x1406
mov rcx, rdi
jmp 0x43ba28
mov ecx, dword [rbx + 0x18]
mov qword [rsp + 0x20], r14
mov r9d, dword [rsp + 0x30]
mov r8, rsi
call fcn.00439b20
cmp eax, 0xffffffff
je 0x43c102
lea r15d, [rax + 1]
test r15d, r15d
je 0x43b9ba
mov r8, qword [rbx + 0x70]
mov r14d, dword [r8 + 4]
lea rdi, [r8 + r14 + 8]
test r15b, 1
jne 0x43b9ea
mov byte [rdi], 0x8e
mov r11d, r15d
shr r11d, 1
mov byte [rdi + 1], r11b
mov eax, r15d
shr eax, 9
mov byte [rdi + 2], al
mov ebp, r15d
shr ebp, 0x11
mov byte [rdi + 3], bpl
mov r10, qword [rbx + 0x70]
mov r12d, dword [r10 + 4]
lea r15d, [r15 + r12 + 4]
mov dword [r10 + 4], r15d
mov edx, dword [rsp + 0x30]
add qword [rbx + 0x98], rdx
jmp 0x43b655
cmp dword [rsp + 0x30], edx
je 0x43be19
and dword [rsp + 0x34], 0xbfffffff
mov r13d, dword [rsp + 0x34]
mov dword [rbx + 0x18], r13d
jmp 0x43b5db
lea ecx, [r15 + 4]
mov byte [rdi + rcx], 0
mov byte [rdi], 0xce
add r15d, 1
jmp 0x43b98c
mov rcx, qword [rbx + 0x8d0]
call fcn.0043af41
mov r13d, eax
mov rcx, qword [rbx + 0x8d0]
mov edx, eax
call fcn.0043ac9f
mov rdi, qword [rsp + 0x40]
mov byte [rdi + 2], r13b
mov byte [rdi + 3], 0x14
mov rcx, rdi
mov r9d, dword [rbx + 0x884]
mov r10d, r9d
sar r10d, 0xc
mov byte [rcx + 4], r10b
and r9d, 0xff000
mov dword [rbx + 0x884], r9d
mov r12d, dword [rbx + 0x888]
mov r14d, r12d
sar r14d, 0xc
mov byte [rcx + 5], r14b
and r12d, 0xff000
mov dword [rbx + 0x888], r12d
mov r11d, dword [rbx + 0x88c]
mov r13d, r11d
sar r13d, 0xc
mov byte [rcx + 6], r13b
and r11d, 0xff000
mov dword [rbx + 0x88c], r11d
mov r8d, dword [rbx + 0x890]
mov edx, r8d
sar edx, 0xc
mov byte [rcx + 7], dl
and r8d, 0xff000
mov dword [rbx + 0x890], r8d
mov eax, dword [rbx + 0x894]
mov edi, eax
sar edi, 0xc
mov byte [rcx + 8], dil
and eax, 0xff000
mov dword [rbx + 0x894], eax
mov r9d, dword [rbx + 0x89c]
mov byte [rcx + 9], r9b
mov edx, dword [rbx + 0x89c]
mov byte [rcx + 0xa], dh
mov dword [rbx + 0x898], 0
movsx r10d, word [rbx + 0x89c]
mov dword [rbx + 0x89c], r10d
test ebp, ebp
jne 0x43bbb9
mov r12d, dword [rbx + 0x8ac]
mov r14d, r12d
sar r14d, 0xc
mov byte [rcx + 0xb], r14b
and r12d, 0xff000
mov dword [rbx + 0x8ac], r12d
mov r11d, dword [rbx + 0x8b0]
mov r13d, r11d
sar r13d, 0xc
mov byte [rcx + 0xc], r13b
and r11d, 0xff000
mov dword [rbx + 0x8b0], r11d
mov r8d, dword [rbx + 0x8b4]
mov eax, r8d
sar eax, 0xc
mov byte [rcx + 0xd], al
and r8d, 0xff000
mov dword [rbx + 0x8b4], r8d
mov edi, dword [rbx + 0x8b8]
mov r9d, edi
sar r9d, 0xc
mov byte [rcx + 0xe], r9b
and edi, 0xff000
mov dword [rbx + 0x8b8], edi
mov r10d, dword [rbx + 0x8bc]
mov edx, r10d
sar edx, 0xc
mov byte [rcx + 0xf], dl
and r10d, 0xff000
mov dword [rbx + 0x8bc], r10d
mov r12d, dword [rbx + 0x8c4]
mov byte [rcx + 0x10], r12b
mov eax, dword [rbx + 0x8c4]
mov byte [rcx + 0x11], ah
mov dword [rbx + 0x8c0], 0
movsx ecx, word [rbx + 0x8c4]
mov dword [rbx + 0x8c4], ecx
movzx r14d, byte [rsp + 0x5f]
add r14, 1
lea r10, [r15 + r14*8]
sub r10, r14
cmp qword [rsp + 0x38], r10
jbe 0x43c3a3
mov r8d, dword [rbx + 0x89c]
mov edi, dword [rsp + 0x30]
mov r14, rsi
xor edx, edx
mov ecx, 0xffffffff
mov r12d, 0xffffffff
mov qword [rsp + 0xb8], rsi
movzx r11d, byte [r14]
mov dword [rbx + 0x8a0], r11d
lea r12d, [r12 + r12*2]
add r12d, r11d
mov r9d, dword [rbx + 0x884]
sub r9d, dword [rbx + 0x894]
imul r8d, dword [rbx + 0x898]
sar r8d, 2
lea eax, [r9 + r8]
mov dword [rbx + 0x87c], eax
test ebp, ebp
jne 0x43c0f2
movzx r15d, byte [r14 + 4]
mov dword [rbx + 0x8c8], r15d
add r15d, r12d
lea r12d, [r15 + r12*2]
mov r13d, dword [rbx + 0x8c0]
imul r13d, dword [rbx + 0x8c4]
sar r13d, 2
add r13d, dword [rbx + 0x8ac]
sub r13d, dword [rbx + 0x8bc]
mov dword [rbx + 0x8a4], r13d
add r14, 8
mov esi, 8
movzx eax, ah
mov r8, qword [rbx + 0x8d0]
lea r9, [r8 + rax*4]
mov r13d, dword [r9]
mov eax, ecx
sub eax, edx
shr eax, 8
mov r15d, r13d
sar r15d, 0x10
imul eax, r15d
and r11d, 0x80
je 0x43be38
lea ecx, [rdx + rax]
mov r8d, 0x10000fe
sub r8d, r13d
sar r8d, 8
add r13d, r8d
mov dword [r9], r13d
mov dword [rbx + 0x880], 0xffffffff
mov eax, 0x100000
mov r8d, 0xffffffff
mov r9d, ecx
xor r9d, edx
and r9d, 0xff000000
jne 0x43bd16
add r10, 1
mov r13d, ecx
shr r13d, 0x18
mov byte [r10 - 1], r13b
shl ecx, 8
or cl, 0xff
shl edx, 8
mov eax, ecx
xor eax, edx
test eax, 0xff000000
je 0x43bce4
mov r8d, dword [rbx + 0x880]
mov eax, r8d
and eax, 0x100000
mov r11d, dword [rbx + 0x898]
mov r15d, dword [rbx + 0x87c]
lea r9d, [r15 + r11*8]
mov r15d, r11d
shl r15d, 4
mov r13d, r9d
sub r13d, r15d
xor r13d, r9d
sar r13d, 0x1f
xor r9d, r8d
sar r9d, 0x1f
or r9d, 1
and r9d, r13d
mov r8d, dword [rbx + 0x89c]
add r8d, r9d
mov dword [rbx + 0x89c], r8d
mov r15d, dword [rbx + 0x884]
mov r9d, eax
sub r9d, r15d
sar r9d, 6
add r9d, r15d
mov dword [rbx + 0x884], r9d
mov r13d, dword [rbx + 0x888]
sub eax, r13d
sar eax, 4
add eax, r13d
mov dword [rbx + 0x888], eax
mov r15d, dword [rbx + 0x88c]
sub eax, r15d
sar eax, 4
add eax, r15d
mov dword [rbx + 0x88c], eax
mov r13d, dword [rbx + 0x890]
sub eax, r13d
sar eax, 4
add eax, r13d
mov dword [rbx + 0x890], eax
mov r15d, dword [rbx + 0x894]
sub eax, r15d
sar eax, 4
add r15d, eax
mov dword [rbx + 0x894], r15d
sub eax, r11d
sar eax, 3
add r11d, eax
mov dword [rbx + 0x898], r11d
imul r11d, r8d
sar r11d, 2
sub r9d, r15d
add r9d, r11d
mov dword [rbx + 0x87c], r9d
shl dword [rbx + 0x8a0], 1
test ebp, ebp
je 0x43be63
sub esi, 1
je 0x43bff4
mov eax, dword [rbx + 0x87c]
mov r11d, dword [rbx + 0x8a0]
jmp 0x43bc7a
or dword [rsp + 0x34], 0x40000000
mov r14d, dword [rsp + 0x34]
mov dword [rbx + 0x18], r14d
mov r15d, dword [rsp + 0x30]
lea edx, [r15 - 1]
jmp 0x43b4e8
lea edx, [rdx + rax + 1]
mov r11d, 0x10000
sub r11d, r13d
sar r11d, 8
add r13d, r11d
mov dword [r9], r13d
mov dword [rbx + 0x880], 0
xor eax, eax
xor r8d, r8d
jmp 0x43bcd5
movzx r11d, byte [rbx + 0x8a5]
mov rax, qword [rbx + 0x8d0]
lea r9, [rax + r11*4]
mov r8d, dword [r9]
mov r13d, ecx
sub r13d, edx
shr r13d, 8
mov r15d, r8d
sar r15d, 0x10
imul r13d, r15d
test byte [rbx + 0x8c8], 0x80
je 0x43c0c6
lea ecx, [rdx + r13]
mov eax, 0x10000fe
sub eax, r8d
sar eax, 8
add r8d, eax
mov dword [r9], r8d
mov dword [rbx + 0x8a8], 0xffffffff
mov eax, 0x100000
mov r8d, 0xffffffff
mov r9d, ecx
xor r9d, edx
and r9d, 0xff000000
jne 0x43bf06
add r10, 1
mov r8d, ecx
shr r8d, 0x18
mov byte [r10 - 1], r8b
shl ecx, 8
or cl, 0xff
shl edx, 8
mov eax, ecx
xor eax, edx
test eax, 0xff000000
je 0x43bed4
mov r8d, dword [rbx + 0x8a8]
mov eax, r8d
and eax, 0x100000
mov r11d, dword [rbx + 0x8c0]
mov r13d, dword [rbx + 0x8a4]
lea r9d, [r13 + r11*8]
mov r15d, r11d
shl r15d, 4
mov r13d, r9d
sub r13d, r15d
xor r13d, r9d
sar r13d, 0x1f
xor r9d, r8d
sar r9d, 0x1f
or r9d, 1
and r9d, r13d
mov r8d, dword [rbx + 0x8c4]
add r8d, r9d
mov dword [rbx + 0x8c4], r8d
mov r15d, dword [rbx + 0x8ac]
mov r9d, eax
sub r9d, r15d
sar r9d, 6
add r9d, r15d
mov dword [rbx + 0x8ac], r9d
mov r13d, dword [rbx + 0x8b0]
sub eax, r13d
sar eax, 4
add eax, r13d
mov dword [rbx + 0x8b0], eax
mov r15d, dword [rbx + 0x8b4]
sub eax, r15d
sar eax, 4
add eax, r15d
mov dword [rbx + 0x8b4], eax
mov r13d, dword [rbx + 0x8b8]
sub eax, r13d
sar eax, 4
add eax, r13d
mov dword [rbx + 0x8b8], eax
mov r15d, dword [rbx + 0x8bc]
sub eax, r15d
sar eax, 4
add r15d, eax
mov dword [rbx + 0x8bc], r15d
sub eax, r11d
sar eax, 3
add r11d, eax
mov dword [rbx + 0x8c0], r11d
imul r11d, r8d
sar r11d, 2
sub r9d, r15d
add r9d, r11d
mov dword [rbx + 0x8a4], r9d
shl dword [rbx + 0x8c8], 1
sub esi, 1
jne 0x43be07
mov r8d, dword [rbx + 0x89c]
lea esi, [r8 + 0x200]
sar esi, 0xa
sub r8d, esi
mov dword [rbx + 0x89c], r8d
test ebp, ebp
jne 0x43c02d
mov eax, dword [rbx + 0x8c4]
lea r11d, [rax + 0x200]
sar r11d, 0xa
sub eax, r11d
mov dword [rbx + 0x8c4], eax
cmp qword [rsp + 0x38], r10
jbe 0x43c03d
sub edi, 1
jne 0x43bbf8
mov rsi, qword [rsp + 0xb8]
mov rbp, qword [rbx + 0x70]
mov dword [rbp + 0x1c], r12d
mov edi, edx
add r10, 1
mov r14d, edx
shr r14d, 0x18
mov byte [r10 - 1], r14b
shl edx, 8
or dl, 0xff
shl edi, 8
mov ecx, edx
xor ecx, edi
and ecx, 0xff000000
je 0x43c04f
cmp qword [rsp + 0x38], r10
jbe 0x43c3b0
sub r10, qword [rsp + 0x48]
mov eax, r10d
cmp dword [rsp + 0x58], 0xffffffff
je 0x43b964
cmp r10d, 0xffffffff
je 0x43c0a2
cmp dword [rsp + 0x58], r10d
jge 0x43b96d
mov ecx, dword [rbx + 0x18]
mov r10, qword [rsp + 0x48]
mov qword [rsp + 0x20], r10
mov r9d, dword [rsp + 0x30]
mov r8, rsi
mov rdx, qword [rsp + 0x50]
call fcn.00439b20
jmp 0x43b964
lea edx, [rdx + r13 + 1]
mov r11d, 0x10000
sub r11d, r8d
sar r11d, 8
add r8d, r11d
mov dword [r9], r8d
mov dword [rbx + 0x8a8], 0
xor eax, eax
xor r8d, r8d
jmp 0x43bec5
add r14, 4
jmp 0x43bc75
cmp dword [rsp + 0x58], 0xffffffff
jne 0x43c0a5
test dword [rsp + 0x34], 0x40000004
je 0x43c307
mov r9, qword [rsp + 0x40]
mov byte [r9 + 1], 0
mov r13d, dword [rsp + 0x30]
lea r15d, [r13 + 2]
lea r8d, [r13 - 1]
xor ecx, ecx
mov r14d, 0xffffffff
lea r11, [r8 + 1]
and r11d, 7
je 0x43c399
cmp r11, 1
je 0x43c20e
cmp r11, 2
je 0x43c1f3
cmp r11, 3
je 0x43c1d6
cmp r11, 4
je 0x43c1ba
cmp r11, 5
je 0x43c19d
cmp r11, 6
je 0x43c180
mov eax, dword [rsi]
mov rbp, qword [rsp + 0x40]
mov byte [rbp + 2], al
movzx r14d, al
sub r14d, 3
mov ecx, 1
mov r10d, dword [rsi + rcx*4]
mov rdi, qword [rsp + 0x40]
mov byte [rdi + rcx + 2], r10b
movzx r12d, r10b
lea edx, [r12 + r14*2]
add r14d, edx
add rcx, 1
mov r9d, dword [rsi + rcx*4]
mov r13, qword [rsp + 0x40]
mov byte [r13 + rcx + 2], r9b
movzx r11d, r9b
lea eax, [r11 + r14*2]
add r14d, eax
add rcx, 1
mov ebp, dword [rsi + rcx*4]
mov r10, qword [rsp + 0x40]
mov byte [r10 + rcx + 2], bpl
movzx edi, bpl
lea r12d, [rdi + r14*2]
add r14d, r12d
add rcx, 1
mov edx, dword [rsi + rcx*4]
mov r9, qword [rsp + 0x40]
mov byte [r9 + rcx + 2], dl
movzx r13d, dl
lea r11d, [r13 + r14*2]
add r14d, r11d
add rcx, 1
mov eax, dword [rsi + rcx*4]
mov rbp, qword [rsp + 0x40]
mov byte [rbp + rcx + 2], al
movzx r10d, al
lea edi, [r10 + r14*2]
add r14d, edi
add rcx, 1
mov r12d, dword [rsi + rcx*4]
mov rdx, qword [rsp + 0x40]
mov byte [rdx + rcx + 2], r12b
movzx r9d, r12b
lea r13d, [r9 + r14*2]
add r14d, r13d
mov r11, rcx
add rcx, 1
cmp r8, r11
je 0x43c2fa
mov rdi, rdx
mov eax, dword [rsi + rcx*4]
mov byte [rdi + rcx + 2], al
movzx ebp, al
lea r10d, [rbp + r14*2]
add r14d, r10d
lea r12, [rcx + 1]
mov edx, dword [rsi + r12*4]
mov byte [rdi + rcx + 3], dl
movzx r9d, dl
lea r13d, [r9 + r14*2]
add r14d, r13d
lea r11, [rcx + 2]
mov eax, dword [rsi + r11*4]
mov byte [rdi + rcx + 4], al
movzx ebp, al
lea r10d, [rbp + r14*2]
add r14d, r10d
lea r12, [rcx + 3]
mov edx, dword [rsi + r12*4]
mov byte [rdi + rcx + 5], dl
movzx r9d, dl
lea r13d, [r9 + r14*2]
add r14d, r13d
lea r11, [rcx + 4]
mov eax, dword [rsi + r11*4]
mov byte [rdi + rcx + 6], al
movzx ebp, al
lea r10d, [rbp + r14*2]
add r14d, r10d
lea r12, [rcx + 5]
mov edx, dword [rsi + r12*4]
mov byte [rdi + rcx + 7], dl
movzx r9d, dl
lea r13d, [r9 + r14*2]
add r14d, r13d
lea r11, [rcx + 6]
mov eax, dword [rsi + r11*4]
mov byte [rdi + rcx + 8], al
movzx ebp, al
lea r10d, [rbp + r14*2]
add r14d, r10d
lea r12, [rcx + 7]
mov edx, dword [rsi + r12*4]
mov byte [rdi + rcx + 9], dl
movzx r9d, dl
lea r13d, [r9 + r14*2]
add r14d, r13d
add rcx, 8
cmp r8, r12
jne 0x43c23a
mov rsi, qword [rbx + 0x70]
mov dword [rsi + 0x1c], r14d
jmp 0x43b971
mov r12d, dword [rsp + 0x30]
add r12d, r12d
mov rdx, qword [rsp + 0x40]
mov byte [rdx + 1], 0
lea r15d, [r12 + 2]
lea r8d, [r12 - 1]
jne 0x43c127
mov r14d, 0xffffffff
jmp 0x43c2fa
jne 0x43b9d4
or dword [rsp + 0x34], 0x40000000
mov ebp, dword [rsp + 0x34]
mov dword [rbx + 0x18], ebp
mov dword [rbx + 4], 0x18
mov r8, qword [rbx + 0x70]
mov r9, qword [rbx]
mov qword [r8], r9
mov r10, qword [rbx + 8]
mov qword [r8 + 8], r10
mov r11, qword [rbx + 0x10]
mov qword [r8 + 0x10], r11
mov r13, qword [rbx + 0x18]
mov qword [r8 + 0x18], r13
mov r14d, dword [rdi + 0x64]
test r14d, r14d
jne 0x43b60d
jmp 0x43b655
mov ecx, 0x400
call sub.msvcrt.dll_malloc
mov rdi, rax
mov qword [rbx + 0x8d0], rax
jmp 0x43b75b
mov rdi, qword [rsp + 0x40]
jmp 0x43c23a
xor edx, edx
mov r12d, 0xffffffff
jmp 0x43c045
cmp dword [rsp + 0x58], 0xffffffff
jne 0x43c0a2
jmp 0x43c102