Function at 0x14009fdb0
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x1f0
mov eax, 0x65
mov word [rsp + 0xe8], ax
movzx eax, byte [0x1401778f6]
movzx eax, al
mov qword [rsp + 0x100], rax
mov dword [rsp + 0xc8], 0x428c
mov dword [rsp + 0xec], 0x2a
movzx eax, word [0x140177984]
mov word [rsp + 0x40], ax
mov eax, dword [0x140177978]
mov qword [rsp + 0x80], rax
movzx eax, word [0x1401779d8]
mov word [rsp + 0x50], ax
mov rax, qword [0x1401779d8]
mov qword [rsp + 0x108], rax
movsx eax, byte [0x140177905]
mov dword [rsp + 0x11c], eax
mov dword [rsp + 0xa8], 0xb2
mov eax, 0xffffe1fc
mov word [rsp + 0x48], ax
movabs rax, 0x893d32987064b
mov qword [rsp + 0x68], rax
movzx eax, word [0x1401779ec]
mov byte [rsp + 0x21], al
mov eax, 0xffffe0bf
mov word [rsp + 0x38], ax
mov rax, qword [0x1401779e0]
mov byte [rsp + 0x20], al
mov eax, 0x4ce3
mov word [rsp + 0x54], ax
mov qword [rsp + 0x78], 0x68e60a7c
movzx eax, word [0x1401779f8]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0xf0], 0x6176a922
movzx eax, byte [0x140177936]
movsx ax, al
mov word [rsp + 0x44], ax
movzx eax, word [0x140177988]
mov byte [rsp + 0x22], al
movabs rax, 0xf0d965eaf13b6
mov qword [rsp + 0xd8], rax
mov byte [rsp + 0x3c], 0x10
mov eax, dword [0x140177998]
mov byte [rsp + 0x28], al
mov eax, dword [0x1401779d0]
mov dword [rsp + 0x120], eax
mov eax, 0xf3198163
mov qword [rsp + 0x130], rax
mov byte [rsp + 0x70], 0x90
mov dword [rsp + 0x110], 0xda3e225c
mov eax, 0x49e2
mov word [rsp + 0xe4], ax
mov dword [rsp + 0x114], 0xf14d
mov rax, qword [0x1401779b8]
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], 0xe7e3
mov dword [rsp + 0x118], 0x49b3e55
movzx eax, byte [0x140177936]
mov byte [rsp + 0x71], al
mov qword [rsp + 0x148], 0x6f21
mov eax, 0x717c
mov word [rsp + 0xe0], ax
movzx eax, word [rsp + 0x44]
cwde
test eax, eax
je 0x1400a00a7
xor r8d, r8d
mov dl, 0x9b
xor ecx, ecx
call fcn.14009eb60
movzx eax, al
mov word [rsp + 0x38], ax
movsx eax, word [rsp + 0x38]
test eax, eax
je 0x14009ffae
mov dword [rsp + 0xd0], 1
jmp 0x14009ffb9
mov dword [rsp + 0xd0], 0
movsx eax, word [rsp + 0x38]
cmp eax, 0x1b
je 0x14009ffd0
mov dword [rsp + 0xcc], 1
jmp 0x14009ffdb
mov dword [rsp + 0xcc], 0
mov eax, dword [rsp + 0xcc]
cmp dword [rsp + 0xd0], eax
jge 0x1400a0064
cmp qword [rsp + 0x68], 0
jne 0x1400a0000
mov dword [rsp + 0xd4], 1
jmp 0x1400a000b
mov dword [rsp + 0xd4], 0
movsx eax, word [0x1401779e8]
movsx ecx, word [rsp + 0x48]
sub eax, ecx
imul eax, dword [rsp + 0xd4]
cdqe
movzx ecx, byte [0x1401778f7]
movsx ecx, cl
sub ecx, 0x4a
movsxd rcx, ecx
mov rdx, qword [0x140177970]
sub rdx, rcx
mov rcx, rdx
imul rax, rcx
mov word [rsp + 0x40], ax
movzx eax, word [0x1401779ec]
movzx eax, ax
movzx ecx, word [0x14017798c]
add eax, ecx
mov byte [0x1401778ce], al
jmp 0x1400a00a5
movsx eax, word [0x1401779c0]
test eax, eax
je 0x1400a00a5
movabs rax, 0x996ed790d8465
mov rcx, qword [0x140177990]
sub rcx, rax
mov rax, rcx
mov byte [0x14017791b], al
movabs rax, 0x8a97f8bf9e785
mov rcx, qword [rsp + 0x58]
add rcx, rax
mov rax, rcx
mov byte [rsp + 0x20], al
jmp 0x1400a00d6
movzx eax, word [rsp + 0x44]
cwde
test eax, eax
je 0x1400a00d6
mov qword [rsp + 0x68], 0xd66350
movsx eax, word [rsp + 0x40]
and eax, 0xa2bb3e50
mov eax, eax
mov rcx, qword [rsp + 0x78]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x78], rax
movzx eax, word [rsp + 0x54]
movzx eax, ax
not eax
movzx ecx, byte [0x1401778cf]
movsx ecx, cl
cmp eax, ecx
jge 0x1400a013f
movzx eax, word [0x1401779a4]
movzx eax, ax
movabs rcx, 0x1931a5ec5589d
sub rax, rcx
mov qword [rsp + 0x58], rax
movzx eax, word [0x1401779a0]
sub eax, 0x5b
cdqe
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x80]
not rax
movsx rcx, word [rsp + 0x48]
lea rax, [rax + rcx + 0x39d5]
mov dword [0x1401779c4], eax
jmp 0x1400a021f
movsx eax, word [rsp + 0x40]
test eax, eax
je 0x1400a0192
movzx eax, byte [rsp + 0x28]
movzx eax, al
movzx ecx, byte [rsp + 0x22]
imul eax, ecx
mov byte [rsp + 0x28], al
movzx eax, byte [rsp + 0x21]
movsx eax, al
add eax, 0x4ca0
movzx ecx, word [0x1401779ec]
movzx ecx, cx
sub ecx, eax
mov eax, ecx
mov word [0x1401779ec], ax
mov eax, dword [rsp + 0xa8]
shl eax, 2
mov word [rsp + 0x50], ax
jmp 0x1400a021f
movzx eax, byte [0x140177937]
movsx rax, al
cmp rax, qword [rsp + 0xd8]
jne 0x1400a01d2
movzx eax, word [0x140177988]
movsx rax, ax
mov rcx, qword [rsp + 0x78]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x78], rax
movzx eax, word [0x140ecf768]
mov word [0x1401779c0], ax
jmp 0x1400a021f
movzx eax, word [0x1401779ec]
movzx eax, ax
movsx ecx, byte [0x140177905]
add eax, ecx
test eax, eax
je 0x1400a021f
mov eax, dword [0x1401779b4]
cdqe
mov rcx, qword [rsp + 0x58]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x58]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x58], rax
movsx eax, byte [0x140177905]
add eax, dword [0x140177984]
mov byte [0x140177905], al
movzx eax, byte [rsp + 0x21]
movsx rax, al
cmp rax, qword [rsp + 0x68]
ja 0x1400a023c
mov dword [rsp + 0x8c], 1
jmp 0x1400a0247
mov dword [rsp + 0x8c], 0
movzx eax, byte [rsp + 0x21]
movsx eax, al
cmp eax, 0x5f
jg 0x1400a0261
mov dword [rsp + 0x88], 1
jmp 0x1400a026c
mov dword [rsp + 0x88], 0
mov eax, dword [rsp + 0x88]
cmp dword [rsp + 0x8c], eax
je 0x1400a02e5
movzx eax, byte [0x140177906]
movsx eax, al
imul eax, eax, 0x30
test eax, eax
jne 0x1400a029a
mov dword [rsp + 0x90], 1
jmp 0x1400a02a5
mov dword [rsp + 0x90], 0
movsx eax, word [rsp + 0x40]
xor eax, dword [rsp + 0x90]
cdqe
mov qword [0x140177970], rax
movzx eax, word [0x1401779d4]
movzx eax, ax
movzx ecx, byte [rsp + 0x22]
sub eax, ecx
movzx ecx, word [0x1401779d4]
movzx ecx, cx
sub ecx, eax
mov eax, ecx
mov word [0x1401779d4], ax
mov byte [rsp + 0x22], 0xae
mov byte [rsp + 0x20], 0xe3
movzx eax, byte [rsp + 0x20]
movzx ecx, word [0x1401779fc]
sub eax, ecx
movzx ecx, byte [rsp + 0x20]
or ecx, eax
mov eax, ecx
mov byte [rsp + 0x20], al
mov dword [rsp + 0x4c], 0
mov eax, 4
mov word [0x1401779c0], ax
movsx eax, word [rsp + 0x48]
movzx ecx, word [0x1401779a0]
imul eax, ecx
not eax
cdqe
sub rax, qword [rsp + 0xd8]
mov word [rsp + 0x38], ax
mov dword [rsp + 0x24], 0
mov eax, dword [0x140177998]
sub eax, 0x983abe71
movsx ecx, word [0x1401779c0]
sub ecx, eax
mov eax, ecx
mov word [0x1401779c0], ax
mov eax, dword [0x1401779f4]
cdqe
movabs rcx, 0xf680643dbeee1
imul rax, rcx
movzx ecx, word [rsp + 0x44]
movsx rcx, cx
add rcx, rax
mov rax, rcx
mov word [rsp + 0x44], ax
mov dword [rsp + 0x74], 0
movsx eax, word [rsp + 0x38]
add eax, 0xd246
mov byte [0x140177905], al
movzx eax, byte [rsp + 0x3c]
movzx eax, al
add eax, 0x2ce6
mov dword [rsp + 0xc8], eax
mov rax, qword [rsp + 0x58]
and rax, 0x6ead402a
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
add rax, 4
mov qword [rsp + 0x30], rax
movsx eax, word [rsp + 0x40]
test eax, eax
je 0x1400a03f3
movzx eax, byte [rsp + 0x3c]
mov byte [rsp + 0x3d], al
jmp 0x1400a03fc
movzx eax, byte [rsp + 0x20]
mov byte [rsp + 0x3d], al
movzx eax, byte [rsp + 0x3d]
mov dword [0x140177980], eax
movzx eax, word [0x1401779e8]
mov word [0x1401779c0], ax
lea rax, [rsp + 0x150]
mov rdi, rax
xor eax, eax
mov ecx, 0x98
rep stosb byte [rdi], al
mov rax, qword [rsp + 0x80]
and rax, 0x7bb5d959
mov qword [0x1401779b8], rax
mov byte [0x1401778f6], 4
mov rax, qword [rsp + 0x210]
mov dword [rax], 0
mov r8d, 0x98
xor edx, edx
lea rcx, [rsp + 0x150]
call fcn.14003b720
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 2]
cmp dword [rsp + 0x24], eax
jae 0x1400a0805
mov dword [rsp + 0x4c], 0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 1]
and al, 0xf
movzx eax, al
mov dword [rsp + 0x94], eax
cmp dword [rsp + 0x94], 0xa
ja case.default.0x1400a04bf
movsxd rax, dword [rsp + 0x94]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xa0d00]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
cmp eax, 4
jne 0x1400a04e5
cmp dword [rsp + 0x74], 0
jne 0x1400a04e5
xor eax, eax
jmp 0x1400a0cf5
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
add eax, 8
mov rcx, qword [rsp + 0x210]
mov dword [rcx], eax
jmp case.default.0x1400a04bf
mov rax, qword [rsp + 0x30]
add rax, 2
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x30]
movzx eax, word [rax]
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
test eax, eax
jne 0x1400a0547
mov eax, dword [rsp + 0x4c]
shl eax, 3
mov dword [rsp + 0x4c], eax
jmp 0x1400a0576
mov rax, qword [rsp + 0x30]
add rax, 2
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x30]
movzx eax, word [rax]
shl eax, 0x10
mov ecx, dword [rsp + 0x4c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
add eax, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0x210]
mov dword [rcx], eax
jmp case.default.0x1400a04bf
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
mov rcx, qword [rsp + 0x210]
mov ecx, dword [rcx]
lea eax, [rcx + rax*8 + 8]
mov rcx, qword [rsp + 0x210]
mov dword [rcx], eax
jmp case.default.0x1400a04bf
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
shr al, 3
and al, 0x1f
movzx eax, al
and eax, 1
test eax, eax
je 0x1400a05f9
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
shr al, 3
and al, 0x1f
movzx eax, al
sar eax, 2
and eax, 1
test eax, eax
je 0x1400a05f9
xor eax, eax
jmp 0x1400a0cf5
mov dword [rsp + 0x74], 1
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 3]
shr al, 4
and al, 0xf
movzx eax, al
imul eax, eax, 0xfffffff0
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
add eax, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0x210]
mov dword [rcx], eax
jmp case.default.0x1400a04bf
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
cmp eax, 5
je 0x1400a0662
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
cmp eax, 4
jne 0x1400a0669
xor eax, eax
jmp 0x1400a0cf5
mov rax, qword [rsp + 0x30]
add rax, 2
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x30]
movzx eax, word [rax + 2]
mov rcx, qword [rsp + 0x210]
mov ecx, dword [rcx]
lea eax, [rcx + rax*8]
mov rcx, qword [rsp + 0x30]
movzx ecx, byte [rcx + 1]
shr cl, 4
and cl, 0xf
movzx ecx, cl
mov dword [rsp + rcx*4 + 0x150], eax
jmp case.default.0x1400a04bf
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
cmp eax, 5
je 0x1400a06e1
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
cmp eax, 4
jne 0x1400a06e8
xor eax, eax
jmp 0x1400a0cf5
mov rax, qword [rsp + 0x30]
movzx eax, word [rax + 2]
mov rcx, qword [rsp + 0x210]
add eax, dword [rcx]
mov rcx, qword [rsp + 0x30]
movzx ecx, byte [rcx + 1]
shr cl, 4
and cl, 0xf
movzx ecx, cl
mov dword [rsp + rcx*4 + 0x150], eax
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
mov rcx, qword [rsp + 0x30]
movzx ecx, word [rcx + 4]
shl ecx, 0x10
add ecx, dword [rsp + rax*4 + 0x150]
mov eax, ecx
mov rcx, qword [rsp + 0x30]
movzx ecx, byte [rcx + 1]
shr cl, 4
and cl, 0xf
movzx ecx, cl
mov dword [rsp + rcx*4 + 0x150], eax
mov rax, qword [rsp + 0x30]
add rax, 4
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x24]
add eax, 2
mov dword [rsp + 0x24], eax
jmp case.default.0x1400a04bf
mov rax, qword [rsp + 0x30]
add rax, 2
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
jmp case.default.0x1400a04bf
mov rax, qword [rsp + 0x30]
add rax, 4
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x24]
add eax, 2
mov dword [rsp + 0x24], eax
jmp case.default.0x1400a04bf
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
test eax, eax
jne 0x1400a07d1
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
add eax, 0x40
mov rcx, qword [rsp + 0x210]
mov dword [rcx], eax
jmp case.default.0x1400a04bf
mov rax, qword [rsp + 0x210]
mov eax, dword [rax]
add eax, 0x48
mov rcx, qword [rsp + 0x210]
mov dword [rcx], eax
mov rax, qword [rsp + 0x30]
add rax, 2
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
jmp 0x1400a0468
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
shr al, 3
and al, 0x1f
movzx eax, al
sar eax, 2
and eax, 1
test eax, eax
je 0x1400a0aad
movsx rax, byte [str.Jinvalid_window_siz]
add rax, qword [0x140177990]
movsx rcx, byte [str.Jinvalid_window_siz]
add rcx, rax
mov rax, rcx
mov byte [str.Jinvalid_window_siz], al
mov eax, 0xcb
mov word [0x14017797c], ax
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 2]
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
and eax, 1
test eax, eax
je 0x1400a0a61
movsxd rax, dword [0x140177980]
mov rcx, qword [rsp + 0xf0]
cmp rax, rcx
jne 0x1400a088f
mov dword [rsp + 0x9c], 1
jmp 0x1400a089a
mov dword [rsp + 0x9c], 0
cmp dword [0x140177980], 0x51
jne 0x1400a08b0
mov dword [rsp + 0x98], 1
jmp 0x1400a08bb
mov dword [rsp + 0x98], 0
mov eax, dword [rsp + 0x98]
cmp dword [rsp + 0x9c], eax
je 0x1400a098a
movzx eax, word [0x1401779a0]
movsx ecx, word [0x1401779c0]
cmp eax, ecx
je 0x1400a08ee
mov dword [rsp + 0xa4], 1
jmp 0x1400a08f9
mov dword [rsp + 0xa4], 0
movzx eax, word [0x1401779a0]
cmp eax, 8
je 0x1400a0912
mov dword [rsp + 0xa0], 1
jmp 0x1400a091d
mov dword [rsp + 0xa0], 0
mov eax, dword [rsp + 0xa0]
cmp dword [rsp + 0xa4], eax
jge 0x1400a094d
mov dword [rsp + 0xa8], 0xe5
imul rax, qword [rsp + 0x100], 0xaa97
mov word [0x1401779fc], ax
jmp 0x1400a0988
movzx eax, word [0x14017797c]
test eax, eax
je 0x1400a0988
movzx eax, word [0x1401779a0]
sub eax, 0x217b
cdqe
mov qword [rsp + 0x58], rax
mov rax, qword [0x1401779b8]
mov rcx, qword [rsp + 0x80]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x80], rax
jmp 0x1400a0a01
movzx eax, byte [rsp + 0x21]
movsx eax, al
test eax, eax
jne 0x1400a09a3
mov dword [rsp + 0xac], 1
jmp 0x1400a09ae
mov dword [rsp + 0xac], 0
movsx eax, byte [0x1401778ce]
mov ecx, dword [rsp + 0xac]
and ecx, eax
mov eax, ecx
test eax, eax
jne 0x1400a09cf
movsx eax, word [0x1401779c0]
test eax, eax
je 0x1400a0a01
movzx eax, word [0x140ecf768]
mov word [rsp + 0x50], ax
movzx eax, word [0x1401779fc]
mov rcx, qword [rsp + 0xf0]
xor rax, rcx
movzx ecx, word [0x1401779fc]
add rcx, rax
mov rax, rcx
mov word [0x1401779fc], ax
movzx eax, word [rsp + 0x50]
movzx eax, ax
movabs rcx, 0x1bacbdc0bd5
mov rdx, qword [rsp + 0x68]
add rcx, rdx
add rax, rcx
mov qword [rsp + 0x68], rax
movzx eax, byte [rsp + 0x28]
movzx eax, al
mov rcx, qword [rsp + 0x80]
xor rcx, rax
mov rax, rcx
mov qword [rsp + 0x80], rax
movzx eax, byte [0x14017791b]
sub eax, 0x7b083fed
cdqe
mov qword [rsp + 0xd8], rax
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x60]
lea rax, [rcx + rax*2 + 4]
mov qword [rsp + 0x128], rax
mov rax, qword [rsp + 0x128]
mov eax, dword [rax + 8]
mov rcx, qword [rsp + 0x200]
add rcx, rax
mov rax, rcx
mov r8, qword [rsp + 0x210]
mov rdx, rax
mov rcx, qword [rsp + 0x200]
call fcn.14009fdb0
jmp 0x1400a0cf5
movzx eax, word [rsp + 0x54]
movzx eax, ax
cmp rax, qword [rsp + 0x78]
jle 0x1400a0ac9
mov dword [rsp + 0xb0], 1
jmp 0x1400a0ad4
mov dword [rsp + 0xb0], 0
movzx eax, byte [rsp + 0x28]
movzx eax, al
movzx ecx, byte [0x1401778f6]
movzx ecx, cl
cmp eax, ecx
jg 0x1400a0af7
mov dword [rsp + 0xb4], 1
jmp 0x1400a0b02
mov dword [rsp + 0xb4], 0
movzx eax, byte [rsp + 0x22]
not eax
cdqe
cmp qword [rsp + 0x78], rax
jle 0x1400a0b20
mov qword [rsp + 0xf8], 1
jmp 0x1400a0b2c
mov qword [rsp + 0xf8], 0
mov rax, qword [0x1401779d8]
not rax
cmp rax, qword [rsp + 0xf8]
jne 0x1400a0b4d
mov dword [rsp + 0xb8], 1
jmp 0x1400a0b58
mov dword [rsp + 0xb8], 0
mov eax, dword [rsp + 0xb0]
imul eax, dword [rsp + 0xb4]
mov ecx, dword [rsp + 0xb8]
not ecx
cmp eax, ecx
je 0x1400a0cb9
mov eax, dword [0x1401779f4]
movsx ecx, word [rsp + 0x48]
cmp eax, ecx
jl 0x1400a0bac
movzx eax, word [rsp + 0x44]
cwde
not eax
movzx ecx, word [0x1401779ec]
movzx ecx, cx
add eax, ecx
test eax, eax
jne 0x1400a0bac
mov dword [rsp + 0xc0], 0
jmp 0x1400a0bb7
mov dword [rsp + 0xc0], 1
movzx eax, byte [0x1401778cf]
movsx eax, al
test eax, eax
jne 0x1400a0c03
movzx eax, byte [rsp + 0x22]
cmp eax, 0x6fa44daa
jbe 0x1400a0bde
mov dword [rsp + 0xbc], 1
jmp 0x1400a0be9
mov dword [rsp + 0xbc], 0
mov eax, dword [rsp + 0xbc]
not eax
test eax, eax
je 0x1400a0c03
mov dword [rsp + 0xc4], 0
jmp 0x1400a0c0e
mov dword [rsp + 0xc4], 1
mov eax, dword [rsp + 0xc0]
imul eax, dword [rsp + 0xc4]
test eax, eax
je 0x1400a0c82
mov rax, qword [rsp + 0x58]
shr rax, 6
mov word [0x14017797c], ax
movzx eax, byte [rsp + 0x20]
mov qword [rsp + 0x100], rax
movsx eax, word [rsp + 0x38]
add eax, dword [rsp + 0xc8]
not eax
movsx ecx, word [0x1401779e8]
movzx edx, word [rsp + 0x54]
movzx edx, dx
add ecx, edx
xor eax, ecx
mov ecx, dword [rsp + 0xec]
imul ecx, ecx, 0x1e6b11d9
movzx edx, byte [rsp + 0x21]
movsx edx, dl
imul ecx, edx
imul eax, ecx
mov dword [0x140177980], eax
jmp 0x1400a0cb7
cmp dword [0x140177980], 0
jne 0x1400a0cb7
movsx eax, word [rsp + 0x48]
not eax
cdqe
mov qword [rsp + 0xd8], rax
movzx eax, byte [rsp + 0x21]
movsx rax, al
movabs rcx, 0x43d4e6c198409
add rax, rcx
mov word [rsp + 0x38], ax
jmp 0x1400a0cf1
movzx eax, word [0x1401779d4]
movzx eax, ax
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x68], rax
movsx rax, word [0x1401779e8]
mov rcx, qword [rsp + 0x108]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x108], rax
mov eax, dword [rsp + 0x74]
add rsp, 0x1f0
pop rdi
ret