Function at 0x140216e00
Capabilities:
Packed with generic packer

Disassembly:
add dword [rsp + 0x30], 0x3f1a4c0a
cmp dword [rsp + 0x30], 0xb6b90619
add qword [rsp + 0x40], 0x56767
neg word [rsp + 0x10]
not qword [rsp + 0x10]
mov rdx, qword [rsp + 0x30]
not qword [rsp + 0x30]
cmp dl, dh
mov rdx, qword [rsp + 0x40]
mov rdx, qword [rdx]
mov qword [rsp + 0x40], 0xffffffffd69cc12e
mov word [rsp + 0x10], 0xb791
push r12
lea rdx, [rdx + 0x6baf5f12]
mov r12, qword [rsp + 0x18]
push r10
push r13
push rcx
mov word [rsp + 0x50], 0xd80b
jg 0x14021bce8
push r14
xchg qword [rsp + 0x70], rdx
mov r12, qword [rsp + 0x20]
shl qword [rsp + 0x68], 2
movabs r13, 0x320d408225201a91
ja 0x1403364fa
mov r14, qword [rsp + 0x38]
mov r14, qword [rsp]
ja fcn.14003fa96
shl dword [rsp + 0x68], 0xc2
je 0x14042ddf7
jns 0x14039a454
call fcn.1402d4726
mov r10d, dword [0x1402339a0]
cmp eax, 0x78
cmove r10d, esi
mov dword [0x1402339a0], r10d
mov r11, qword [rbp + 0x10]
mov r9d, dword [rbp + 0x70]
cmp r9d, edi
jle 0x14021bd45
mov ecx, r9d
mov rax, r11
sub ecx, r13d
cmp byte [rax], dil
je 0x14021bd28
add rax, r13
cmp ecx, edi
jne 0x14021bd16
or ecx, 0xffffffff
mov eax, r9d
sub eax, ecx
sub eax, r13d
cmp eax, r9d
jge 0x14021bd3f
lea r9d, [rax + 1]
mov dword [rbp + 0x70], r9d
jmp 0x14021bd45
mov r9d, eax
mov dword [rbp + 0x70], eax
cmp r10d, esi
je 0x14021bfaa
cmp r10d, edi
je 0x14021bfaa
cmp r10d, r13d
jne 0x14021bfe0
mov r12d, dword [rbp + 0x88]
mov esi, edi
cmp r12d, edi
jne 0x14021bd75
mov rax, qword [rbx]
mov r12d, dword [rax + 4]
neg dword [rbp + 0x90]
mov r8, r11
mov ecx, r12d
sbb edx, edx
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
and edx, 8
add edx, r13d
push rdx
call fcn.140536dfe
movsxd r15, eax
cmp r15d, edi
je 0x14021bfe0
movabs rbx, 0xffffffffffffff0
mov r14d, 0xdddd
mov r13d, 0x400
jle 0x14021be17
xor edx, edx
lea rax, [rdx - 0x20]
div r15
cmp rax, 2
jb 0x14021be17
lea rcx, [r15 + r15 + 0x10]
cmp rcx, r13
ja 0x14021be03
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x14021bde1
mov rax, rbx
and rax, 0xfffffffffffffff0
call fcn.140224300
sub rsp, rax
lea rdi, [rsp + 0x40]
test rdi, rdi
je 0x14021bfe0
mov dword [rdi], 0xcccc
jmp 0x14021be13
call fcn.14021b7c4
mov rdi, rax
test rax, rax
je 0x14021be17
mov dword [rax], r14d
add rdi, 0x10
test rdi, rdi
je 0x14021bfe0
mov r9d, dword [rbp + 0x70]
mov r8, qword [rbp + 0x10]
mov edx, 1
mov ecx, r12d
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rdi
call fcn.1404f1f4c
mov cl, 0x33
leave
cmp eax, ecx
je 0x14021bf95
mov edx, dword [rbp]
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rcx
mov ecx, dword [rbp + 8]
mov r9d, r15d
mov r8, rdi
push rcx
call fcn.14040f7b4
xor r8d, r8d
movsxd rsi, eax
cmp esi, r8d
je 0x14021bf95
mov r10d, dword [rbp]
bt r10d, 0xa
jae 0x14021beba
mov eax, dword [rbp + 0x80]
cmp eax, r8d
je 0x14021bf95
cmp esi, eax
jg 0x14021bf95
mov ecx, dword [rbp + 8]
mov dword [rsp + 0x28], eax
mov rax, qword [rbp + 0x78]
mov r9d, r15d
mov r8, rdi
mov edx, r10d
mov qword [rsp + 0x20], rax
call fcn.14029421c
sub cl, ch
fild dword [rax]
add byte [rax], al
cmp esi, r8d
jle 0x14021bf1f
xor edx, edx
lea rax, [rdx - 0x20]
div rsi
cmp rax, 2
jb 0x14021bf1f
lea rcx, [rsi + rsi + 0x10]
cmp rcx, r13
ja 0x14021bf02
lea rax, [rcx + 0xf]
cmp rax, rcx
ja 0x14021bee4
mov rax, rbx
and rax, 0xfffffffffffffff0
call fcn.140224300
sub rsp, rax
lea rbx, [rsp + 0x40]
cmp rbx, r8
je 0x14021bf19
mov dword [rbx], 0xcccc
jmp 0x14021bf15
call fcn.14021b7c4
xor r8d, r8d
mov rbx, rax
cmp rax, r8
je 0x14021bf19
invalid
mov dword [rax], r14d
add rbx, 0x10
mov r10d, dword [rbp]
jmp 0x14021bf22
mov rbx, r8
cmp rbx, r8
je 0x14021bf95
mov ecx, dword [rbp + 8]
mov r9d, r15d
mov r8, rdi
mov edx, r10d
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
call fcn.1402bbcb7
push qword [rbx]
leave
cmp eax, ecx
je 0x14021bf87
mov eax, dword [rbp + 0x80]
xor edx, edx
mov qword [rsp + 0x38], rcx
mov r9d, esi
mov r8, rbx
mov qword [rsp + 0x30], rcx
cmp eax, ecx
jne 0x14021bf6f
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rcx
jmp 0x14021bf7c
mov dword [rsp + 0x28], eax
mov rax, qword [rbp + 0x78]
mov qword [rsp + 0x20], rax
mov ecx, r12d
call fcn.140437343
ja 0x14021bf11
invalid
lea rcx, [rbx - 0x10]
cmp dword [rcx], r14d
jne 0x14021bf95
call fcn.14021a140
lea rcx, [rdi - 0x10]
cmp dword [rcx], r14d
jne 0x14021bfa3
call fcn.14021a140
mov eax, esi
jmp 0x14021c177
mov rsi, rdi
mov r12, rdi
cmp r14d, edi
jne 0x14021bfc0
mov rax, qword [rbx]
mov r14d, dword [rax + 0x14]
mov dword [rbp + 8], r14d
mov edi, dword [rbp + 0x88]
test edi, edi
jne 0x14021bfd0
mov rax, qword [rbx]
mov edi, dword [rax + 4]
mov ecx, r14d
call fcn.14021fbc4
mov r13d, eax
cmp eax, 0xffffffff
jne 0x14021bfe7
xor eax, eax
jmp 0x14021c177
mov r15, qword [rbp + 0x78]
mov r8, qword [rbp + 0x10]
cmp eax, edi
je 0x14021c133
xor ebx, ebx
lea r9, [rbp + 0x70]
mov edx, eax
mov ecx, edi
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
call fcn.14021fc18
mov rsi, rax
cmp rax, rbx
je 0x14021bfe0
mov r9d, dword [rbp + 0x70]
mov edx, dword [rbp]
mov r8, rax
mov ecx, r14d
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
call fcn.140590861
or byte [rbx + riz*2 - 0x38], cl
mov dword [rbp + 4], r9d
cmp r9d, ebx
jne 0x14021c046
mov edi, ebx
jmp 0x14021c156
cmp r9d, ebx
mov r14d, 0xdddd
jle 0x14021c0b3
mov rcx, r9
cmp r9, 0xffffffffffffffe0
ja 0x14021c0b3
add rcx, 0x10
cmp rcx, 0x400
ja 0x14021c09b
lea rbx, [rcx + 0xf]
cmp rbx, rcx
ja 0x14021c07a
movabs rbx, 0xffffffffffffff0
and rbx, 0xfffffffffffffff0
mov rax, rbx
call fcn.140224300
sub rsp, rbx
lea rbx, [rsp + 0x40]
test rbx, rbx
je 0x14021c0b8
mov dword [rbx], 0xcccc
jmp 0x14021c0ab
call fcn.14021b7c4
mov rbx, rax
test rax, rax
je 0x14021c0af
mov dword [rax], r14d
add rbx, 0x10
mov r9d, dword [rbp + 4]
test rbx, rbx
jne 0x14021c0bc
xor ebx, ebx
jmp 0x14021c03f
movsxd r8, r9d
xor edx, edx
mov rcx, rbx
call fcn.14021e540
mov r11d, dword [rbp + 4]
mov r9d, dword [rbp + 0x70]
mov edx, dword [rbp]
mov ecx, dword [rbp + 8]
mov dword [rsp + 0x28], r11d
mov r8, rsi
mov qword [rsp + 0x20], rbx
call fcn.14027fe50
cdq
mov dword [rbp + 4], eax
test eax, eax
jne 0x14021c0f5
xor edi, edi
jmp 0x14021c123
mov eax, dword [rbp + 0x80]
lea r9, [rbp + 4]
mov r8, rbx
mov dword [rsp + 0x28], eax
mov edx, edi
mov ecx, r13d
mov qword [rsp + 0x20], r15
call fcn.14021fc18
mov edi, dword [rbp + 4]
mov r12, rax
xor eax, eax
cmp r12, rax
cmove edi, eax
lea rcx, [rbx - 0x10]
cmp dword [rcx], r14d
jne 0x14021c154
call fcn.14021a140
jmp 0x14021c154
mov eax, dword [rbp + 0x80]
mov r9d, dword [rbp + 0x70]
mov edx, dword [rbp]
mov dword [rsp + 0x28], eax
mov ecx, r14d
mov qword [rsp + 0x20], r15
push rcx
call fcn.14058d144
mov edi, eax
xor ebx, ebx
cmp rsi, rbx
je 0x14021c163
mov rcx, rsi
call fcn.14021a140
cmp r12, rbx
je 0x14021c175
cmp r15, r12
je 0x14021c175
mov rcx, r12
call fcn.14021a140
mov eax, edi
mov rcx, qword [rbp + 0x18]
xor rcx, rbp
call fcn.14021e9c0
mov rbx, qword [rbp + 0x50]
mov rsi, qword [rbp + 0x58]
mov rdi, qword [rbp + 0x60]
lea rsp, [rbp + 0x20]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret