Function at 0x14022a720
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x460
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x120], rcx
mov eax, 0x10
mov qword [rbp + 0x130], rax
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0x130]
mov rcx, rsp
mov qword [rbp + 0x150], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0x130]
mov rcx, rsp
mov qword [rbp + 0x128], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0x130]
mov rcx, rsp
mov qword [rbp + 0x138], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x140], rax
sub rsp, 0x20
call fcn.140231723
add rsp, 0x20
mov qword [rbp + 0x158], rax
add rax, 0x50
mov qword [rbp + 0x148], rax
mov qword [rbp + 0x3d0], 0
mov qword [rbp + 0x3d8], 0
lea rcx, [rbp + 0x3d0]
xor eax, eax
mov edx, eax
sub rsp, 0x20
call fcn.140030093
mov rax, qword [rbp + 0x150]
add rsp, 0x20
mov qword [rax], 0
mov word [rbp + 0x3ce], 0xafd
lea rcx, [rbp + 0x3ce]
sub rsp, 0x20
call fcn.140067cc0
mov rcx, qword [rbp + 0x158]
add rsp, 0x20
mov qword [rbp + 0x160], rax
mov al, 1
cmp byte [rcx + 0x50], 0
mov byte [rbp + 0x16f], al
jne 0x14022aadd
mov ecx, dword [0x14024ff38]
mov eax, 0x1087201c
xor eax, 0x555878c7
xor ecx, eax
mov edx, dword [0x14024ff3c]
mov eax, ecx
and eax, eax
mov r8d, 0x3f6d251
xor r8d, 0xfc092dae
xor eax, r8d
and eax, edx
xor eax, 0xffffffff
and edx, edx
xor edx, 0xffffffff
and ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov r8d, eax
xor r8d, 0xffffffff
and r8d, 0xf8e1ff82
mov ecx, 0xffffffff
xor ecx, 0xf8e1ff82
and eax, ecx
or r8d, eax
mov eax, r8d
xor eax, 0xffffffff
and eax, 0x62da752c
mov r9d, 0xdf46de2b
xor r9d, 0xbd9cab07
mov ecx, 0x98e9995a
xor ecx, 0x671666a5
xor r9d, ecx
and r8d, r9d
mov ecx, 0x96200063
xor ecx, 0xac72d61d
mov edx, 0x840aaa80
xor edx, 0x7bf5557f
xor ecx, edx
mov edx, 0x6a7f7f0
xor edx, 0x647d82dc
and ecx, edx
mov edx, 0x6e0fc808
xor edx, 0x545d1e76
and edx, r9d
or eax, r8d
or ecx, edx
xor eax, ecx
sub eax, 0xc7fcd287
cmp eax, 0x2afa1e91
jb 0x14022c302
mov rdx, qword [rbp + 0x138]
mov rax, qword [rbp + 0x160]
mov ecx, dword [0x14024ff40]
xor ecx, dword [0x14024ff44]
mov r8d, 0x9fb00800
xor r8d, 0xad8be600
imul ecx, r8d
mov r8d, ecx
add r8d, 1
mov r9d, 0xa7601581
xor r9d, 0x589fea7e
xor ecx, r9d
or ecx, 0x6c204850
add ecx, r8d
or ecx, 0xf28a5077
mov dword [rbp + 0x10c], ecx
mov rcx, qword [rax]
mov qword [rdx], rcx
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x380]
sub rsp, 0x20
call fcn.14001c002
add rsp, 0x20
mov rax, qword [rbp + 0x380]
mov qword [rbp + 0xf8], rax
mov rax, qword [rbp + 0x388]
mov qword [rbp + 0x100], rax
lea rcx, [rbp + 0x3b8]
mov edx, 0x10
sub rsp, 0x20
call fcn.140222b40
mov rcx, qword [rbp + 0xf8]
mov rax, qword [rbp + 0x100]
add rsp, 0x20
lea rdx, [0x140229ee0]
mov qword [rbp + 0x3b8], rdx
mov qword [rbp + 0x3c0], 0
mov qword [rbp + 0x370], rcx
mov qword [rbp + 0x378], rax
mov rax, qword [rbp + 0x3b8]
mov qword [rbp + 0x360], rax
mov rax, qword [rbp + 0x3c0]
mov qword [rbp + 0x368], rax
mov rcx, 0xffffffff80000001
lea rdx, [rbp + 0x370]
mov r8d, 7
lea r9, [rbp + 0x360]
sub rsp, 0x20
call fcn.14018bf10
mov rcx, qword [rbp + 0x148]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp + 0x10c]
mov qword [rbp + 0x110], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp + 0x11f], cl
cmp eax, 0x7b352d07
jb 0x14022c302
mov cl, byte [rbp + 0x11f]
mov al, 1
test cl, 1
mov byte [rbp + 0x16f], al
jne 0x14022aa7d
jmp 0x14022aadd
mov rcx, qword [rbp + 0x150]
mov rax, qword [rbp + 0x110]
mov qword [rcx], rax
sub rsp, 0x20
call fcn.14015636b
mov rcx, qword [rbp + 0x148]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x16f], al
jne 0x14022aadd
mov rdx, qword [rbp + 0x110]
lea rcx, [rbp + 0x3d0]
sub rsp, 0x20
call fcn.140030b8f
mov rax, qword [rbp + 0x148]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp + 0x16f], al
mov rcx, qword [rbp + 0x148]
mov rax, qword [rbp + 0x150]
mov dl, byte [rbp + 0x16f]
mov byte [rbp + 0xf7], dl
mov byte [rcx], 0
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.140156270
mov rax, qword [rbp + 0x148]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0xe4
xor cl, 0xe4
cmp al, cl
jne 0x14022ab37
mov al, byte [rbp + 0xf7]
mov rcx, qword [rbp + 0x148]
mov byte [rcx], al
cmp al, 0
je 0x14022ab62
mov rax, qword [rbp + 0x148]
mov cl, 0xe0
xor cl, 0xe0
mov byte [rax], cl
sub rsp, 0x20
call fcn.140222ca0
mov rax, qword [rbp + 0x148]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14022c237
mov rcx, qword [rbp + 0x128]
mov qword [rbp + 0x3b0], 0
mov ax, 0xb76a
xor ax, 0xbb3c
mov word [rcx], ax
sub rsp, 0x20
call fcn.140067cc0
mov rcx, qword [rbp + 0x148]
add rsp, 0x20
mov qword [rbp + 0xe8], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0xf6], al
jne 0x14022acc5
mov rax, qword [rbp + 0xe8]
mov rcx, qword [rax]
mov qword [rbp + 0x340], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x348], rax
lea rcx, [rbp + 0x350]
lea rdx, [rbp + 0x340]
sub rsp, 0x20
call fcn.14001c002
add rsp, 0x20
mov rcx, qword [rbp + 0x350]
mov rax, qword [rbp + 0x358]
mov qword [rbp + 0x330], rcx
mov qword [rbp + 0x338], rax
lea rcx, [rbp + 0x320]
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
add rsp, 0x20
mov rcx, 0xffffffff80000001
lea rdx, [rbp + 0x330]
mov r8d, 7
lea r9, [rbp + 0x320]
sub rsp, 0x20
call fcn.14018bf10
mov rcx, qword [rbp + 0x148]
add rsp, 0x20
mov qword [rbp + 0xe0], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0xf6], al
jne 0x14022acc5
mov rax, qword [rbp + 0xe0]
mov qword [rbp + 0x3b0], rax
lea rcx, [rbp + 0x3b0]
sub rsp, 0x20
call fcn.14015636b
mov rcx, qword [rbp + 0x148]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0xf6], al
jne 0x14022acc5
mov rdx, qword [rbp + 0xe0]
lea rcx, [rbp + 0x3d0]
sub rsp, 0x20
call fcn.140030b8f
mov rax, qword [rbp + 0x148]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp + 0xf6], al
mov rax, qword [rbp + 0x148]
mov cl, byte [rbp + 0xf6]
mov byte [rbp + 0xdf], cl
mov cl, 0x5b
xor cl, 0x5b
mov byte [rax], cl
mov rcx, qword [rbp + 0x3b0]
sub rsp, 0x20
call fcn.140156270
mov rax, qword [rbp + 0x148]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14022ad1f
mov al, byte [rbp + 0xdf]
mov rdx, qword [rbp + 0x148]
mov cl, 0xd
xor cl, 0xd
mov byte [rdx], al
cmp al, cl
je 0x14022ad46
mov rax, qword [rbp + 0x148]
mov byte [rax], 0
sub rsp, 0x20
call fcn.140222ca0
mov rax, qword [rbp + 0x148]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14022c237
mov word [rbp + 0x3ae], 0xe69
lea rcx, [rbp + 0x3ae]
sub rsp, 0x20
call fcn.140067cc0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x148]
mov qword [rbp + 0xd0], rcx
cmp byte [rax], 0
jne 0x14022c237
mov rax, qword [rbp + 0xd0]
mov rcx, qword [0x14025aa08]
mov rdx, qword [rcx]
mov qword [rbp + 0x300], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp + 0x308], rcx
mov rcx, qword [rax]
mov qword [rbp + 0x2f0], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x2f8], rax
lea rcx, [rbp + 0x310]
lea rdx, [rbp + 0x300]
lea r8, [rbp + 0x2f0]
sub rsp, 0x20
call fcn.140222dbf
mov rax, qword [rbp + 0x148]
add rsp, 0x20
mov rcx, qword [rbp + 0x310]
mov qword [rbp + 0xc0], rcx
mov rcx, qword [rbp + 0x318]
mov qword [rbp + 0xc8], rcx
cmp byte [rax], 0
jne 0x14022c237
mov ecx, 1
mov r8d, 8
sub rsp, 0x20
mov rdx, r8
call fcn.1400193c0
add rsp, 0x20
mov qword [rbp + 0xa8], rax
movabs rcx, 0x2eff1b6ef23d5b04
movabs rax, 0x2eff1b6ef23d5b1c
xor rcx, rax
movabs rdx, 0x7568e1d2e31d8762
movabs rax, 0x7568e1d2e31d876a
xor rdx, rax
sub rsp, 0x20
call fcn.14001bdf0
add rsp, 0x20
mov qword [rbp + 0xb0], rax
mov ax, 0x5f1b
xor ax, 0x52a7
mov word [rbp + 0x3ac], ax
lea rcx, [rbp + 0x3ac]
sub rsp, 0x20
call fcn.140067cc0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x148]
mov qword [rbp + 0xb8], rcx
mov al, byte [rax]
mov cl, 0x28
xor cl, 0x28
cmp al, cl
jne 0x14022c0cd
mov ecx, dword [0x14024ff48]
mov edx, dword [0x14024ff4c]
mov eax, ecx
xor eax, edx
xor eax, 0xffffffff
or ecx, edx
and ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xc79b1bc2
xor edx, 0xa2cdac75
and edx, eax
mov r8d, 0xffffffff
xor r8d, 0x6556b7b7
mov eax, ecx
and eax, r8d
imul eax, edx
mov edx, ecx
and edx, 0x6556b7b7
or ecx, 0x6556b7b7
imul ecx, edx
add ecx, eax
or ecx, 0x478b1378
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0x4bc0c136
xor edx, 0xb43f3ec9
xor ecx, edx
or eax, ecx
mov ecx, 0xffffffff
xor ecx, 0xe05aa7b3
mov edx, 0xffffffff
xor edx, 0xe05aa7b3
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0xcdc8463
je 0x14022c30b
mov eax, dword [0x14024ff50]
mov ecx, 0xe9fa0b1b
xor ecx, 0x9dad8ee6
xor eax, ecx
mov edx, dword [0x14024ff54]
mov ecx, edx
and ecx, eax
xor ecx, 0xffffffff
add eax, edx
add eax, 1
add eax, ecx
mov ecx, 0x2adb7be3
xor edx, edx
div ecx
mov ecx, eax
mov rax, qword [rbp + 0xb8]
and ecx, ecx
xor ecx, 0xffffffff
mov edx, 0x78260535
and edx, 0x78260535
xor edx, 0xffffffff
and ecx, edx
xor ecx, 0xffffffff
xor edx, edx
sub edx, 0xbd01ebe2
add ecx, edx
mov dword [rbp + 0xa0], ecx
mov rcx, qword [rax]
mov qword [rbp + 0x2d0], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x2d8], rax
lea rcx, [rbp + 0x2e0]
lea rdx, [rbp + 0x2d0]
sub rsp, 0x20
call fcn.14001c002
mov rax, qword [rbp + 0xb0]
add rsp, 0x20
mov rdx, qword [rbp + 0x2e0]
mov rcx, qword [rbp + 0x2e8]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov cx, 0x12a6
xor cx, 0x1425
sub rsp, 0x20
call fcn.140068370
mov rdx, qword [rbp + 0xb0]
mov rcx, qword [rbp + 0x148]
add rsp, 0x20
mov r8d, eax
mov eax, dword [rbp + 0xa0]
mov dword [rdx + 0x10], r8d
mov cl, byte [rcx]
mov dl, 0x74
xor dl, 0x74
cmp cl, dl
sete cl
mov byte [rbp + 0xa7], cl
cmp eax, 0x3132065f
je 0x14022c30b
mov al, byte [rbp + 0xa7]
test al, 1
jne 0x14022b04b
jmp 0x14022c0cd
mov ecx, 0x1f1
sub rsp, 0x20
call fcn.140068370
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0x148]
mov dword [rbp + 0x9c], ecx
cmp byte [rax], 0
jne 0x14022c0cd
mov cx, 0xc146
xor cx, 0xc02c
sub rsp, 0x20
call fcn.140068370
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0x148]
mov dword [rbp + 0x98], ecx
cmp byte [rax], 0
jne 0x14022c0cd
mov eax, dword [rbp + 0x98]
mov ecx, dword [rbp + 0x9c]
movsxd rcx, ecx
movsxd rdx, eax
lea r8, [rbp + 0x3a0]
sub rsp, 0x20
call fcn.140222e26
add rsp, 0x20
test al, 1
jne 0x14022b0d6
jmp 0x14022b0e8
sub rsp, 0x20
call fcn.140008d37
add rsp, 0x20
jmp 0x14022c0cd
mov rcx, qword [rbp + 0x3a0]
mov qword [rbp + 0x90], rcx
movabs rdx, 0x596d48ec5f5fb81b
movabs rax, 0xa692b713df5fb81b
xor rdx, rax
mov rax, rcx
and rax, rdx
movabs rdx, 0x5c3e8a3dc387f7f6
movabs r8, 0xa3c175c24387f7f6
xor rdx, r8
or rcx, rdx
add rax, rcx
movabs rcx, 0xffffffff00000000
cmp rax, rcx
jae 0x14022b155
sub rsp, 0x20
call fcn.140008d37
add rsp, 0x20
jmp 0x14022c0cd
mov ecx, 0xc95
sub rsp, 0x20
call fcn.140068370
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0x148]
mov dword [rbp + 0x8c], ecx
cmp byte [rax], 0
jne 0x14022c0cd
mov rcx, qword [rbp + 0x90]
mov eax, dword [rbp + 0x8c]
movsxd rdx, eax
lea r8, [rbp + 0x398]
sub rsp, 0x20
call fcn.140222e26
add rsp, 0x20
test al, 1
jne 0x14022b1b0
jmp 0x14022b1c2
sub rsp, 0x20
call fcn.140008d37
add rsp, 0x20
jmp 0x14022c0cd
mov rax, qword [rbp + 0x398]
mov qword [rbp + 0x80], rax
add rax, 0xffffffff80000000
movabs rcx, 0xffffffff00000000
cmp rax, rcx
jae 0x14022b1fb
sub rsp, 0x20
call fcn.140008d37
add rsp, 0x20
jmp 0x14022c0cd
mov rax, qword [rbp + 0xa8]
mov rcx, qword [rbp + 0xb0]
mov rdx, qword [rbp + 0x80]
mov dword [rcx + 0x14], edx
mov qword [rax + 8], rcx
mov cx, 0x50d3
xor cx, 0x5dde
sub rsp, 0x20
call fcn.140068370
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0x148]
mov dword [rbp + 0x7c], ecx
mov al, byte [rax]
mov cl, 0xbc
xor cl, 0xbc
cmp al, cl
jne 0x14022c0cd
mov r8d, dword [rbp + 0x7c]
mov rax, qword [rbp + 0xa8]
mov rcx, qword [rbp + 0xc8]
mov rdx, qword [rbp + 0xc0]
mov qword [rbp + 0x2c0], rdx
mov qword [rbp + 0x2c8], rcx
mov qword [rbp + 0x2b0], 1
mov qword [rbp + 0x2b8], rax
lea rcx, [rbp + 0x2c0]
lea rdx, [rbp + 0x2b0]
sub rsp, 0x20
call fcn.140171e34
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x148]
mov qword [rbp + 0x70], rcx
cmp byte [rax], 0
jne 0x14022c0cd
mov ecx, dword [0x14024ff58]
mov edx, dword [0x14024ff5c]
mov r8d, 0x5b66544c
xor r8d, 0xa499abb3
mov eax, ecx
xor eax, r8d
xor ecx, 0xffffffff
and eax, ecx
mov r8d, 0xac447c71
xor r8d, 0x53bb838e
mov ecx, edx
xor ecx, r8d
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0x1375e802
xor edx, edx
div ecx
mov ecx, eax
and ecx, 0x654296b4
xor ecx, 0xffffffff
add eax, 0x654296b4
add eax, 1
add eax, ecx
xor eax, 0x798d8f20
cmp eax, 0xfe10959d
je 0x14022c314
mov eax, dword [0x14024ff60]
mov ecx, dword [0x14024ff64]
xor ecx, 0x5ef64fcd
xor edx, edx
div ecx
and eax, 0xae365de2
mov ecx, 0x5c049bef
xor edx, edx
div ecx
mov edx, eax
xor edx, 0xa4f02a2b
mov ecx, 0x226a8a32
xor ecx, 0xdd9575cd
xor edx, ecx
mov ecx, 0xba809acf
xor ecx, 0x1e70b0e4
and ecx, edx
shl ecx, 1
sub ecx, 0xa4f02a2b
sub eax, ecx
mov dword [rbp + 0x5c], eax
mov ax, 0xe370
xor ax, 0xe484
mov word [rbp + 0x396], ax
lea rcx, [rbp + 0x396]
sub rsp, 0x20
call fcn.140067cc0
mov rcx, qword [rbp + 0x148]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp + 0x5c]
mov qword [rbp + 0x60], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp + 0x6f], cl
cmp eax, 0xbe3d8793
je 0x14022c314
mov al, byte [rbp + 0x6f]
test al, 1
jne 0x14022b3cc
jmp 0x14022c0cd
mov rax, qword [rbp + 0x60]
mov rcx, qword [0x1402cdfc8]
mov qword [rbp + 0x290], rcx
mov rcx, qword [0x1402cdfd0]
mov qword [rbp + 0x298], rcx
mov rcx, qword [rax]
mov qword [rbp + 0x280], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x288], rax
lea rcx, [rbp + 0x2a0]
lea rdx, [rbp + 0x290]
lea r8, [rbp + 0x280]
sub rsp, 0x20
call fcn.140222dbf
mov rax, qword [rbp + 0x148]
add rsp, 0x20
mov rcx, qword [rbp + 0x2a0]
mov qword [rbp + 0x48], rcx
mov rcx, qword [rbp + 0x2a8]
mov qword [rbp + 0x50], rcx
cmp byte [rax], 0
jne 0x14022c0cd
mov ax, 0xde1e
xor ax, 0xd9c3
mov word [rbp + 0x394], ax
lea rcx, [rbp + 0x394]
sub rsp, 0x20
call fcn.140067cc0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x148]
mov qword [rbp + 0x40], rcx
cmp byte [rax], 0
jne 0x14022bf86
mov rax, qword [rbp + 0x40]
mov rcx, qword [rbp + 0x50]
mov rdx, qword [rbp + 0x48]
mov qword [rbp + 0x260], rdx
mov qword [rbp + 0x268], rcx
mov rcx, qword [rax]
mov qword [rbp + 0x250], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x258], rax
lea rcx, [rbp + 0x270]
lea rdx, [rbp + 0x260]
lea r8, [rbp + 0x250]
sub rsp, 0x20
call fcn.140222dbf
mov rax, qword [rbp + 0x148]
add rsp, 0x20
mov rcx, qword [rbp + 0x270]
mov qword [rbp + 0x30], rcx
mov rcx, qword [rbp + 0x278]
mov qword [rbp + 0x38], rcx
cmp byte [rax], 0
jne 0x14022bf86
mov rax, qword [rbp + 0x38]
mov rcx, qword [rbp + 0x30]
mov rdx, qword [rbp + 0x120]
mov rdx, qword [rdx]
add rdx, 0x18
mov qword [rbp + 0x20], rdx
mov qword [rbp + 0x240], rcx
mov qword [rbp + 0x248], rax
lea rcx, [rbp + 0x230]
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rcx, qword [rbp + 0x20]
mov rdx, qword [rbp + 0x70]
add rsp, 0x20
lea r8, [rbp + 0x240]
xor eax, eax
mov r9d, eax
lea rax, [rbp + 0x230]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.1401718d0
add rsp, 0x30
mov ecx, eax
mov rax, qword [rbp + 0x148]
mov dword [rbp + 0x2c], ecx
cmp byte [rax], 0
jne 0x14022bf86
mov cx, 0x6ff8
xor cx, 0x693e
sub rsp, 0x20
call fcn.140067b58
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x148]
mov qword [rbp + 0x18], rcx
cmp byte [rax], 0
je 0x14022b667
mov eax, dword [0x14024ff68]
mov edx, dword [0x14024ff6c]
mov ecx, eax
xor ecx, edx
mov r8d, 0xd1fb858
xor r8d, 0xf2e047a7
xor ecx, r8d
or eax, edx
and eax, ecx
imul eax, eax, 0xecc72652
and eax, 0x85ae0422
mov ecx, 0x857e8418
xor edx, edx
div ecx
mov ecx, 0x98ececf9
xor ecx, 0xe9229f60
cmp eax, ecx
je 0x14022c31d
mov ecx, dword [0x14024ff70]
mov edx, dword [0x14024ff74]
mov eax, ecx
or eax, eax
xor eax, 0xffffffff
mov r8d, edx
xor r8d, 0xffffffff
mov r9d, edx
xor r9d, 0xffffffff
and r8d, r9d
xor eax, 0xffffffff
xor r8d, 0xffffffff
and eax, r8d
mov r8d, 0x2c31b9e8
xor r8d, 0xd3ce4617
xor ecx, r8d
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
sub eax, 0xebadee7e
xor eax, 0xf77977b6
mov ecx, 0xf5a2283d
xor ecx, 0xb6efbafb
add eax, ecx
cmp eax, 0x3afa2148
jae 0x14022c31d
jmp 0x14022bf86
mov rax, qword [rbp + 0x18]
cmp rax, qword [rbp + 0x3d0]
jl 0x14022b67d
jmp 0x14022bb17
mov word [rbp + 0x22e], 0x3f4
lea rcx, [rbp + 0x22e]
sub rsp, 0x20
call fcn.140067cc0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x148]
mov qword [rbp + 0x10], rcx
cmp byte [rax], 0
jne 0x14022bafc
mov rax, qword [rbp + 0x10]
mov rcx, qword [0x1402cdfc8]
mov qword [rbp + 0x200], rcx
mov rcx, qword [0x1402cdfd0]
mov qword [rbp + 0x208], rcx
mov rcx, qword [rax]
mov qword [rbp + 0x1f0], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x1f8], rax
lea rcx, [rbp + 0x210]
lea rdx, [rbp + 0x200]
lea r8, [rbp + 0x1f0]
sub rsp, 0x20
call fcn.140222dbf
mov rax, qword [rbp + 0x148]
add rsp, 0x20
mov rcx, qword [rbp + 0x210]
mov qword [rbp], rcx
mov rcx, qword [rbp + 0x218]
mov qword [rbp + 8], rcx
cmp byte [rax], 0
jne 0x14022bafc
mov ax, 0xe6ef
xor ax, 0xe122
mov word [rbp + 0x22c], ax
lea rcx, [rbp + 0x22c]
sub rsp, 0x20
call fcn.140067cc0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x148]
mov qword [rbp - 8], rcx
cmp byte [rax], 0
jne 0x14022babd
mov rax, qword [rbp - 8]
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp]
mov qword [rbp + 0x1d0], rdx
mov qword [rbp + 0x1d8], rcx
mov rcx, qword [rax]
mov qword [rbp + 0x1c0], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x1c8], rax
lea rcx, [rbp + 0x1e0]
lea rdx, [rbp + 0x1d0]
lea r8, [rbp + 0x1c0]
sub rsp, 0x20
call fcn.140222dbf
mov rax, qword [rbp + 0x148]
add rsp, 0x20
mov rcx, qword [rbp + 0x1e0]
mov qword [rbp - 0x18], rcx
mov rcx, qword [rbp + 0x1e8]
mov qword [rbp - 0x10], rcx
cmp byte [rax], 0
jne 0x14022babd
mov rdx, qword [rbp + 0x140]
mov rax, qword [rbp + 0x3d0]
mov qword [rdx], rax
mov rax, qword [rbp + 0x3d8]
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x1b0]
sub rsp, 0x20
call fcn.1400f8cb0
mov rax, qword [rbp + 0x148]
add rsp, 0x20
mov rcx, qword [rbp + 0x1b0]
mov qword [rbp - 0x28], rcx
mov rcx, qword [rbp + 0x1b8]
mov qword [rbp - 0x20], rcx
cmp byte [rax], 0
jne 0x14022b91e
lea rcx, [rbp + 0x220]
mov edx, 8
sub rsp, 0x20
call fcn.140222b40
mov rcx, qword [rbp + 0x120]
mov r9, qword [rbp - 0x18]
mov r8, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
add rsp, 0x20
mov rcx, qword [rcx]
add rcx, 0x18
mov qword [rbp + 0x1a0], r9
mov qword [rbp + 0x1a8], r8
mov qword [rbp + 0x190], rdx
mov qword [rbp + 0x198], rax
lea rdx, [rbp + 0x1a0]
lea r8, [rbp + 0x190]
sub rsp, 0x20
call fcn.14013c990
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x148]
mov qword [rbp - 0x30], rcx
mov al, byte [rax]
mov cl, 0x71
xor cl, 0x71
cmp al, cl
jne 0x14022b8d1
mov rcx, qword [rbp - 0x30]
sub rsp, 0x20
call fcn.14009df72
add rsp, 0x20
mov rax, qword [rbp - 0x20]
cmp rax, 0
je 0x14022b91e
mov rax, qword [rbp - 0x20]
mov rcx, qword [rax]
mov rdx, 0xffffffffffffffff
movabs rax, 0x4000000000000000
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, rcx
cmp rax, 0
jne 0x14022b91e
mov rcx, qword [rbp - 0x20]
sub rsp, 0x20
call fcn.14000f4df
add rsp, 0x20
mov rax, qword [rbp - 0x10]
cmp rax, 0
je 0x14022babd
mov rax, qword [rbp - 0x10]
mov rcx, qword [rax]
mov rax, rcx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
and rax, rcx
mov rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
xor rcx, rdx
movabs rdx, 0x3fc09bc3f70c95ab
movabs r8, 0x7fc09bc3f70c95ab
xor rdx, r8
movabs r8, 0xd6107c1062c43a70
movabs r9, 0x29ef83ef9d3bc58f
xor r8, r9
xor rdx, r8
and rcx, rdx
or rax, rcx
xor rax, 0xffffffffffffffff
movabs rcx, 0x3c9a1428c6ae257a
movabs rdx, 0x3c9a1428c6ae257a
xor rcx, rdx
cmp rax, rcx
jne 0x14022babd
mov eax, dword [0x14024ff78]
mov edx, dword [0x14024ff7c]
mov ecx, 0x225aeaa7
xor ecx, 0xdda51558
xor eax, ecx
xor edx, 0xffffffff
mov ecx, 0x3c28c87d
xor ecx, 0xaa15f53b
mov r8d, 0xab1f3687
xor r8d, 0x54e0c978
xor ecx, r8d
or eax, edx
or ecx, 0x963d3d46
mov edx, 0x9b7bbcd3
xor edx, 0x6484432c
xor eax, edx
and eax, ecx
mov ecx, 0x93908856
xor ecx, 0xd3760bca
mov edx, 0xf873cb28
xor edx, 0x78c34d7
xor ecx, edx
add eax, ecx
mov ecx, 0xea43c8c5
xor ecx, 0xea43c8c4
add eax, ecx
mov ecx, 0x12c40af8
xor edx, edx
div ecx
add eax, 0x1ab46192
mov ecx, 0xdf082365
xor ecx, 0xabb5e14c
cmp eax, ecx
ja 0x14022c326
mov rcx, qword [rbp - 0x10]
mov eax, dword [0x14024ff80]
mov r8d, dword [0x14024ff84]
mov r9d, eax
xor r9d, 0xffffffff
mov edx, r8d
and edx, r9d
xor r8d, 0xffffffff
and eax, r8d
or edx, eax
mov eax, 0xdb1a6d49
xor eax, 0x4be930de
add edx, eax
add edx, 0x496a2bbe
sub edx, 0x90f35d97
xor edx, 0x122bf37c
mov eax, edx
and eax, 0x1a51b503
xor edx, 0x1a51b503
or eax, edx
mov dword [rbp - 0x34], eax
sub rsp, 0x20
call fcn.14000f4df
mov eax, dword [rbp - 0x34]
add rsp, 0x20
cmp eax, 0x59ef72f3
jbe 0x14022ba46
jmp 0x14022babd
mov rax, qword [rbp + 8]
cmp rax, 0
je 0x14022bb01
mov rcx, qword [rbp + 8]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x14022bb01
mov rcx, qword [rbp + 8]
sub rsp, 0x20
call fcn.14000f4df
add rsp, 0x20
jmp 0x14022bb01
jmp 0x14022bf86
mov rax, qword [rbp + 0x148]
mov al, byte [rax]
mov cl, 0x1d
xor cl, 0x1d
cmp al, cl
jne 0x14022bf86
mov ecx, 0x730
sub rsp, 0x20
call fcn.140067b58
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x148]
mov qword [rbp - 0x40], rcx
mov al, byte [rax]
mov cl, 0xa2
xor cl, 0xa2
cmp al, cl
jne 0x14022bf86
mov eax, dword [0x14024ff88]
mov ecx, dword [0x14024ff8c]
xor ecx, 0x3b863b96
sub eax, 0xab06aa41
add eax, ecx
add eax, 0xab06aa41
mov edx, 0x4c23fbd5
xor edx, 0xf8f26671
mov ecx, eax
and ecx, edx
shl ecx, 1
add eax, 0xb4d19da4
sub eax, ecx
mov ecx, 0xf348ef1a
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
or eax, 0x5c6994b5
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x5c6994b5
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0xd6810fe5
xor ecx, 0x13dfc268
cmp eax, ecx
jae 0x14022c32f
mov rcx, qword [rbp - 0x40]
mov eax, dword [0x14024ff90]
add eax, dword [0x14024ff94]
xor edx, edx
sub edx, eax
xor eax, eax
sub eax, 0x1d59e89b
add edx, eax
xor eax, eax
sub eax, edx
xor edx, edx
sub edx, 0x3a1f01f6
add eax, edx
and eax, 0xc7e96729
cmp rcx, qword [rbp + 0x3d0]
setl cl
mov byte [rbp - 0x41], cl
cmp eax, 0xe66f05f6
ja 0x14022c32f
mov al, byte [rbp - 0x41]
test al, 1
jne 0x14022bd08
jmp 0x14022bc12
mov eax, dword [0x14024ff98]
mov edx, dword [0x14024ff9c]
mov ecx, eax
and ecx, edx
mov r8d, 0xe4a486a8
xor r8d, 0xe4a486aa
imul ecx, r8d
xor eax, edx
add eax, ecx
mov edx, 0xdd826740
xor edx, 0x227d98bf
mov ecx, eax
xor ecx, edx
and ecx, 0x96782ea6
mov edx, 0xffffffff
xor edx, 0x96782ea6
and eax, edx
sub eax, ecx
mov ecx, 0x4ee4f54f
xor ecx, 0x5d0b2e7c
xor eax, ecx
mov ecx, 0x6cbe4960
xor ecx, 0x22a4c60a
xor edx, edx
div ecx
mov ecx, 0xe6d11b0f
xor ecx, 0x9b6d1dbd
cmp eax, ecx
jae 0x14022c338
mov eax, dword [0x14024ffa0]
mov ecx, dword [0x14024ffa4]
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0x22cf03
or eax, 0x1000030
and eax, ecx
and eax, 0x122cf33
add eax, 0x9ff4ce56
mov dword [rbp - 0x48], eax
sub rsp, 0x20
mov cx, 0xd8c
call fcn.140067b58
mov rcx, qword [rbp + 0x148]
mov r8d, dword [rbp + 0x2c]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x48]
mov cl, byte [rcx]
test cl, cl
sete cl
movsxd r8, r8d
sub rdx, r8
setl dl
and cl, dl
mov byte [rbp - 0x42], cl
cmp eax, 0xea8130fa
je 0x14022bc8a
mov al, byte [rbp - 0x42]
test al, 1
jne 0x14022bd08
jmp 0x14022bf86
mov edx, 8
sub rsp, 0x20
mov rcx, rdx
call fcn.1400129fd
add rsp, 0x20
mov qword [rbp - 0x60], rax
mov ecx, 0x30
mov edx, 8
sub rsp, 0x20
call fcn.14001bdf0
mov rdx, qword [rbp - 0x60]
add rsp, 0x20
mov qword [rbp - 0x58], rax
mov qword [rax], 0
mov dword [rax + 8], 3
mov dword [rax + 0xc], 1
lea rcx, [rbp + 0x180]
sub rsp, 0x20
call fcn.1400850dd
mov rax, qword [rbp - 0x58]
mov rcx, qword [rbp + 0x148]
add rsp, 0x20
mov rdx, qword [rbp + 0x180]
mov qword [rax + 0x10], rdx
mov rdx, qword [rbp + 0x188]
mov qword [rax + 0x18], rdx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp - 0x49], al
jne 0x14022bdd9
mov rdx, qword [rbp - 0x58]
mov rax, qword [rbp + 0x120]
mov rcx, qword [0x14025a2a0]
mov qword [rdx + 0x20], rcx
mov rcx, qword [0x14025a2a8]
mov qword [rdx + 0x28], rcx
mov rax, qword [rax]
mov rcx, qword [rax + 0x20]
sub rsp, 0x20
call fcn.1400269a1
mov rax, qword [rbp + 0x148]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp - 0x49], al
mov al, byte [rbp - 0x49]
mov byte [rbp - 0x61], al
mov edx, dword [0x14024ffa8]
mov ecx, dword [0x14024ffac]
xor ecx, 0xb90e7b58
mov r11d, edx
xor r11d, 0xffffffff
and r11d, 0x67d086f
mov r8d, 0xffffffff
xor r8d, 0x67d086f
and edx, r8d
mov r9d, 0xe1d1a8a5
xor r9d, 0x1e2e575a
mov eax, ecx
xor eax, r9d
mov r9d, 0x759b74c9
xor r9d, 0x73e67ca6
and eax, r9d
and ecx, r8d
or r11d, edx
or eax, ecx
xor r11d, eax
mov ecx, r11d
xor ecx, 0xffffffff
mov r8d, 0xe6ec7276
xor r8d, 0x633d397c
mov eax, 0xe34a82bf
xor eax, 0x1cb57d40
xor r8d, eax
mov edx, 0x502ee281
xor edx, 0x74eacb5c
mov eax, 0xd057d83d
xor eax, 0x2fa827c2
xor edx, eax
mov eax, ecx
and eax, 0x24c429dd
and r11d, edx
mov r9d, r8d
and r9d, 0x24c429dd
mov r10d, edx
and r10d, 0x85d14b0a
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, r8d
mov r8d, 0x82c9c0fa
xor r8d, 0x7d363f05
xor ecx, r8d
or edx, 0x24c429dd
and ecx, edx
or eax, ecx
xor eax, 0xef4e97d
sub eax, 0xd7021f71
sub eax, 0xac2a514a
add eax, 0xd7021f71
cmp eax, 0xc09321fb
je 0x14022c341
mov rcx, qword [rbp - 0x60]
mov eax, dword [0x14024ffb0]
mov edx, 0xa9d65505
xor edx, 0xdb5bebd1
xor eax, edx
xor edx, edx
div dword [0x14024ffb4]
mov r8d, 0xde8e329d
xor edx, edx
div r8d
mov edx, eax
mov rax, qword [rbp + 0x148]
mov r8d, 0xab535777
xor r8d, 0x263a02a9
sub edx, r8d
add edx, 0xe3debb59
add edx, 0x8d6955de
and edx, 0x90cabcd8
mov dword [rbp - 0x68], edx
mov edx, 0x43cebb65
xor edx, 0x6664a611
mov dword [rbp - 0x6c], edx
mov byte [rax], 0
sub rsp, 0x20
call fcn.14021e26b
mov rdx, qword [rbp + 0x148]
mov ecx, dword [rbp - 0x6c]
mov eax, dword [rbp - 0x68]
add rsp, 0x20
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x62], dl
cmp eax, ecx
je 0x14022bed6
mov al, byte [rbp - 0x62]
test al, 1
jne 0x14022bf7a
jmp 0x14022bf86
mov rax, qword [rbp + 0x148]
mov cl, byte [rbp - 0x61]
mov byte [rax], cl
mov rax, qword [rbp + 0x50]
cmp rax, 0
je 0x14022c0cd
mov rax, qword [rbp + 0x50]
mov rcx, qword [rax]
mov rax, rcx
xor rax, 0xffffffffffffffff
movabs rdx, 0xaeb07f8c36b8a6e
movabs r8, 0x4aeb07f8c36b8a6e
xor rdx, r8
movabs r8, 0x18bf86a31e1c7278
movabs r9, 0xe740795ce1e38d87
xor r8, r9
xor rdx, r8
or rax, rdx
movabs rdx, 0x4000000000000000
and rcx, rdx
xor rcx, 0xffffffffffffffff
and rax, rcx
xor rax, 0xffffffffffffffff
cmp rax, 0
jne 0x14022c0cd
mov eax, dword [0x14024ffb8]
mov ecx, dword [0x14024ffbc]
mov edx, 0xf9538603
xor edx, 0xfe1d17d0
xor ecx, edx
xor edx, edx
div ecx
mov ecx, eax
mov edx, 0xffffffff
xor edx, 0x588a6050
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0x9dede651
xor ecx, 0xe0ae7f60
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xc0e3e36
xor edx, 0xf3f1c1c9
xor ecx, edx
and eax, ecx
mov ecx, 0xc85893b0
xor ecx, 0xebef69d9
mov edx, 0x8519a5e6
xor edx, 0x7ae65a19
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x23b7fa69
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0xd5edeccc
je 0x14022c34a
mov rcx, qword [rbp + 0x50]
mov eax, dword [0x14024ffc0]
sub eax, dword [0x14024ffc4]
imul eax, eax, 0x83021876
and eax, 0x9f7934d1
mov edx, 0x4b6527e3
xor edx, 0xd213cb30
or eax, edx
mov dword [rbp - 0x70], eax
sub rsp, 0x20
call fcn.14000f4df
mov eax, dword [rbp - 0x70]
add rsp, 0x20
cmp eax, 0x100e5703
jb 0x14022c34a
jmp 0x14022c0cd
mov ecx, dword [0x14024ffc8]
mov edx, dword [0x14024ffcc]
xor eax, eax
sub eax, edx
add ecx, eax
xor ecx, 0x8e645ed7
mov eax, ecx
and eax, 0x755a786
mov edx, 0xcf7845c4
xor edx, 0xc82de242
xor ecx, edx
or eax, ecx
mov r8d, 0xffffffff
xor r8d, 0xf8ba205d
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xf8ba205d
or eax, 0xf8ba205d
imul eax, edx
add eax, ecx
cmp eax, 0x3e13f05b
ja 0x14022c353
mov rcx, qword [rbp + 0xc8]
mov eax, dword [0x14024ffd0]
xor eax, dword [0x14024ffd4]
imul eax, eax, 0x99cd9651
xor eax, 0xffffffff
mov r8d, 0x582f87aa
xor r8d, 0xc38f77a5
mov edx, 0x2f071f0b
xor edx, 0xd0f8e0f4
xor r8d, edx
mov edx, 0xffffffff
xor edx, 0xa0d89c7a
or eax, r8d
or edx, 0xa0d89c7a
mov r8d, 0xfe1cf591
xor r8d, 0x1e30a6e
xor eax, r8d
and eax, edx
xor edx, edx
sub edx, eax
xor eax, eax
sub eax, 0xba2f35f1
add edx, eax
xor eax, eax
sub eax, edx
cmp rcx, 0
sete cl
mov byte [rbp - 0x71], cl
cmp eax, 0xf7cd798e
ja 0x14022c135
mov al, byte [rbp - 0x71]
test al, 1
jne 0x14022c237
jmp 0x14022c1c8
mov rax, qword [rbp + 0xc8]
mov rcx, qword [rax]
mov rax, rcx
xor rax, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
xor rdx, r8
or rax, rdx
movabs rdx, 0xa32f13f77fd50fb4
movabs r8, 0xe32f13f77fd50fb4
xor rdx, r8
and rcx, rdx
xor rcx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
or rax, rcx
cmp rax, 0
jne 0x14022c237
mov rcx, qword [rbp + 0xc8]
sub rsp, 0x20
call fcn.14000f4df
add rsp, 0x20
mov rax, qword [rbp + 0x3d0]
mov qword [rbp + 0x170], rax
mov rax, qword [rbp + 0x3d8]
mov qword [rbp + 0x178], rax
lea rcx, [rbp + 0x170]
sub rsp, 0x20
call fcn.140030cfc
mov rax, qword [rbp + 0x148]
add rsp, 0x20
cmp byte [rax], 0
je 0x14022c2f9
sub rsp, 0x20
call fcn.140222ede
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
cmp word [rax + 0x12], 1
jle 0x14022c2f9
mov rax, qword [rbp - 0x80]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xc5722261
jne 0x14022c2f9
mov rax, qword [rbp + 0x148]
mov cl, 0xcb
xor cl, 0xcb
mov byte [rax], cl
sub rsp, 0x20
call fcn.140222ef0
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.14009c190
mov rax, qword [rbp + 0x148]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x35
xor cl, 0x35
cmp al, cl
jne 0x14022c2f9
sub rsp, 0x20
call fcn.140222ca0
add rsp, 0x20
lea rsp, [rbp + 0x3e0]
pop rbp
ret
sar ebx, 1
out 0x54, al
jmp 0x14022a90c
ret
invalid
insd dword [rdi], dx
call qword [rcx + rcx*8 - 0xd2d17]
invalid
call 0x1293d1c31
invalid
invalid
invalid
sbb eax, edi
mov dl, 0xfc
jmp 0x14022bed6
xor al, 0x24
and esp, dword [rax]
jmp 0x14022c082
and edx, esp
int3