Function at 0x180096080
Capabilities:
Encode data using base64
Encrypt data using speck
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], r8
mov byte [rsp + 0x10], dl
mov dword [rsp + 8], ecx
mov eax, 0x2b08
call fcn.1800f9f30
sub rsp, rax
mov dword [rsp + 0x928], 0x6fb921
mov rax, qword [0x180146cf8]
mov word [rsp + 0x4c], ax
movzx eax, byte [0x180146bee]
movsx eax, al
mov dword [rsp + 0x60], eax
movzx eax, byte [0x180146c2f]
mov byte [rsp + 0x44], al
mov qword [rsp + 0x70], 0x16c5ca51
mov rax, qword [0x180146d68]
mov qword [rsp + 0x68], rax
movzx eax, word [0x180146d58]
mov byte [rsp + 0x42], al
mov qword [rsp + 0x80], 0x18
movabs rax, 0xb820a3464a87d
mov qword [rsp + 0x78], rax
mov eax, 0x8c1
mov word [rsp + 0x54], ax
mov byte [rsp + 0x40], 7
movzx eax, byte [0x180146c87]
movzx eax, al
mov qword [rsp + 0x90], rax
mov byte [rsp + 0x43], 0x2d
mov eax, dword [0x180146c04]
mov dword [rsp + 0x64], eax
mov byte [rsp + 0x46], 0x53
mov dword [rsp + 0x58], 0xe5
movzx eax, byte [0x180146bc7]
movsx eax, al
mov dword [rsp + 0x5c], eax
mov rax, qword [0x180146cf8]
mov qword [rsp + 0x98], rax
movzx eax, byte [0x180146d2c]
mov byte [rsp + 0x45], al
movzx eax, word [0x180146d60]
mov word [rsp + 0x48], ax
movzx eax, word [0x180146d60]
mov qword [rsp + 0x88], rax
movzx eax, byte [0x180146d2c]
mov byte [rsp + 0x41], al
mov eax, 0x90
mov word [rsp + 0x50], ax
mov eax, 0xb821
mov word [rsp + 0x770], ax
movzx eax, word [0x180146c5c]
mov word [rsp + 0x76c], ax
mov dword [rsp + 0x92c], 0x40babe5e
mov qword [rsp + 0x9e0], 0xe9e5
mov byte [rsp + 0x198], 0x18
movzx eax, byte [0x180146c03]
mov byte [rsp + 0x120], al
movzx eax, byte [0x180146d08]
mov byte [rsp + 0x1f4], al
mov eax, 0x2819
mov word [rsp + 0x764], ax
movzx eax, word [0x180146d28]
mov byte [rsp + 0x1f5], al
mov dword [rsp + 0x930], 0x24
movzx eax, byte [0x180146c5f]
mov word [rsp + 0x760], ax
mov qword [rsp + 0x9e8], 0xb8e3
mov dword [rsp + 0x934], 0xfa026150
mov eax, 0x2612
mov word [rsp + 0x75c], ax
movzx eax, byte [0x180146d3c]
mov byte [rsp + 0x1f6], al
mov eax, 0x5b
mov word [rsp + 0x6e8], ax
movzx eax, byte [rsp + 0x46]
movsx eax, al
cmp dword [0x180146c44], eax
jne 0x180096282
mov dword [rsp + 0x5ec], 1
jmp 0x18009628d
mov dword [rsp + 0x5ec], 0
cmp dword [0x180146c44], 0x42
jne 0x1800962a3
mov dword [rsp + 0x5e8], 1
jmp 0x1800962ae
mov dword [rsp + 0x5e8], 0
mov eax, dword [rsp + 0x5e8]
cmp dword [rsp + 0x5ec], eax
jg 0x1800962f0
mov eax, 0x9c9feaaf
mov rcx, qword [rsp + 0x70]
and rcx, rax
mov rax, rcx
mov qword [rsp + 0x80], rax
movzx eax, word [rsp + 0x48]
movzx ecx, word [rsp + 0x4c]
sub eax, ecx
movzx ecx, word [rsp + 0x48]
add ecx, eax
mov eax, ecx
mov word [rsp + 0x48], ax
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x128], eax
movzx eax, byte [0x180146c87]
movzx eax, al
movzx ecx, word [0x180146d60]
xor eax, ecx
mov byte [0x180146c87], al
movzx eax, byte [0x180146bef]
movzx eax, al
movsx ecx, word [0x180146d10]
xor eax, ecx
mov word [rsp + 0x54], ax
mov eax, dword [rsp + 0x128]
add eax, 0x1fe
mov dword [rsp + 0x938], eax
movzx eax, byte [rsp + 0x42]
movsx eax, al
movzx ecx, byte [0x180146c42]
movsx ecx, cl
cmp eax, ecx
jge 0x180096364
mov dword [rsp + 0x5f4], 1
jmp 0x18009636f
mov dword [rsp + 0x5f4], 0
movzx eax, byte [rsp + 0x42]
movsx eax, al
cmp eax, 0x1b
jge 0x180096389
mov dword [rsp + 0x5f0], 1
jmp 0x180096394
mov dword [rsp + 0x5f0], 0
mov eax, dword [rsp + 0x5f0]
cmp dword [rsp + 0x5f4], eax
jge 0x18009654b
mov dword [0x180146d34], 3
mov eax, dword [0x180146d34]
mov dword [rsp + 0x124], eax
cmp dword [rsp + 0x124], 0
je 0x1800963ea
cmp dword [rsp + 0x124], 1
je 0x1800964ec
cmp dword [rsp + 0x124], 3
je 0x18009651c
jmp 0x180096549
movzx eax, byte [0x180146c43]
test eax, eax
jne 0x180096403
mov qword [rsp + 0x8d0], 1
jmp 0x18009640f
mov qword [rsp + 0x8d0], 0
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x8d0]
xor rcx, rax
mov rax, rcx
test rax, rax
jne 0x180096438
mov qword [rsp + 0x8d8], 1
jmp 0x180096444
mov qword [rsp + 0x8d8], 0
mov rax, qword [0x180146d68]
imul rax, rax, 0x4c118ec7
add rax, qword [rsp + 0x8d8]
test rax, rax
jne 0x18009646c
mov dword [rsp + 0x200], 1
jmp 0x180096477
mov dword [rsp + 0x200], 0
movsx eax, word [0x180146d10]
imul eax, dword [rsp + 0x5c]
test eax, eax
jne 0x180096494
mov dword [rsp + 0x1fc], 1
jmp 0x18009649f
mov dword [rsp + 0x1fc], 0
mov eax, dword [rsp + 0x58]
imul eax, dword [rsp + 0x1fc]
mov ecx, dword [rsp + 0x200]
sub ecx, eax
mov eax, ecx
mov word [rsp + 0x54], ax
movzx eax, byte [0x180146bef]
movzx eax, al
mov rcx, qword [rsp + 0x80]
imul rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x80]
or rcx, rax
mov rax, rcx
mov qword [rsp + 0x80], rax
jmp 0x180096549
mov rax, qword [0x180146d40]
imul rax, rax, 0x37651a88
mov byte [rsp + 0x42], al
movzx eax, byte [0x180146c2f]
movsx eax, al
movzx ecx, byte [rsp + 0x40]
movzx ecx, cl
sub eax, ecx
mov byte [0x180146c2f], al
jmp 0x180096549
mov eax, dword [0x180146d2c]
not eax
sub eax, dword [0x180146d38]
mov byte [rsp + 0x41], al
movzx eax, word [0x180146d0c]
movzx eax, ax
mov rcx, qword [0x180146d68]
add rax, rcx
mov word [0x180146d0c], ax
jmp 0x18009657a
movzx eax, word [rsp + 0x50]
movzx eax, ax
movabs rcx, 0x5f0c3a2f7bb2
and rax, rcx
mov ecx, dword [rsp + 0x64]
mov ecx, ecx
add rcx, rax
mov rax, rcx
mov dword [rsp + 0x64], eax
mov eax, 0x34e3
mov word [rsp + 0x50], ax
mov eax, dword [rsp + 0x128]
add eax, 0x28a
mov dword [rsp + 0x93c], eax
mov eax, dword [rsp + 0x128]
add eax, 0x1ec
mov dword [rsp + 0x27c], eax
mov rax, qword [0x180146d50]
mov byte [0x180146c87], al
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x12c], eax
movsxd rax, dword [rsp + 0x5c]
add rax, qword [rsp + 0x90]
movsxd rcx, dword [rsp + 0x5c]
add rcx, rax
mov rax, rcx
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x12c]
add eax, 0x1dd
mov dword [rsp + 0x940], eax
movzx eax, word [0x180146d28]
cwde
movzx ecx, byte [rsp + 0x45]
movzx ecx, cl
cmp eax, ecx
je 0x18009660a
mov dword [rsp + 0x208], 1
jmp 0x180096615
mov dword [rsp + 0x208], 0
movzx eax, word [0x180146d28]
cwde
cmp eax, 0x21
je 0x18009662f
mov dword [rsp + 0x204], 1
jmp 0x18009663a
mov dword [rsp + 0x204], 0
mov eax, dword [rsp + 0x204]
cmp dword [rsp + 0x208], eax
jne 0x1800967b2
movzx eax, byte [rsp + 0x43]
movzx eax, al
movzx ecx, word [rsp + 0x54]
movsx ecx, cx
mov rdx, qword [0x180146d50]
mov qword [rsp + 0x9d8], rdx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 0x53
mov r9d, dword [rsp + 0x78]
mov r8d, ecx
mov edx, dword [0x180146c04]
mov rax, qword [rsp + 0x9d8]
mov ecx, eax
call fcn.180094460
cdqe
mov qword [0x180146d40], rax
mov rax, qword [0x180146d40]
test rax, rax
je 0x180096743
movzx eax, byte [0x180146bef]
movzx eax, al
mov ecx, dword [rsp + 0x64]
cmp eax, ecx
jb 0x1800966df
movzx eax, byte [rsp + 0x43]
movzx eax, al
add eax, dword [rsp + 0x60]
movzx ecx, byte [rsp + 0x43]
movzx ecx, cl
add ecx, eax
mov eax, ecx
mov byte [rsp + 0x43], al
jmp 0x180096741
movzx eax, byte [rsp + 0x44]
movsx eax, al
test eax, eax
je 0x180096741
mov rax, qword [rsp + 0x98]
movabs rcx, 0x25f1bd7e11178
sub rax, rcx
mov dword [0x180146c44], eax
movzx eax, word [0x180146d28]
cwde
test eax, eax
je 0x180096723
movzx eax, byte [rsp + 0x41]
movsx eax, al
mov dword [rsp + 0x20c], eax
jmp 0x180096732
movzx eax, word [rsp + 0x50]
movzx eax, ax
mov dword [rsp + 0x20c], eax
movsxd rax, dword [rsp + 0x20c]
mov qword [0x180146cf8], rax
jmp 0x1800967b0
movzx eax, byte [rsp + 0x44]
movsx eax, al
movzx ecx, word [rsp + 0x4c]
cmp eax, ecx
jg 0x180096761
mov dword [rsp + 0x210], 1
jmp 0x18009676c
mov dword [rsp + 0x210], 0
movzx eax, byte [rsp + 0x40]
movzx eax, al
cmp dword [rsp + 0x210], eax
jne 0x18009678a
mov dword [rsp + 0x214], 1
jmp 0x180096795
mov dword [rsp + 0x214], 0
mov eax, dword [rsp + 0x214]
not eax
test eax, eax
je 0x1800967b0
mov eax, dword [0x180146d14]
dec eax
mov dword [0x180146d14], eax
jmp 0x1800967fe
mov rax, qword [0x180146d68]
test rax, rax
je 0x1800967fe
mov qword [rsp + 0x88], 0x20
movzx eax, byte [rsp + 0x46]
movsx eax, al
test eax, eax
jne 0x1800967e5
mov eax, 1
mov word [rsp + 0xf4], ax
jmp 0x1800967ef
xor eax, eax
mov word [rsp + 0xf4], ax
movzx eax, word [rsp + 0xf4]
mov word [0x180146d28], ax
mov eax, dword [rsp + 0x12c]
add eax, 0x80
mov dword [rsp + 0x2b4], eax
mov rax, qword [0x180146d68]
test rax, rax
je 0x18009682e
movzx eax, byte [rsp + 0x44]
movsx eax, al
mov dword [rsp + 0x218], eax
jmp 0x18009683f
movzx eax, byte [0x180146bef]
movzx eax, al
mov dword [rsp + 0x218], eax
movsxd rax, dword [rsp + 0x218]
mov qword [rsp + 0x68], rax
movzx eax, word [rsp + 0x48]
movzx ecx, byte [rsp + 0x45]
movzx ecx, cl
imul eax, ecx
mov word [rsp + 0x48], ax
mov eax, dword [rsp + 0x12c]
add eax, 0x140
mov dword [rsp + 0x2b0], eax
mov eax, dword [0x180146d64]
mov eax, eax
cmp qword [rsp + 0x80], rax
ja 0x1800968b5
movzx eax, word [0x180146d58]
movzx eax, ax
mov ecx, dword [rsp + 0x64]
imul eax, ecx
mov ecx, dword [0x180146d34]
sub ecx, dword [rsp + 0x5c]
imul eax, ecx
mov ecx, dword [0x180146d38]
imul ecx, eax
mov eax, ecx
not eax
mov byte [rsp + 0x46], al
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x134], eax
movsx eax, word [0x180146d10]
movzx ecx, byte [0x180146c42]
movsx ecx, cl
sub eax, ecx
movzx ecx, byte [rsp + 0x44]
movsx ecx, cl
xor ecx, 0x21ad5abb
xor eax, ecx
cdqe
mov ecx, dword [0x180146d34]
mov ecx, ecx
mov rdx, qword [rsp + 0x68]
xor rdx, rcx
mov rcx, rdx
movzx edx, byte [0x180146bee]
movsx edx, dl
not edx
movsxd rdx, edx
mov r8, qword [0x180146d40]
imul rdx, r8
not rdx
sub rcx, rdx
not rcx
and rax, rcx
test rax, rax
jne 0x180096933
mov qword [rsp + 0x8e0], 1
jmp 0x18009693f
mov qword [rsp + 0x8e0], 0
mov rax, qword [rsp + 0x8e0]
mov qword [0x180146d68], rax
mov eax, dword [rsp + 0x134]
add eax, 0x2de
mov dword [rsp + 0x2ec], eax
imul rax, qword [rsp + 0x68], 0xb5
mov byte [0x180146c41], al
mov eax, dword [rsp + 0x134]
add eax, 0x14c
mov dword [rsp + 0x620], eax
movsx eax, word [0x180146d30]
movzx ecx, byte [0x180146c43]
cmp eax, ecx
jle 0x1800969a2
mov dword [rsp + 0x220], 1
jmp 0x1800969ad
mov dword [rsp + 0x220], 0
movsx eax, word [0x180146d30]
cmp eax, 0x54
jle 0x1800969c6
mov dword [rsp + 0x21c], 1
jmp 0x1800969d1
mov dword [rsp + 0x21c], 0
mov eax, dword [rsp + 0x21c]
cmp dword [rsp + 0x220], eax
jg 0x180096ade
mov byte [0x180146c5b], 2
movzx eax, word [rsp + 0x50]
movzx eax, ax
xor eax, 0x9e423d66
mov eax, eax
mov qword [rsp + 0x80], rax
mov eax, dword [0x180146d4c]
mov eax, eax
movabs rcx, 0x8f3d10fe5061b
add rax, rcx
mov dword [0x180146c44], eax
movzx eax, byte [0x180146c5b]
mov byte [rsp + 0x130], al
cmp byte [rsp + 0x130], 0
je 0x180096a4f
cmp byte [rsp + 0x130], 1
je 0x180096a72
cmp byte [rsp + 0x130], 2
je 0x180096ac0
jmp 0x180096adc
movzx eax, word [0x180146d60]
mov ecx, dword [0x180146c04]
sub ecx, eax
mov eax, ecx
mov ecx, dword [0x180146c04]
and ecx, eax
mov eax, ecx
mov dword [0x180146c04], eax
jmp 0x180096adc
movzx eax, byte [rsp + 0x44]
movsx eax, al
not eax
movzx ecx, word [rsp + 0x50]
movzx ecx, cx
not ecx
sub ecx, 0x5b
movzx edx, byte [rsp + 0x42]
movsx edx, dl
sub ecx, edx
sub eax, ecx
mov dword [rsp + 0x64], eax
mov eax, dword [0x180146d48]
mov eax, eax
movabs rcx, 0x296150b7882ab
add rax, rcx
movzx ecx, word [rsp + 0x48]
and rcx, rax
mov rax, rcx
mov word [rsp + 0x48], ax
jmp 0x180096adc
mov eax, dword [0x180146d4c]
mov eax, eax
mov rcx, qword [0x180146d00]
sub rcx, rax
mov rax, rcx
mov qword [0x180146d00], rax
jmp 0x180096b12
movabs rax, 0x168af45381631
xor ecx, ecx
cmp rcx, rax
je 0x180096b12
movzx eax, word [rsp + 0x4c]
mov ecx, dword [rsp + 0x5c]
imul ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
movzx eax, byte [rsp + 0x43]
movzx eax, al
add eax, 0xb3
mov byte [rsp + 0x40], al
mov eax, dword [rsp + 0x134]
add eax, 0xe3
mov dword [rsp + 0x61c], eax
movzx eax, byte [rsp + 0x42]
movsx rax, al
cmp rax, qword [rsp + 0x70]
ja 0x180096b42
mov dword [rsp + 0x228], 1
jmp 0x180096b4d
mov dword [rsp + 0x228], 0
movzx eax, byte [rsp + 0x42]
movsx eax, al
cmp eax, 0x51
jg 0x180096b67
mov dword [rsp + 0x224], 1
jmp 0x180096b72
mov dword [rsp + 0x224], 0
mov eax, dword [rsp + 0x224]
cmp dword [rsp + 0x228], eax
je 0x180096bad
mov eax, dword [0x180146d14]
imul eax, eax, 0x3f
mov dword [0x180146d64], eax
movzx eax, byte [rsp + 0x46]
movsx eax, al
movzx ecx, byte [0x180146c86]
add eax, ecx
mov dword [0x180146d4c], eax
jmp 0x180096cca
movzx eax, byte [0x180146c5f]
mov ecx, dword [rsp + 0x60]
not ecx
cmp eax, ecx
jb 0x180096bcb
mov dword [rsp + 0x22c], 1
jmp 0x180096bd6
mov dword [rsp + 0x22c], 0
movzx eax, byte [rsp + 0x44]
movsx eax, al
mov ecx, dword [rsp + 0x22c]
imul ecx, eax
mov eax, ecx
test eax, eax
jne 0x180096c64
movzx eax, byte [rsp + 0x43]
movzx eax, al
not eax
cdqe
imul rax, qword [rsp + 0x78]
movzx ecx, word [rsp + 0x54]
movsx ecx, cx
not ecx
mov edx, 0x93
sub edx, ecx
mov ecx, edx
movsxd rcx, ecx
imul rax, rcx
test rax, rax
jne 0x180096c2d
mov qword [rsp + 0x8e8], 1
jmp 0x180096c39
mov qword [rsp + 0x8e8], 0
mov rax, qword [rsp + 0x8e8]
mov qword [rsp + 0x68], rax
movsx rax, byte [0x180146caf]
movabs rcx, 0x9633792eb74df
add rax, rcx
mov qword [0x180146d68], rax
jmp 0x180096cca
movzx eax, word [rsp + 0x4c]
test eax, eax
je 0x180096cca
movzx eax, byte [0x180146c86]
test eax, eax
jne 0x180096c85
mov dword [rsp + 0x230], 1
jmp 0x180096c90
mov dword [rsp + 0x230], 0
mov rax, qword [0x180146d50]
add rax, qword [rsp + 0x78]
movzx ecx, byte [rsp + 0x42]
movsx rcx, cl
or rax, rcx
mov ecx, dword [0x180146d14]
add ecx, dword [rsp + 0x230]
not ecx
movzx edx, word [rsp + 0x48]
imul ecx, edx
mov ecx, ecx
sub rax, rcx
mov dword [0x180146d4c], eax
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x138], eax
movzx eax, word [rsp + 0x48]
inc ax
mov word [rsp + 0x48], ax
mov eax, dword [rsp + 0x138]
add eax, 0x1ee
mov dword [rsp + 0x944], eax
mov byte [0x180146c43], 4
mov rax, qword [0x180146d18]
mov ecx, 1
imul rcx, rcx, 0x2bb
lea rdx, [0x18100db70]
mov byte [rdx + rcx], al
movzx eax, word [0x180146d0c]
movzx eax, ax
not eax
movzx ecx, byte [rsp + 0x41]
movsx ecx, cl
xor eax, ecx
test eax, eax
jne 0x180096d42
mov dword [rsp + 0x234], 1
jmp 0x180096d4d
mov dword [rsp + 0x234], 0
mov rax, qword [0x180146d18]
mov rcx, qword [rsp + 0x88]
sub rcx, rax
mov rax, rcx
mov ecx, dword [0x180146d14]
mov edx, dword [rsp + 0x60]
add edx, ecx
mov ecx, edx
mov ecx, ecx
imul rax, rcx
test rax, rax
jne 0x180096d88
mov dword [rsp + 0x238], 1
jmp 0x180096d93
mov dword [rsp + 0x238], 0
mov eax, dword [rsp + 0x234]
add eax, 0xb49b
sub eax, dword [rsp + 0x238]
cdqe
mov qword [0x180146d50], rax
movzx eax, byte [0x180146c43]
mov byte [rsp + 0xc4], al
cmp byte [rsp + 0xc4], 0
je 0x180096e00
cmp byte [rsp + 0xc4], 1
je 0x180096e34
cmp byte [rsp + 0xc4], 2
je 0x180096e9a
cmp byte [rsp + 0xc4], 3
je 0x180096ea8
cmp byte [rsp + 0xc4], 4
je 0x180096ecc
jmp 0x180096ee0
movzx eax, byte [0x180146c5f]
mov dword [0x180146d38], eax
movzx eax, byte [rsp + 0x44]
movsx eax, al
mov ecx, dword [0x180146d2c]
add ecx, eax
mov eax, ecx
mov ecx, dword [0x180146d2c]
or ecx, eax
mov eax, ecx
mov dword [0x180146d2c], eax
jmp 0x180096ee0
cmp qword [rsp + 0x78], 0
jne 0x180096e4a
mov qword [rsp + 0x8f0], 1
jmp 0x180096e56
mov qword [rsp + 0x8f0], 0
movzx eax, byte [rsp + 0x42]
movsx rax, al
movzx ecx, byte [0x180146c2f]
movsx rcx, cl
mov rdx, qword [rsp + 0x78]
sub rdx, rcx
mov rcx, rdx
and rax, rcx
mov ecx, dword [rsp + 0x58]
mov rdx, qword [0x180146d18]
add rcx, qword [rsp + 0x8f0]
add rcx, rdx
imul rax, rcx
mov byte [0x180146c43], al
jmp 0x180096ee0
mov eax, 0x1a
mov word [0x180146d28], ax
jmp 0x180096ee0
mov eax, 1
imul rax, rax, 0x4c
lea rcx, [0x18100ee30]
movzx eax, byte [rcx + rax]
movzx ecx, word [rsp + 0x4c]
or ecx, eax
mov eax, ecx
mov word [rsp + 0x4c], ax
jmp 0x180096ee0
movzx eax, byte [rsp + 0x40]
movzx eax, al
mov ecx, dword [0x180146d34]
add eax, ecx
mov byte [rsp + 0x40], al
mov eax, dword [rsp + 0x138]
add eax, 0x220
mov dword [rsp + 0x948], eax
movzx eax, byte [0x180146c42]
movsx eax, al
test eax, eax
jne 0x180096f0e
mov dword [rsp + 0x23c], 1
jmp 0x180096f19
mov dword [rsp + 0x23c], 0
movzx eax, byte [0x180146c5b]
movsx eax, al
movzx ecx, byte [rsp + 0x42]
movsx ecx, cl
xor eax, ecx
cdqe
mov ecx, dword [0x180146d34]
mov ecx, ecx
mov rdx, qword [0x180146cf8]
imul rdx, rcx
mov rcx, rdx
add rax, rcx
movzx ecx, byte [0x180146bef]
movzx ecx, cl
mov edx, dword [0x180146d64]
xor ecx, edx
movzx edx, word [rsp + 0x4c]
mov r8d, dword [rsp + 0x23c]
imul r8d, edx
mov edx, r8d
xor ecx, edx
mov ecx, ecx
imul rax, rcx
not rax
mov dword [0x180146d4c], eax
mov eax, dword [rsp + 0x138]
add eax, 0x53
mov dword [rsp + 0x39c], eax
movzx eax, word [rsp + 0x4c]
cmp eax, dword [rsp + 0x60]
jne 0x180096fa8
mov dword [rsp + 0x244], 1
jmp 0x180096fb3
mov dword [rsp + 0x244], 0
movzx eax, word [rsp + 0x4c]
cmp eax, 0x32
jne 0x180096fca
mov dword [rsp + 0x240], 1
jmp 0x180096fd5
mov dword [rsp + 0x240], 0
mov eax, dword [rsp + 0x240]
cmp dword [rsp + 0x244], eax
jg 0x180097002
movzx eax, word [rsp + 0x4c]
add eax, 0xb2ad
movzx ecx, word [rsp + 0x54]
movsx ecx, cx
sub ecx, eax
mov eax, ecx
mov word [rsp + 0x54], ax
jmp 0x18009703f
mov eax, 0xe4b6f38a
mov rcx, qword [rsp + 0x70]
sub rcx, rax
mov rax, rcx
mov word [0x180146d10], ax
mov eax, dword [rsp + 0x60]
mov rcx, qword [0x180146d50]
imul rcx, rax
mov rax, rcx
mov rcx, qword [0x180146d50]
add rcx, rax
mov rax, rcx
mov qword [0x180146d50], rax
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x13c], eax
mov qword [0x180146d40], 1
mov rax, qword [rsp + 0x98]
movabs rcx, 0xdae63f72d00f1
or rax, rcx
mov ecx, dword [rsp + 0x58]
mov rdx, qword [0x180146d00]
not rdx
imul rcx, rdx
sub rax, rcx
mov qword [0x180146d18], rax
movzx eax, byte [0x180146c5e]
dec al
mov byte [0x180146c5e], al
mov rax, qword [0x180146d40]
mov qword [rsp + 0x8f8], rax
cmp qword [rsp + 0x8f8], 0
je 0x1800970be
cmp qword [rsp + 0x8f8], 1
je 0x1800970de
jmp 0x180097117
movzx eax, byte [rsp + 0x41]
movsx eax, al
sub eax, dword [0x180146d2c]
movzx ecx, byte [rsp + 0x41]
movsx ecx, cl
add ecx, eax
mov eax, ecx
mov byte [rsp + 0x41], al
jmp 0x180097117
movzx eax, byte [rsp + 0x40]
movzx eax, al
movabs rcx, 0xdc603ca101ebc
add rax, rcx
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x80]
lea rax, [rax + rcx - 0x76504a2]
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x13c]
add eax, 0x140
mov dword [rsp + 0x408], eax
movzx eax, byte [rsp + 0x41]
movsx eax, al
movzx ecx, byte [rsp + 0x45]
movzx ecx, cl
cmp eax, ecx
jg 0x18009714b
mov dword [rsp + 0x24c], 1
jmp 0x180097156
mov dword [rsp + 0x24c], 0
movzx eax, byte [rsp + 0x41]
movsx eax, al
cmp eax, 0x1f
jg 0x180097170
mov dword [rsp + 0x248], 1
jmp 0x18009717b
mov dword [rsp + 0x248], 0
mov eax, dword [rsp + 0x248]
cmp dword [rsp + 0x24c], eax
jg 0x18009719f
mov rax, qword [rsp + 0x78]
add rax, 0x9ba7
mov word [0x180146d0c], ax
jmp 0x1800971c4
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x60], eax
mov eax, 0xbbecd4ba
mov rcx, qword [rsp + 0x80]
imul rcx, rax
mov rax, rcx
mov word [0x180146d10], ax
mov eax, dword [rsp + 0x13c]
add eax, 0x320
mov dword [rsp + 0x94c], eax
movzx eax, word [rsp + 0x54]
cwde
movzx ecx, byte [0x180146c5e]
movzx edx, byte [0x180146c5b]
movsx edx, dl
mov dword [rsp + 0x744], edx
mov dword [rsp + 0x20], 0xbc
xor r9d, r9d
mov r8d, eax
mov edx, ecx
mov eax, dword [rsp + 0x744]
mov ecx, eax
call fcn.1800950a0
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0
je 0x180097220
jmp 0x18009722d
movzx eax, byte [0x180146d38]
mov byte [0x180146c5e], al
mov eax, dword [rsp + 0x13c]
add eax, 0x15a
mov dword [rsp + 0x40c], eax
cmp qword [rsp + 0x80], 0
je 0x180097250
jmp 0x1800972e5
movsx eax, word [0x180146c5c]
imul eax, dword [rsp + 0x5c]
test eax, eax
je 0x180097286
mov rax, qword [rsp + 0x98]
imul rax, rax, 0x3869
mov qword [0x180146d18], rax
mov eax, dword [0x180146d64]
shr eax, 4
mov word [rsp + 0x50], ax
jmp 0x1800972e5
cmp qword [rsp + 0x80], 0
je 0x1800972bd
movzx eax, word [rsp + 0x50]
movzx eax, ax
movsx ecx, word [0x180146d5c]
sub eax, ecx
mov word [rsp + 0x50], ax
movzx eax, byte [rsp + 0x42]
movsx eax, al
mov ecx, dword [0x180146d4c]
add eax, ecx
mov byte [rsp + 0x42], al
jmp 0x1800972e5
movzx eax, byte [0x180146c2f]
movsx eax, al
test eax, eax
jne 0x1800972d7
movzx eax, word [0x180146d28]
cwde
test eax, eax
je 0x1800972e5
movzx eax, word [0x181001ff0]
mov word [0x180146d10], ax
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x140], eax
movzx eax, byte [0x180146c5f]
movabs rcx, 0x21db4bcf0abc1
sub rax, rcx
mov byte [0x180146c41], al
mov eax, dword [rsp + 0x140]
add eax, 0x24c
mov dword [rsp + 0x4e4], eax
movsx rax, word [0x180146d10]
mov rcx, qword [0x180146d50]
sub rax, rcx
movsx rcx, word [0x180146d10]
or rcx, rax
mov rax, rcx
mov word [0x180146d10], ax
mov eax, dword [rsp + 0x140]
add eax, 0x348
mov dword [rsp + 0x6ec], eax
mov eax, dword [rsp + 0x140]
add eax, 0x318
mov dword [rsp + 0x6f0], eax
movzx eax, word [rsp + 0x4c]
sub eax, 0x5671c830
mov byte [0x180146c5f], al
mov eax, dword [0x180146d38]
sub eax, 0xee77
mov eax, eax
mov rcx, qword [rsp + 0x98]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x98], rax
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x144], eax
movzx eax, word [rsp + 0x50]
movzx eax, ax
movzx ecx, byte [rsp + 0x41]
movsx ecx, cl
mov dword [rsp + 0x28], 0
mov edx, dword [0x180146d14]
mov dword [rsp + 0x20], edx
xor r9d, r9d
mov r8d, 0xad
mov edx, eax
call fcn.180094460
mov word [0x180146d08], ax
movsx eax, word [0x180146d08]
test eax, eax
jle 0x18009753d
cmp dword [0x180146c04], 0
je 0x18009746e
cmp qword [0x180146cf0], 0
jne 0x180097414
mov dword [rsp + 0x250], 1
jmp 0x18009741f
mov dword [rsp + 0x250], 0
movabs rax, 0x756e542ad0404
mov rcx, qword [rsp + 0x88]
or rcx, rax
mov rax, rcx
movzx ecx, byte [0x180146bc7]
movsx ecx, cl
mov edx, dword [rsp + 0x250]
add edx, ecx
mov ecx, edx
not ecx
movsxd rcx, ecx
or rax, rcx
xor rax, qword [rsp + 0x88]
mov qword [rsp + 0x98], rax
mov byte [rsp + 0x46], 0x2a
jmp 0x18009753d
movzx eax, byte [rsp + 0x45]
movzx eax, al
cmp qword [rsp + 0x80], rax
jne 0x18009748e
mov qword [rsp + 0x908], 1
jmp 0x18009749a
mov qword [rsp + 0x908], 0
movzx eax, byte [0x180146c86]
test eax, eax
jne 0x1800974b3
mov qword [rsp + 0x900], 1
jmp 0x1800974bf
mov qword [rsp + 0x900], 0
mov rax, qword [0x180146cf8]
mov rcx, qword [rsp + 0x900]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x908]
imul rcx, rax
mov rax, rcx
test rax, rax
je 0x18009753d
mov rax, qword [rsp + 0x90]
sub rax, 0x59f0b407
mov rcx, qword [rsp + 0x70]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x70], rax
movzx eax, word [rsp + 0x48]
test eax, eax
je 0x180097520
movzx eax, byte [0x180146c86]
mov qword [rsp + 0x8b0], rax
jmp 0x18009752d
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x8b0], rax
mov rax, qword [rsp + 0x8b0]
mov qword [rsp + 0x90], rax
mov eax, dword [rsp + 0x144]
add eax, 0x88d2
mov dword [rsp + 0x748], eax
mov rax, qword [0x180146d68]
test rax, rax
je 0x180097581
movzx eax, byte [0x180146c5b]
movsx eax, al
movzx ecx, word [0x180146d28]
movsx ecx, cx
cmp eax, ecx
jg 0x180097581
mov dword [rsp + 0x258], 1
jmp 0x18009758c
mov dword [rsp + 0x258], 0
movzx eax, byte [rsp + 0x44]
movsx eax, al
not eax
cdqe
mov rcx, qword [0x180146d20]
add rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 0x60]
cmp rax, rcx
jbe 0x1800975bb
mov dword [rsp + 0x254], 1
jmp 0x1800975c6
mov dword [rsp + 0x254], 0
mov eax, dword [rsp + 0x254]
cmp dword [rsp + 0x258], eax
jge 0x1800975db
jmp 0x1800976c4
movzx eax, word [0x180146d28]
cwde
test eax, eax
je 0x180097629
mov byte [rsp + 0x46], 0x6d
movsx eax, byte [0x180146caf]
test eax, eax
je 0x180097608
mov rax, qword [0x180146d00]
mov qword [rsp + 0x918], rax
jmp 0x180097617
movzx eax, byte [0x180146c43]
mov qword [rsp + 0x918], rax
mov rax, qword [rsp + 0x918]
mov qword [rsp + 0x68], rax
jmp 0x1800976c4
movzx eax, word [0x180146d28]
cwde
cmp eax, dword [rsp + 0x58]
jb 0x180097644
mov dword [rsp + 0x264], 1
jmp 0x18009764f
mov dword [rsp + 0x264], 0
cmp dword [rsp + 0x5c], 0
jne 0x180097663
mov dword [rsp + 0x25c], 1
jmp 0x18009766e
mov dword [rsp + 0x25c], 0
mov eax, dword [0x180146d14]
cmp eax, dword [rsp + 0x25c]
jb 0x18009768a
mov dword [rsp + 0x260], 1
jmp 0x180097695
mov dword [rsp + 0x260], 0
mov eax, dword [rsp + 0x260]
mov ecx, dword [rsp + 0x264]
or ecx, eax
mov eax, ecx
test eax, eax
je 0x1800976c4
movzx eax, byte [0x180146c2e]
dec eax
movzx ecx, byte [rsp + 0x43]
movzx ecx, cl
sub ecx, eax
mov eax, ecx
mov byte [rsp + 0x43], al
mov eax, dword [rsp + 0x144]
add eax, 0x58
mov dword [rsp + 0x278], eax
movzx eax, byte [0x180146c5b]
movsx eax, al
movzx ecx, byte [rsp + 0x46]
movsx ecx, cl
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9d, eax
mov r8d, 0x1e
mov edx, ecx
mov ecx, 0x44
call fcn.180094460
mov dword [0x180146d34], eax
mov eax, dword [0x180146d34]
test eax, eax
je 0x1800977b0
mov eax, 1
mov word [rsp + 0x54], ax
movzx eax, byte [0x180146c5b]
movsx eax, al
imul eax, dword [0x180146c44]
mov byte [0x180146c5b], al
movzx eax, word [rsp + 0x54]
cwde
mov dword [rsp + 0x268], eax
cmp dword [rsp + 0x268], 0
je 0x180097764
cmp dword [rsp + 0x268], 1
je 0x180097776
jmp 0x1800977b0
movsx eax, word [0x180146d3c]
add eax, 0xb07d
mov byte [rsp + 0x46], al
jmp 0x1800977b0
movsx rax, word [0x180146d3c]
movabs rcx, 0x48999a11227a5
imul rax, rcx
mov word [0x180146d58], ax
movabs rax, 0xa07a6562b2956
mov rcx, qword [rsp + 0x90]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x70], rax
mov eax, dword [rsp + 0x144]
add eax, 0xdba3
mov dword [rsp + 0x950], eax
movzx eax, byte [rsp + 0x45]
movzx eax, al
cmp dword [rsp + 0x60], eax
jbe 0x1800977de
mov dword [rsp + 0x270], 1
jmp 0x1800977e9
mov dword [rsp + 0x270], 0
cmp dword [rsp + 0x60], 0x52
jbe 0x1800977fd
mov dword [rsp + 0x26c], 1
jmp 0x180097808
mov dword [rsp + 0x26c], 0
mov eax, dword [rsp + 0x26c]
cmp dword [rsp + 0x270], eax
jg 0x180097880
mov rax, qword [rsp + 0x98]
test rax, rax
jne 0x180097832
mov dword [rsp + 0x274], 1
jmp 0x18009783d
mov dword [rsp + 0x274], 0
movzx eax, word [0x180146d58]
movzx eax, ax
cmp eax, dword [rsp + 0x274]
jle 0x180097866
movzx eax, byte [rsp + 0x43]
movzx eax, al
shl eax, 2
cdqe
mov qword [0x180146d40], rax
jmp 0x18009787e
movzx eax, byte [rsp + 0x42]
movsx eax, al
sar eax, 4
mov byte [0x180146bef], al
mov byte [str.U_This_legacy_API_is], 0xb9
jmp 0x1800978ac
mov dword [0x180146d64], 0xf5
movzx eax, byte [rsp + 0x43]
movzx eax, al
movzx ecx, byte [rsp + 0x43]
movzx ecx, cl
and eax, ecx
movzx ecx, byte [rsp + 0x43]
movzx ecx, cl
add ecx, eax
mov eax, ecx
mov byte [rsp + 0x43], al
mov rax, qword [0x180146d20]
sub rax, 0x25
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x98]
inc rax
mov qword [rsp + 0x98], rax
mov eax, dword [rsp + 0x748]
imul eax, eax, 0xe94f
mov ecx, dword [rsp + 0x278]
mov edx, dword [rsp + 0x278]
or ecx, edx
imul eax, ecx
mov eax, eax
movabs rcx, 0x2adcf736d1
xor rax, rcx
mov ecx, dword [rsp + 0x27c]
mov edx, dword [rsp + 0x27c]
sub ecx, edx
mov ecx, ecx
add rax, rcx
mov dword [rsp + 0x630], eax
mov rax, qword [0x180146d68]
mov dword [rsp + 0x20], 0
mov r9d, 0x69
mov r8d, 0x66
mov edx, 0x71
mov ecx, eax
call fcn.1800950a0
mov byte [0x180146c43], al
movzx eax, byte [0x180146c43]
test eax, eax
je 0x180097a26
mov eax, dword [0x180146d34]
test eax, eax
jne 0x180097976
movzx eax, word [rsp + 0x54]
cwde
test eax, eax
jne 0x180097976
mov dword [rsp + 0x288], 0
jmp 0x180097981
mov dword [rsp + 0x288], 1
movzx eax, byte [rsp + 0x46]
movsx eax, al
test eax, eax
je 0x1800979a8
movzx eax, byte [str.U_This_legacy_API_is]
movsx eax, al
test eax, eax
je 0x1800979a8
mov dword [rsp + 0x280], 1
jmp 0x1800979b3
mov dword [rsp + 0x280], 0
movzx eax, byte [rsp + 0x45]
movzx eax, al
cmp dword [rsp + 0x280], eax
jge 0x1800979d1
mov dword [rsp + 0x284], 1
jmp 0x1800979dc
mov dword [rsp + 0x284], 0
mov eax, dword [rsp + 0x284]
cmp dword [rsp + 0x288], eax
jg 0x180097a1f
movzx eax, word [rsp + 0x4c]
test eax, eax
je 0x180097a02
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x28c], eax
jmp 0x180097a11
movzx eax, byte [rsp + 0x42]
movsx eax, al
mov dword [rsp + 0x28c], eax
movzx eax, byte [rsp + 0x28c]
mov byte [rsp + 0x44], al
jmp 0x180097a21
xor eax, eax
jmp 0x180097b44
cmp dword [0x180146c44], 0
jne 0x180097a49
movsx eax, word [0x180146c5c]
add eax, 0x96
mov byte [rsp + 0x44], al
mov byte [rsp + 0x43], 0xec
jmp 0x180097b44
mov rax, qword [rsp + 0x98]
movzx ecx, byte [rsp + 0x41]
movsx rcx, cl
cmp rax, rcx
jbe 0x180097a6c
mov dword [rsp + 0x294], 1
jmp 0x180097a77
mov dword [rsp + 0x294], 0
movzx eax, byte [rsp + 0x40]
movzx eax, al
test eax, eax
je 0x180097a9e
movzx eax, word [0x180146d0c]
movzx eax, ax
test eax, eax
je 0x180097a9e
mov dword [rsp + 0x290], 0
jmp 0x180097aa9
mov dword [rsp + 0x290], 1
mov eax, dword [rsp + 0x290]
cmp dword [rsp + 0x294], eax
jg 0x180097ac6
mov dword [rsp + 0x298], 1
jmp 0x180097ad1
mov dword [rsp + 0x298], 0
mov eax, dword [rsp + 0x298]
not eax
test eax, eax
je 0x180097b44
mov eax, dword [0x180146d14]
mov eax, eax
mov rcx, qword [0x180146d68]
or rcx, rax
mov rax, rcx
movsx ecx, byte [0x180146caf]
movzx edx, byte [rsp + 0x42]
movsx edx, dl
imul ecx, edx
movsxd rcx, ecx
imul rax, rcx
movzx ecx, byte [0x180146c5f]
mov rdx, qword [rsp + 0x88]
xor rdx, rcx
mov rcx, rdx
movzx edx, byte [0x180146bee]
movsx edx, dl
add edx, 0xda
not edx
movsxd rdx, edx
and rcx, rdx
imul rax, rcx
mov word [0x180146d3c], ax
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x148], eax
mov dword [rsp + 0x28], 0xbe
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x20], eax
xor r9d, r9d
xor r8d, r8d
mov edx, dword [rsp + 0x5c]
mov ecx, 0xfb
call fcn.180094460
cdqe
mov qword [rsp + 0x88], rax
movzx eax, word [0x180146d28]
cwde
mov ecx, dword [rsp + 0x64]
cmp eax, ecx
jae 0x180097c5e
mov dword [rsp + 0x20], 0
mov r9d, 8
xor r8d, r8d
xor edx, edx
mov ecx, 0xbf
call fcn.1800950a0
mov word [0x180146d60], ax
movzx eax, byte [0x180146bef]
movzx eax, al
test eax, eax
je 0x180097c16
xor eax, eax
cmp eax, 1
je 0x180097bfc
movzx eax, byte [0x180146c5b]
movsx rax, al
mov rcx, qword [rsp + 0x80]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x80], rax
mov dword [0x180146d14], 0x37
jmp 0x180097c14
mov byte [0x180146bef], 0xa5
mov rax, qword [rsp + 0x78]
sub rax, 0xd0
mov dword [0x180146d2c], eax
jmp 0x180097c5c
mov rax, qword [rsp + 0x90]
not rax
cmp rax, 0xcf2c
jb 0x180097c5c
movsx eax, word [0x180146d30]
movzx ecx, byte [0x180146c03]
movzx ecx, cl
add eax, ecx
cdqe
mov qword [rsp + 0x70], rax
movsx eax, word [0x180146c5c]
not eax
xor ecx, ecx
sub ecx, eax
mov eax, ecx
cdqe
mov qword [rsp + 0x98], rax
jmp 0x180097c7c
movzx eax, byte [0x180146c03]
movzx eax, al
movabs rcx, 0x510e4cb0ae82
add rax, rcx
mov qword [0x180146cf0], rax
mov eax, dword [rsp + 0x148]
add eax, 0x81b1
mov dword [rsp + 0x954], eax
movzx eax, byte [rsp + 0x43]
movzx eax, al
movzx ecx, byte [0x180146c2e]
cmp eax, ecx
jle 0x180097caf
mov dword [rsp + 0x2a0], 1
jmp 0x180097cba
mov dword [rsp + 0x2a0], 0
mov eax, dword [rsp + 0x58]
movzx ecx, byte [0x180146c2e]
mov rdx, qword [rsp + 0x80]
or rdx, rcx
mov rcx, rdx
cmp rax, rcx
jae 0x180097ce5
mov dword [rsp + 0x29c], 1
jmp 0x180097cf0
mov dword [rsp + 0x29c], 0
mov eax, dword [rsp + 0x29c]
cmp dword [rsp + 0x2a0], eax
je 0x180097d76
movzx eax, word [rsp + 0x54]
movsx rax, ax
cmp qword [rsp + 0x68], rax
jae 0x180097d35
movzx eax, byte [rsp + 0x42]
movsx eax, al
movzx ecx, word [rsp + 0x4c]
imul eax, ecx
mov byte [rsp + 0x42], al
mov rax, qword [0x180146d40]
shl rax, 8
mov byte [rsp + 0x44], al
jmp 0x180097d71
movsx eax, word [0x180146c5c]
movzx ecx, byte [rsp + 0x41]
movsx ecx, cl
movabs rdx, 0xffffffff5631e414
lea rcx, [rcx + rdx]
add eax, ecx
mov byte [rsp + 0x41], al
mov eax, 0xe67777ea
mov rcx, qword [0x180146cf0]
add rcx, rax
mov rax, rcx
mov word [0x180146d30], ax
jmp 0x180097e29
movzx eax, word [rsp + 0x54]
cwde
not eax
cdqe
mov rcx, qword [rsp + 0x88]
sub rcx, rax
mov rax, rcx
test rax, rax
jne 0x180097da0
mov dword [rsp + 0x2a8], 1
jmp 0x180097dab
mov dword [rsp + 0x2a8], 0
movzx eax, byte [str.U_This_legacy_API_is]
movsx eax, al
test eax, eax
jne 0x180097dc6
mov dword [rsp + 0x2a4], 1
jmp 0x180097dd1
mov dword [rsp + 0x2a4], 0
mov eax, dword [rsp + 0x2a4]
add eax, 0x66dd90db
mov ecx, dword [rsp + 0x2a8]
imul ecx, eax
mov eax, ecx
cdqe
movzx ecx, word [rsp + 0x4c]
movabs rdx, 0xf5ed70f9bafaf
add rcx, rdx
mov rdx, qword [rsp + 0x78]
and rdx, rcx
mov rcx, rdx
not rcx
xor rax, rcx
mov qword [rsp + 0x90], rax
movzx eax, byte [rsp + 0x46]
movsx eax, al
sub eax, 0xa91a
mov byte [0x180146c43], al
mov eax, dword [rsp + 0x148]
add eax, 0xdf61
mov dword [rsp + 0x74c], eax
movzx eax, word [0x180146d58]
movzx eax, ax
cmp rax, qword [rsp + 0x70]
ja 0x180097eb6
movzx eax, byte [rsp + 0x44]
movsx rax, al
mov rcx, qword [0x180146cf8]
cmp rax, rcx
jbe 0x180097e95
movsx eax, word [0x180146d08]
movzx ecx, byte [0x180146c87]
movzx ecx, cl
sub eax, ecx
mov word [0x180146d08], ax
mov rax, qword [0x180146d20]
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x68], rax
jmp 0x180097eb1
movabs rax, 0xbce823732298b
mov rcx, qword [rsp + 0x68]
sub rcx, rax
mov rax, rcx
mov qword [0x180146d68], rax
jmp 0x180097f7f
cmp qword [rsp + 0x80], 0
je 0x180097efa
movzx eax, byte [0x180146bc7]
movsx eax, al
movzx ecx, word [rsp + 0x54]
movsx ecx, cx
sub eax, ecx
mov byte [0x180146bc7], al
mov eax, dword [0x180146c44]
mov ecx, dword [rsp + 0x5c]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x5c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x5c], eax
jmp 0x180097f7f
xor eax, eax
cmp eax, 1
je 0x180097f03
jmp 0x180097f7f
movsx eax, word [0x180146d08]
test eax, eax
jne 0x180097f24
xor eax, eax
cmp eax, 0x74be
je 0x180097f24
mov dword [rsp + 0x2ac], 1
jmp 0x180097f2f
mov dword [rsp + 0x2ac], 0
movzx eax, word [rsp + 0x50]
movzx eax, ax
mov ecx, dword [rsp + 0x2ac]
or ecx, eax
mov eax, ecx
test eax, eax
je 0x180097f7f
movzx eax, byte [0x180146bc7]
movsx eax, al
test eax, eax
je 0x180097f66
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x920], rax
jmp 0x180097f73
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x920], rax
movzx eax, byte [rsp + 0x920]
mov byte [rsp + 0x40], al
mov eax, dword [rsp + 0x148]
add eax, 0x330
mov dword [rsp + 0x9cc], eax
mov eax, dword [rsp + 0x64]
mov eax, eax
add rax, qword [rsp + 0x80]
mov dword [rsp + 0x64], eax
movzx eax, byte [str.U_This_legacy_API_is]
movsx eax, al
mov dword [rsp + 0x5c], eax
movzx eax, word [rsp + 0x4c]
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x58]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x60], 0
jne 0x180097fdc
mov byte [rsp + 0xa0], 1
jmp 0x180097fe4
mov byte [rsp + 0xa0], 0
movzx eax, byte [rsp + 0xa0]
mov byte [rsp + 0x40], al
mov eax, dword [rsp + 0x74c]
sub eax, 0xaa12
mov ecx, 0x3940
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x2b0]
mov edx, dword [rsp + 0x2b0]
xor ecx, edx
mov edx, dword [rsp + 0x2b4]
mov r8d, dword [rsp + 0x2b4]
sub edx, r8d
add ecx, edx
add eax, ecx
mov dword [rsp + 0x644], eax
movsx eax, byte [0x180146caf]
movzx ecx, byte [rsp + 0x41]
movsx ecx, cl
cmp eax, ecx
jle 0x180098052
mov dword [rsp + 0x2bc], 1
jmp 0x18009805d
mov dword [rsp + 0x2bc], 0
movsx eax, byte [0x180146caf]
cmp eax, 0x55
jle 0x180098076
mov dword [rsp + 0x2b8], 1
jmp 0x180098081
mov dword [rsp + 0x2b8], 0
mov eax, dword [rsp + 0x2b8]
cmp dword [rsp + 0x2bc], eax
jg 0x180098106
movzx eax, word [rsp + 0x54]
cwde
mov r9d, 0xc5
mov r8d, eax
xor edx, edx
xor ecx, ecx
call fcn.180094760
mov word [0x180146d5c], ax
movsx eax, word [0x180146d5c]
test eax, eax
je 0x1800980cd
movzx eax, byte [0x180146c2e]
xor eax, 0x2bbb
mov dword [rsp + 0x64], eax
jmp 0x180098104
cmp qword [rsp + 0x88], 0
je 0x1800980e9
movzx eax, byte [rsp + 0x45]
movzx eax, al
mov dword [rsp + 0x2c0], eax
jmp 0x1800980f5
movzx eax, word [rsp + 0x4c]
mov dword [rsp + 0x2c0], eax
movsxd rax, dword [rsp + 0x2c0]
mov qword [0x180146d20], rax
jmp 0x180098155
movsx eax, word [0x180146d10]
test eax, eax
je 0x180098155
xor eax, eax
cmp eax, 0xb174
je 0x180098155
mov rax, qword [0x180146d18]
sub rax, 0x7242c148
mov dword [rsp + 0x58], eax
movzx eax, word [rsp + 0x54]
movsx rax, ax
movabs rcx, 0x65b0f1c679a1d
sub rax, rcx
mov ecx, dword [0x180146d48]
mov ecx, ecx
sub rcx, rax
mov rax, rcx
mov dword [0x180146d48], eax
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x14c], eax
xor r8d, r8d
mov edx, 0x9a
xor ecx, ecx
call fcn.1800953a0
mov dword [0x180146c44], eax
cmp dword [0x180146c44], 0
jne 0x18009818d
mov dword [rsp + 0x2c8], 1
jmp 0x180098198
mov dword [rsp + 0x2c8], 0
cmp dword [0x180146c44], 0x35
jne 0x1800981ae
mov dword [rsp + 0x2c4], 1
jmp 0x1800981b9
mov dword [rsp + 0x2c4], 0
mov eax, dword [rsp + 0x2c4]
cmp dword [rsp + 0x2c8], eax
jle 0x1800982cc
mov dword [0x180146c44], 3
movzx eax, byte [rsp + 0x43]
movzx eax, al
add eax, 0xc9
mov dword [rsp + 0x60], eax
movzx eax, byte [0x180146c03]
movzx eax, al
movabs rcx, 0x2c49440ebaded
sub rax, rcx
mov byte [rsp + 0x43], al
mov eax, dword [0x180146c44]
mov dword [rsp + 0x10c], eax
cmp dword [rsp + 0x10c], 0
je 0x180098241
cmp dword [rsp + 0x10c], 1
je 0x180098270
cmp dword [rsp + 0x10c], 2
je 0x1800982a2
cmp dword [rsp + 0x10c], 3
je 0x1800982c1
jmp 0x1800982cc
movzx eax, byte [0x180146bef]
movzx eax, al
sub eax, dword [0x180146c04]
mov byte [0x180146bef], al
movzx eax, byte [rsp + 0x43]
movzx eax, al
add eax, 0x7649
cdqe
mov qword [rsp + 0x98], rax
jmp 0x1800982cc
movzx eax, byte [rsp + 0x45]
movzx eax, al
sub eax, 0xb13027bb
movzx ecx, byte [rsp + 0x46]
movsx ecx, cl
sub ecx, eax
mov eax, ecx
mov byte [rsp + 0x46], al
movzx eax, byte [rsp + 0x45]
movzx eax, al
sub eax, 0xe80c645a
mov byte [0x180146c5e], al
jmp 0x1800982cc
mov rax, qword [rsp + 0x88]
sub rax, 0x73
mov qword [0x180146d20], rax
mov dword [0x180146c44], 0xb6b5f5ee
jmp 0x1800982cc
movzx eax, byte [rsp + 0x43]
inc al
mov byte [rsp + 0x43], al
mov eax, dword [rsp + 0x14c]
add eax, 0xe0
mov dword [rsp + 0x958], eax
mov eax, dword [rsp + 0x88]
mov dword [0x180146d14], eax
mov eax, dword [rsp + 0x14c]
add eax, 0x2d
mov dword [rsp + 0x2e4], eax
cmp dword [rsp + 0x58], 0
jne 0x180098311
mov dword [rsp + 0x2cc], 1
jmp 0x18009831c
mov dword [rsp + 0x2cc], 0
movzx eax, word [rsp + 0x48]
mov ecx, dword [rsp + 0x2cc]
imul ecx, eax
mov eax, ecx
test eax, eax
jne 0x18009833f
mov qword [rsp + 0x780], 1
jmp 0x18009834b
mov qword [rsp + 0x780], 0
mov rax, qword [0x180146d40]
test rax, rax
jne 0x180098365
mov qword [rsp + 0x778], 1
jmp 0x180098371
mov qword [rsp + 0x778], 0
mov rax, qword [0x180146d50]
sub rax, qword [rsp + 0x778]
mov rcx, qword [rsp + 0x780]
imul rcx, rax
mov rax, rcx
mov qword [rsp + 0x70], rax
mov eax, dword [rsp + 0x14c]
add eax, 0x8427
mov dword [rsp + 0x95c], eax
cmp dword [rsp + 0x58], 0
je 0x1800983bb
xor eax, eax
cmp eax, 0x2c29
je 0x1800984be
mov byte [rsp + 0x45], 3
movzx eax, word [0x180146d28]
cwde
movzx ecx, byte [rsp + 0x44]
movsx ecx, cl
sub eax, ecx
movzx ecx, word [0x180146d28]
movsx ecx, cx
sub ecx, eax
mov eax, ecx
mov word [0x180146d28], ax
movzx eax, byte [rsp + 0x45]
mov byte [rsp + 0xf8], al
cmp byte [rsp + 0xf8], 0
je 0x180098424
cmp byte [rsp + 0xf8], 1
je 0x180098442
cmp byte [rsp + 0xf8], 2
je 0x180098466
cmp byte [rsp + 0xf8], 3
je 0x1800984a6
jmp 0x1800984b9
movsxd rax, dword [rsp + 0x5c]
sub rax, qword [rsp + 0x88]
movsxd rcx, dword [rsp + 0x5c]
sub rcx, rax
mov rax, rcx
mov dword [rsp + 0x5c], eax
jmp 0x1800984b9
movzx eax, byte [rsp + 0x42]
movsx eax, al
movzx ecx, byte [rsp + 0x44]
movsx ecx, cl
sub eax, ecx
movzx ecx, byte [rsp + 0x42]
movsx ecx, cl
xor ecx, eax
mov eax, ecx
mov byte [rsp + 0x42], al
jmp 0x1800984b9
movzx eax, byte [0x180146bef]
movzx eax, al
movzx ecx, byte [rsp + 0x40]
movzx ecx, cl
add eax, ecx
movzx ecx, byte [rsp + 0x41]
movsx ecx, cl
movzx edx, byte [0x180146c43]
movzx r8d, word [0x180146d28]
movsx r8d, r8w
add edx, r8d
or ecx, edx
lea eax, [rax + rcx + 4]
mov byte [0x180146bc7], al
jmp 0x1800984b9
movzx eax, byte [rsp + 0x43]
movzx eax, al
movzx ecx, word [rsp + 0x4c]
add eax, ecx
mov byte [rsp + 0x43], al
jmp 0x18009854c
mov rax, qword [0x180146d18]
mov ecx, dword [0x180146d2c]
not ecx
mov ecx, ecx
cmp rax, rcx
jg 0x1800984e1
mov dword [rsp + 0x2d0], 1
jmp 0x1800984ec
mov dword [rsp + 0x2d0], 0
mov eax, dword [rsp + 0x2d0]
cmp dword [rsp + 0x5c], eax
jge 0x18009854c
mov eax, 1
imul rax, rax, 0x425
lea rcx, [0x18118cf50]
movzx eax, byte [rcx + rax]
movzx ecx, byte [rsp + 0x44]
movsx ecx, cl
add ecx, eax
mov eax, ecx
mov byte [rsp + 0x44], al
movzx eax, word [0x180146d0c]
movzx eax, ax
movabs rcx, 0x2d2213da290ee
imul rax, rcx
mov rcx, qword [0x180146d18]
add rcx, rax
mov rax, rcx
mov qword [0x180146d18], rax
movzx eax, byte [0x180146c41]
movzx eax, al
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 0
mov r9d, dword [0x180146d64]
mov r8d, dword [0x180146d38]
mov edx, dword [rsp + 0x90]
mov ecx, 0xac
call fcn.180094460
mov word [0x180146d08], ax
movsx eax, word [0x180146d5c]
not eax
cdqe
cmp rax, qword [rsp + 0x80]
jb 0x1800985aa
mov dword [rsp + 0x2d4], 1
jmp 0x1800985b5
mov dword [rsp + 0x2d4], 0
mov eax, dword [rsp + 0x2d4]
not eax
cdqe
mov rcx, qword [rsp + 0x98]
not rcx
movzx edx, byte [0x180146c5e]
imul rcx, rdx
cmp rax, rcx
je 0x1800986a4
mov byte [0x180146c87], 4
movzx eax, word [0x181001ff0]
mov word [0x180146d5c], ax
movzx eax, byte [0x180146c87]
mov byte [rsp + 0xc8], al
cmp byte [rsp + 0xc8], 0
je 0x180098636
cmp byte [rsp + 0xc8], 1
je 0x180098645
cmp byte [rsp + 0xc8], 2
je 0x180098652
cmp byte [rsp + 0xc8], 3
je 0x18009866a
cmp byte [rsp + 0xc8], 4
je 0x18009867b
jmp 0x18009869f
mov eax, dword [rsp + 0x60]
sub eax, 0xec2c
mov byte [rsp + 0x40], al
jmp 0x18009869f
mov qword [0x180146d20], 0x4aeda95c
jmp 0x18009869f
movzx eax, byte [rsp + 0x45]
movzx eax, al
movzx ecx, byte [rsp + 0x46]
movsx ecx, cl
sub eax, ecx
mov byte [rsp + 0x40], al
jmp 0x18009869f
mov eax, dword [rsp + 0x58]
add eax, 0x27b2d1e8
mov byte [0x180146c43], al
jmp 0x18009869f
mov eax, dword [0x181001ff0]
mov qword [0x180146d20], rax
movzx eax, byte [rsp + 0x41]
movsx rax, al
mov rcx, qword [0x180146d40]
add rax, rcx
mov byte [rsp + 0x41], al
jmp 0x1800987cd
imul rax, qword [rsp + 0x68], 0xf4
test rax, rax
je 0x180098749
mov byte [rsp + 0x45], 4
mov eax, dword [rsp + 0x64]
test eax, eax
jne 0x1800986d0
mov dword [rsp + 0x2dc], 1
jmp 0x1800986db
mov dword [rsp + 0x2dc], 0
movzx eax, word [0x180146d58]
movzx eax, ax
movzx ecx, byte [rsp + 0x45]
movzx ecx, cl
not ecx
add eax, ecx
test eax, eax
jne 0x180098702
mov dword [rsp + 0x2d8], 1
jmp 0x18009870d
mov dword [rsp + 0x2d8], 0
movzx eax, byte [0x180146c43]
movzx ecx, byte [0x180146c5f]
imul rcx, qword [rsp + 0x68]
not rcx
sub rax, rcx
mov ecx, dword [rsp + 0x2d8]
mov edx, dword [rsp + 0x2dc]
xor edx, ecx
mov ecx, edx
movsxd rcx, ecx
add rax, rcx
mov qword [rsp + 0x78], rax
jmp 0x1800987cd
cmp qword [rsp + 0x68], 0
jne 0x18009875e
mov dword [rsp + 0x2e0], 1
jmp 0x180098769
mov dword [rsp + 0x2e0], 0
cmp dword [rsp + 0x2e0], 0
jl 0x1800987ae
movzx eax, byte [0x180146c86]
mov ecx, dword [0x180146d2c]
add ecx, eax
mov eax, ecx
mov ecx, dword [0x180146d2c]
sub ecx, eax
mov eax, ecx
mov dword [0x180146d2c], eax
movzx eax, byte [0x180146c86]
imul eax, eax, 0x65
movzx ecx, word [rsp + 0x4c]
add ecx, eax
mov eax, ecx
mov word [rsp + 0x4c], ax
jmp 0x1800987cd
mov rax, qword [0x180146d50]
test rax, rax
jne 0x1800987c6
mov eax, dword [0x180146d64]
cmp dword [rsp + 0x5c], eax
jae 0x1800987cd
mov byte [0x180146c5b], 0x23
mov eax, dword [rsp + 0x2e4]
mov ecx, dword [rsp + 0x2e4]
or ecx, 0xde
lea eax, [rax + rcx - 0x60]
mov ecx, 0x413
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x648], eax
mov byte [rsp + 0x45], 0xca
cmp qword [rsp + 0x78], 0
je 0x180098813
mov rax, qword [0x180146d00]
mov qword [rsp + 0x788], rax
jmp 0x180098822
movsxd rax, dword [0x180146c04]
mov qword [rsp + 0x788], rax
movzx eax, byte [rsp + 0x788]
mov byte [rsp + 0x45], al
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x150], eax
mov eax, dword [rsp + 0x64]
mov eax, eax
mov rcx, qword [rsp + 0x78]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x78]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x150]
add eax, 0x5f2
mov dword [rsp + 0x754], eax
mov byte [rsp + 0x42], 4
mov eax, dword [rsp + 0x64]
sub eax, 0x24
mov word [0x180146d5c], ax
mov rax, qword [rsp + 0x70]
add rax, 0x1c
mov byte [0x180146c2e], al
movzx eax, byte [rsp + 0x42]
mov byte [rsp + 0xcc], al
cmp byte [rsp + 0xcc], 0
je 0x1800988e0
cmp byte [rsp + 0xcc], 1
je 0x18009892f
cmp byte [rsp + 0xcc], 2
je 0x180098944
cmp byte [rsp + 0xcc], 3
je 0x180098952
cmp byte [rsp + 0xcc], 4
je 0x18009896e
jmp 0x1800989a8
mov rax, qword [rsp + 0x98]
movabs rcx, 0x62828c141720f
add rax, rcx
mov byte [0x180146c5e], al
movzx eax, word [rsp + 0x50]
movzx eax, ax
mov rcx, qword [0x180146d20]
add rcx, rax
mov rax, rcx
movabs rcx, 0x679deeaeb614e
sub rcx, qword [0x180146cf0]
sub rax, rcx
add rax, qword [rsp + 0x70]
mov byte [rsp + 0x44], al
jmp 0x1800989a8
mov rax, qword [0x180146d68]
add rax, 9
mov qword [rsp + 0x98], rax
jmp 0x1800989a8
mov eax, dword [0x180146d00]
mov dword [0x180146c44], eax
jmp 0x1800989a8
mov eax, 0xb2a1a464
mov rcx, qword [rsp + 0x90]
sub rcx, rax
mov rax, rcx
mov qword [0x180146d50], rax
jmp 0x1800989a8
mov eax, 1
imul rax, rax, 0xaaa
lea rcx, [0x181084010]
movzx eax, byte [rcx + rax]
mov byte [0x180146bc7], al
movsx eax, word [0x180146c5c]
movzx ecx, word [0x180146d58]
movzx ecx, cx
xor eax, ecx
cdqe
mov qword [rsp + 0x98], rax
mov eax, dword [rsp + 0x150]
add eax, 0x7f
mov dword [rsp + 0x750], eax
movsx eax, word [0x180146d10]
imul eax, eax, 0x7c41
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x58], eax
cmp qword [rsp + 0x70], 0
jne 0x1800989e8
mov qword [rsp + 0x790], 1
jmp 0x1800989f4
mov qword [rsp + 0x790], 0
movzx eax, word [0x180146d28]
cwde
not eax
cdqe
mov ecx, dword [0x180146d4c]
mov ecx, ecx
mov rdx, qword [rsp + 0x78]
not rdx
mov r8, qword [rsp + 0x790]
sub r8, rdx
mov rdx, r8
add rcx, rdx
not rcx
add rax, rcx
mov qword [0x180146cf8], rax
mov eax, dword [rsp + 0x150]
add eax, 0x94
mov dword [rsp + 0x960], eax
movzx eax, word [rsp + 0x4c]
movabs rcx, 0x1364beae325d7
imul rax, rcx
mov word [rsp + 0x50], ax
movzx eax, byte [str.U_This_legacy_API_is]
movsx eax, al
movzx ecx, byte [rsp + 0x44]
movsx ecx, cl
and eax, ecx
movzx ecx, byte [str.U_This_legacy_API_is]
movsx ecx, cl
sub ecx, eax
mov eax, ecx
mov byte [str.U_This_legacy_API_is], al
movzx eax, byte [rsp + 0x41]
movsx eax, al
sar eax, 3
mov byte [0x180146c5e], al
mov eax, dword [rsp + 0x750]
mov ecx, dword [rsp + 0x754]
imul eax, ecx
xor eax, 0x2f1ca
mov dword [rsp + 0x654], eax
mov rax, qword [0x180146d00]
xor rax, 0x7537f6e9
movzx ecx, byte [0x180146c2e]
sub rcx, rax
mov rax, rcx
mov byte [0x180146c2e], al
mov eax, dword [rsp + 0x64]
mov byte [rsp + 0x41], al
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x154], eax
movzx eax, byte [rsp + 0x41]
movsx rax, al
mov rcx, qword [0x180146d20]
imul rax, rcx
mov ecx, dword [0x180146d4c]
mov ecx, ecx
sub rax, rcx
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x154]
add eax, 0x74f6
mov dword [rsp + 0x964], eax
movzx eax, byte [rsp + 0x45]
movzx eax, al
test eax, eax
je 0x180098c4d
mov qword [0x180146d20], 3
movzx eax, byte [rsp + 0x40]
movzx eax, al
imul rax, qword [rsp + 0x88]
mov byte [rsp + 0x40], al
mov byte [rsp + 0x45], 0x3e
mov rax, qword [0x180146d20]
mov qword [rsp + 0x608], rax
cmp qword [rsp + 0x608], 0
je 0x180098b97
cmp qword [rsp + 0x608], 1
je 0x180098bbb
cmp qword [rsp + 0x608], 2
je 0x180098be3
cmp qword [rsp + 0x608], 3
je 0x180098c21
jmp 0x180098c4d
movabs rax, 0x827513b992f0
mov rcx, qword [rsp + 0x80]
imul rcx, rax
mov rax, rcx
mov byte [0x180146c03], al
jmp 0x180098c4d
mov eax, dword [0x180146d48]
mov eax, eax
mov rcx, qword [0x180146d68]
sub rax, rcx
mov ecx, dword [0x180146d48]
mov ecx, ecx
sub rcx, rax
mov rax, rcx
mov dword [0x180146d48], eax
jmp 0x180098c4d
mov rax, qword [rsp + 0x68]
add rax, 0x6e71
mov rcx, qword [rsp + 0x68]
and rcx, rax
mov rax, rcx
mov qword [rsp + 0x68], rax
mov rax, qword [0x180146cf8]
xor rax, 0x62f74b03
mov rcx, qword [0x180146d00]
sub rcx, rax
mov rax, rcx
mov qword [0x180146d00], rax
jmp 0x180098c4d
movzx eax, byte [rsp + 0x40]
movzx eax, al
movabs rcx, 0xc13167933fb18
xor rax, rcx
mov dword [0x180146d64], eax
movzx eax, byte [rsp + 0x40]
movzx eax, al
add eax, 0xc8
mov byte [rsp + 0x42], al
mov eax, dword [rsp + 0x154]
add eax, 0xf2b3
mov dword [rsp + 0x758], eax
movzx eax, word [rsp + 0x4c]
sub eax, 0xdd24
mov byte [0x180146c43], al
mov eax, dword [rsp + 0x154]
add eax, 0x10c
mov dword [rsp + 0x618], eax
movzx eax, word [rsp + 0x50]
movzx eax, ax
test eax, eax
je 0x180098ce0
movzx eax, byte [rsp + 0x40]
movzx eax, al
cmp qword [rsp + 0x78], rax
jl 0x180098ccd
mov eax, dword [0x180146d64]
shl eax, 2
mov dword [rsp + 0x60], eax
movzx eax, word [0x180146d28]
movsx rax, ax
movabs rcx, 0x28e4cfc9db02
imul rax, rcx
mov word [0x180146d0c], ax
jmp 0x180098cdb
movzx eax, word [0x181001ff0]
mov word [0x180146d10], ax
jmp 0x180098db2
movzx eax, word [0x180146d28]
cwde
movzx ecx, byte [0x180146c5b]
movsx ecx, cl
cmp eax, ecx
jle 0x180098d04
mov qword [rsp + 0x798], 1
jmp 0x180098d10
mov qword [rsp + 0x798], 0
mov rax, qword [rsp + 0x98]
cmp rax, qword [rsp + 0x798]
ja 0x180098d83
cmp dword [rsp + 0x5c], 0
jne 0x180098d36
mov dword [rsp + 0x2e8], 1
jmp 0x180098d41
mov dword [rsp + 0x2e8], 0
movzx eax, byte [0x180146c87]
movzx eax, al
xor eax, dword [rsp + 0x2e8]
cdqe
movsx rcx, word [0x180146d08]
mov rdx, qword [0x180146d18]
and rdx, rcx
mov rcx, rdx
sub rax, rcx
mov dword [0x180146d48], eax
movzx eax, byte [0x180146c87]
movzx eax, al
mov word [rsp + 0x48], ax
jmp 0x180098db2
mov eax, dword [rsp + 0x64]
test eax, eax
je 0x180098d9e
mov eax, dword [0x180146d34]
add eax, 0x414d
mov byte [0x180146c2f], al
jmp 0x180098db2
cmp dword [rsp + 0x5c], 0
je 0x180098db2
movzx eax, byte [0x181001ff0]
mov byte [0x180146c5f], al
movzx eax, byte [rsp + 0x45]
movzx eax, al
test eax, eax
je 0x180098e25
movsx rax, word [0x180146c5c]
cmp qword [rsp + 0x90], rax
jne 0x180098e07
mov eax, dword [0x180146d4c]
shr eax, 6
mov eax, eax
mov qword [0x180146d50], rax
movsx rax, word [0x180146d30]
imul rax, qword [rsp + 0x68]
movsx rcx, word [0x180146d30]
or rcx, rax
mov rax, rcx
mov word [0x180146d30], ax
jmp 0x180098e23
movzx eax, word [rsp + 0x50]
movzx eax, ax
test eax, eax
je 0x180098e23
movzx eax, word [rsp + 0x4c]
and eax, 0xad06
mov byte [0x180146c5e], al
jmp 0x180098e4a
cmp qword [rsp + 0x78], 0
je 0x180098e4a
movzx eax, word [rsp + 0x4c]
test eax, eax
je 0x180098e4a
movzx eax, byte [0x180146c41]
movzx eax, al
imul eax, eax, 0x85dd0525
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x758]
mov ecx, dword [rsp + 0x618]
xor eax, ecx
add eax, 0x339e
mov ecx, 0x12848
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x2ec]
mov edx, dword [rsp + 0x2ec]
xor ecx, edx
mov edx, dword [rsp + 0x61c]
mov r8d, dword [rsp + 0x620]
imul edx, r8d
imul ecx, edx
sub eax, ecx
mov dword [rsp + 0x658], eax
mov eax, 4
imul rax, rax, 0x6b89
lea rcx, [0x1810b5f50]
mov edx, dword [rsp + 0x58]
mov dword [rcx + rax], edx
movzx eax, byte [rsp + 0x41]
movsx eax, al
mov ecx, dword [0x180146c04]
imul ecx, eax
mov eax, ecx
mov word [0x180146d5c], ax
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x158], eax
movsx eax, word [0x180146d30]
test eax, eax
je 0x180098f19
movzx eax, byte [0x180146c86]
movabs rcx, 0xdcfa576e9acd6
add rax, rcx
mov byte [rsp + 0x43], al
movzx eax, byte [0x180146c5b]
movsx rax, al
movabs rcx, 0x9f97535b0f5fa
add rax, rcx
mov dword [0x180146c04], eax
mov eax, dword [rsp + 0x158]
add eax, 0x88
mov dword [rsp + 0x628], eax
movzx eax, byte [0x180146c41]
movzx eax, al
test eax, eax
je 0x180098f74
movzx eax, word [rsp + 0x48]
movzx ecx, byte [rsp + 0x45]
movzx ecx, cl
add eax, ecx
mov word [rsp + 0x48], ax
mov eax, 1
imul rax, rax, 0x4e
lea rcx, [0x1811c24b0]
movsx eax, byte [rcx + rax]
mov ecx, dword [0x180146d14]
add ecx, eax
mov eax, ecx
mov dword [0x180146d14], eax
jmp 0x180098f81
movsx eax, byte [0x180146caf]
mov dword [0x180146d64], eax
mov eax, dword [rsp + 0x158]
add eax, 0x32
mov dword [rsp + 0x968], eax
movsx eax, word [0x180146d5c]
movzx ecx, byte [0x180146c2e]
cmp eax, ecx
je 0x180098fd9
movzx eax, byte [rsp + 0x43]
movzx eax, al
add eax, 0xbc2b6c58
mov eax, eax
mov qword [rsp + 0x80], rax
movzx eax, byte [0x180146c87]
movzx eax, al
movzx ecx, byte [0x180146c03]
movzx ecx, cl
sub eax, ecx
mov byte [0x180146c87], al
jmp 0x18009900f
movzx eax, byte [0x180146c5f]
test eax, eax
je 0x18009900f
mov rax, qword [rsp + 0x68]
add rax, rax
mov qword [rsp + 0x90], rax
movsx rax, word [0x180146c5c]
movabs rcx, 0xaf60b698f5e47
xor rax, rcx
mov dword [0x180146d2c], eax
mov eax, dword [rsp + 0x158]
add eax, 0xd6
mov dword [rsp + 0x624], eax
movsx eax, byte [0x180146caf]
test eax, eax
je 0x180099089
movzx eax, word [rsp + 0x4c]
test eax, eax
jne 0x180099043
mov dword [rsp + 0x2f0], 1
jmp 0x18009904e
mov dword [rsp + 0x2f0], 0
movsx eax, word [0x180146d5c]
movzx ecx, word [0x180146d58]
movzx ecx, cx
mov edx, dword [rsp + 0x60]
imul edx, ecx
mov ecx, edx
xor eax, ecx
movzx ecx, word [rsp + 0x4c]
imul ecx, dword [rsp + 0x60]
mov edx, dword [rsp + 0x2f0]
sub edx, ecx
mov ecx, edx
and eax, ecx
mov byte [str.U_This_legacy_API_is], al
jmp 0x1800990a0
movzx eax, byte [0x181001ff0]
mov byte [rsp + 0x46], al
mov eax, dword [0x181001ff0]
mov dword [0x180146c04], eax
cmp dword [0x180146c44], 0
je 0x1800991d5
mov eax, 4
mov word [rsp + 0x48], ax
mov eax, dword [rsp + 0x64]
imul eax, eax, 0
movzx ecx, byte [0x180146c03]
movzx ecx, cl
imul ecx, ecx, 0xbf
and eax, ecx
not eax
mov byte [rsp + 0x44], al
movzx eax, word [rsp + 0x48]
mov dword [rsp + 0xd0], eax
cmp dword [rsp + 0xd0], 0
je 0x180099121
cmp dword [rsp + 0xd0], 1
je 0x180099156
cmp dword [rsp + 0xd0], 2
je 0x180099165
cmp dword [rsp + 0xd0], 3
je 0x180099191
cmp dword [rsp + 0xd0], 4
je 0x1800991b7
jmp 0x1800991d3
mov eax, dword [0x180146d64]
imul eax, eax, 0x94812757
mov word [0x180146d58], ax
movzx eax, byte [rsp + 0x40]
movzx eax, al
movzx ecx, byte [rsp + 0x43]
movzx ecx, cl
sub rcx, qword [rsp + 0x90]
sub rax, rcx
mov qword [rsp + 0x78], rax
jmp 0x1800991d3
movzx eax, word [rsp + 0x54]
inc ax
mov word [rsp + 0x54], ax
jmp 0x1800991d3
movzx eax, byte [0x180146bef]
movzx eax, al
movzx ecx, byte [0x180146c03]
movzx ecx, cl
add eax, ecx
movzx ecx, byte [0x180146bef]
movzx ecx, cl
sub ecx, eax
mov eax, ecx
mov byte [0x180146bef], al
jmp 0x1800991d3
movzx eax, byte [0x180146c03]
movzx eax, al
movzx ecx, byte [0x180146c5f]
sub eax, ecx
not eax
movzx ecx, word [0x180146d60]
not ecx
add eax, ecx
mov dword [rsp + 0x60], eax
jmp 0x1800991d3
movzx eax, word [rsp + 0x48]
add eax, 0x5e
mov dword [0x180146d2c], eax
movzx eax, word [0x181001ff0]
mov word [0x180146d30], ax
jmp 0x1800991ef
movzx eax, byte [0x180146c2f]
movsx eax, al
mov ecx, dword [0x180146d64]
sub ecx, eax
mov eax, ecx
mov dword [0x180146d64], eax
mov eax, dword [rsp + 0x624]
mov ecx, dword [rsp + 0x628]
or eax, ecx
or eax, 0x2bb65a
xor eax, 0x2bb5d2
mov dword [rsp + 0x65c], eax
cmp dword [0x180146c44], 0
je 0x18009929d
movzx eax, byte [0x180146c41]
movzx eax, al
test eax, eax
jne 0x180099238
mov dword [rsp + 0x2f4], 1
jmp 0x180099243
mov dword [rsp + 0x2f4], 0
mov eax, dword [0x180146d34]
cmp dword [rsp + 0x2f4], eax
jb 0x18009929b
movzx eax, byte [rsp + 0x41]
movsx eax, al
test eax, eax
je 0x18009926f
mov rax, qword [0x180146d00]
mov qword [rsp + 0x7a0], rax
jmp 0x18009927d
mov eax, dword [0x180146d2c]
mov qword [rsp + 0x7a0], rax
movzx eax, word [rsp + 0x7a0]
mov word [rsp + 0x48], ax
movzx eax, byte [0x180146c2e]
imul eax, eax, 0xca1e
mov byte [rsp + 0x43], al
jmp 0x1800992ef
mov rax, qword [0x180146cf8]
test rax, rax
jne 0x1800992b7
mov qword [rsp + 0x7a8], 1
jmp 0x1800992c3
mov qword [rsp + 0x7a8], 0
mov rax, qword [rsp + 0x7a8]
mov rcx, qword [rsp + 0x70]
sub rcx, rax
mov rax, rcx
test rax, rax
je 0x1800992ef
mov rax, qword [rsp + 0x98]
sub rax, 0x1fbe
mov dword [0x180146d4c], eax
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x15c], eax
movzx eax, word [rsp + 0x54]
cwde
sub eax, 0xa269f2ef
mov word [0x180146d3c], ax
mov eax, dword [rsp + 0x15c]
add eax, 0x12a
mov dword [rsp + 0x66c], eax
mov qword [rsp + 0x70], 4
mov eax, dword [0x180146c44]
add eax, 0x20a5dcbf
mov word [0x180146d60], ax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x5f8], rax
cmp qword [rsp + 0x5f8], 0
je 0x180099389
cmp qword [rsp + 0x5f8], 1
je 0x1800993a2
cmp qword [rsp + 0x5f8], 2
je 0x1800993b9
cmp qword [rsp + 0x5f8], 3
je 0x1800993dd
cmp qword [rsp + 0x5f8], 4
je 0x180099411
jmp 0x180099446
movzx eax, word [0x181001ff0]
mov word [rsp + 0x50], ax
mov dword [rsp + 0x58], 0xfa9915a4
jmp 0x180099446
movzx eax, byte [0x180146c5f]
sub eax, 0x4cecbc91
mov byte [0x180146c5b], al
jmp 0x180099446
movzx eax, word [0x180146d60]
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x68]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x68], rax
jmp 0x180099446
movzx eax, word [rsp + 0x50]
movzx eax, ax
mov rcx, qword [rsp + 0x88]
xor rcx, rax
mov rax, rcx
mov qword [rsp + 0x88], rax
movzx eax, word [rsp + 0x54]
movsx rax, ax
imul rax, qword [rsp + 0x70]
mov word [rsp + 0x54], ax
jmp 0x180099446
movzx eax, word [rsp + 0x48]
test eax, eax
je 0x18009942b
mov rax, qword [0x180146cf8]
mov qword [rsp + 0x7b0], rax
jmp 0x18009943a
movzx eax, byte [0x180146c43]
mov qword [rsp + 0x7b0], rax
movzx eax, byte [rsp + 0x7b0]
mov byte [rsp + 0x45], al
mov eax, dword [rsp + 0x15c]
add eax, 0x31
mov dword [rsp + 0x9c8], eax
movzx eax, byte [0x180146c43]
movzx ecx, byte [rsp + 0x40]
movzx ecx, cl
mov dword [rsp + 0x20], 0
mov r9d, eax
mov r8d, ecx
xor edx, edx
mov ecx, 0x1b
call fcn.1800950a0
mov eax, eax
mov qword [rsp + 0x88], rax
cmp qword [rsp + 0x88], 0
je 0x1800994d7
movsx rax, word [0x180146d5c]
cmp qword [rsp + 0x68], rax
jb 0x1800994b5
mov eax, dword [rsp + 0x58]
xor eax, 0xcac6944b
mov byte [0x180146c2e], al
jmp 0x1800994d5
movsx eax, word [0x180146c5c]
movzx ecx, word [rsp + 0x50]
movzx ecx, cx
add eax, ecx
imul eax, eax, 0x2873
cdqe
mov qword [0x180146d68], rax
jmp 0x1800994f9
movzx eax, byte [0x180146c41]
movzx eax, al
test eax, eax
je 0x1800994f9
movzx eax, byte [rsp + 0x40]
movzx eax, al
imul eax, eax, 0xdc6a2f13
mov byte [0x180146c5e], al
mov eax, dword [rsp + 0x15c]
add eax, 0x301
mov dword [rsp + 0x668], eax
movzx eax, byte [rsp + 0x45]
movzx eax, al
cmp qword [rsp + 0x68], rax
je 0x180099528
mov dword [rsp + 0x2fc], 1
jmp 0x180099533
mov dword [rsp + 0x2fc], 0
cmp qword [rsp + 0x68], 0x31
je 0x180099548
mov dword [rsp + 0x2f8], 1
jmp 0x180099553
mov dword [rsp + 0x2f8], 0
mov eax, dword [rsp + 0x2f8]
cmp dword [rsp + 0x2fc], eax
jg 0x180099572
mov eax, dword [rsp + 0x64]
mov eax, eax
add rax, qword [rsp + 0x78]
mov dword [rsp + 0x64], eax
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x164], eax
mov rax, qword [rsp + 0x98]
movzx ecx, byte [0x180146c43]
cmp rax, rcx
jae 0x18009967f
mov eax, dword [0x180146d48]
mov eax, eax
movabs rcx, 0x51ea37c92551e
cmp rax, rcx
jne 0x1800995bb
mov dword [rsp + 0x300], 1
jmp 0x1800995c6
mov dword [rsp + 0x300], 0
movzx eax, word [rsp + 0x48]
mov ecx, dword [rsp + 0x300]
sub ecx, eax
mov eax, ecx
test eax, eax
je 0x180099603
movzx eax, byte [0x180146c2f]
movsx eax, al
shl eax, 2
mov dword [0x180146d4c], eax
mov eax, dword [rsp + 0x60]
mov ecx, dword [0x180146d38]
xor ecx, eax
mov eax, ecx
mov dword [0x180146d38], eax
jmp 0x18009967d
movzx eax, word [0x180146d0c]
movzx eax, ax
test eax, eax
je 0x180099622
mov rax, qword [0x180146d18]
imul rax, rax, 0x28
mov byte [rsp + 0x40], al
jmp 0x18009967d
xor eax, eax
cmp eax, 0x6c
je 0x18009964a
movzx eax, byte [0x180146bc7]
movsx rax, al
movabs rcx, 0x597f14052ca79
add rax, rcx
mov word [0x180146d10], ax
jmp 0x18009967d
mov rax, qword [rsp + 0x98]
test rax, rax
jne 0x18009967d
movzx eax, byte [rsp + 0x41]
movsx eax, al
test eax, eax
jne 0x18009967d
imul eax, dword [0x180146c04], 0x4428
mov ecx, dword [0x180146d64]
and ecx, eax
mov eax, ecx
mov dword [0x180146d64], eax
jmp 0x1800996f1
movsx rax, word [0x180146c5c]
cmp rax, qword [rsp + 0x78]
jl 0x18009969b
mov dword [rsp + 0x304], 1
jmp 0x1800996a6
mov dword [rsp + 0x304], 0
mov eax, dword [rsp + 0x304]
not eax
or eax, dword [0x180146c04]
test eax, eax
je 0x1800996f1
movzx eax, byte [str.U_This_legacy_API_is]
movsx rax, al
mov rcx, qword [0x180146cf8]
sub rcx, rax
mov rax, rcx
movzx ecx, byte [0x180146bee]
movsx ecx, cl
mov edx, dword [0x180146c04]
add edx, ecx
mov ecx, edx
movsxd rcx, ecx
imul rax, rcx
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0x164]
add eax, 0x358
mov dword [rsp + 0x6bc], eax
mov byte [rsp + 0x43], 2
movzx eax, word [rsp + 0x50]
movzx eax, ax
movzx ecx, word [rsp + 0x50]
movzx ecx, cx
sub eax, ecx
movzx ecx, word [rsp + 0x50]
movzx ecx, cx
sub ecx, eax
mov eax, ecx
mov word [rsp + 0x50], ax
movzx eax, byte [rsp + 0x43]
mov byte [rsp + 0x160], al
cmp byte [rsp + 0x160], 0
je 0x18009975b
cmp byte [rsp + 0x160], 1
je 0x18009977d
cmp byte [rsp + 0x160], 2
je 0x1800997ba
jmp 0x18009983f
movzx eax, byte [rsp + 0x45]
movzx eax, al
mov rcx, qword [0x180146d40]
imul rcx, rax
mov rax, rcx
mov qword [0x180146d40], rax
jmp 0x18009983f
mov qword [0x180146cf0], 0xc0
movabs rax, 0x5ce8285e85f1a
mov rcx, qword [rsp + 0x70]
and rcx, rax
mov rax, rcx
movzx ecx, word [0x180146d28]
movsx rcx, cx
add rcx, rax
mov rax, rcx
mov word [0x180146d28], ax
jmp 0x18009983f
cmp qword [rsp + 0x70], 0
jne 0x1800997cf
mov dword [rsp + 0x308], 1
jmp 0x1800997da
mov dword [rsp + 0x308], 0
imul eax, dword [rsp + 0x308], 0xd7f524c
mov ecx, dword [rsp + 0x64]
xor ecx, dword [rsp + 0x5c]
imul eax, ecx
test eax, eax
jne 0x180099802
mov qword [rsp + 0x7b8], 1
jmp 0x18009980e
mov qword [rsp + 0x7b8], 0
mov eax, dword [rsp + 0x60]
mov rcx, qword [0x180146cf8]
not rcx
movzx edx, byte [0x180146c41]
movzx edx, dl
not edx
movsxd rdx, edx
imul rcx, rdx
add rax, rcx
imul rax, qword [rsp + 0x7b8]
mov byte [rsp + 0x45], al
mov eax, dword [rsp + 0x164]
add eax, 0x85
mov dword [rsp + 0x6c0], eax
movzx eax, byte [0x180146c42]
movsx eax, al
movsx ecx, word [0x180146c5c]
movzx edx, byte [rsp + 0x45]
movzx edx, dl
and ecx, edx
sub eax, ecx
mov byte [rsp + 0x44], al
mov byte [rsp + 0x42], 0x12
mov eax, dword [rsp + 0x164]
add eax, 0x1c6
mov dword [rsp + 0x9c4], eax
movzx eax, byte [rsp + 0x41]
movsx eax, al
movzx ecx, byte [rsp + 0x43]
movzx ecx, cl
add eax, ecx
movzx ecx, byte [rsp + 0x41]
movsx ecx, cl
sub ecx, eax
mov eax, ecx
mov byte [rsp + 0x41], al
movzx eax, byte [0x180146c42]
movsx rax, al
mov qword [rsp + 0x70], rax
mov eax, dword [0x181001ff0]
mov dword [rsp + 0x168], eax
movzx eax, word [0x180146d60]
mov word [rsp + 0x4c], ax
mov eax, dword [rsp + 0x168]
add eax, 0x1b1
mov dword [rsp + 0x768], eax
mov eax, 0x35
sub rax, qword [rsp + 0x90]
test rax, rax
jne 0x180099908
mov dword [rsp + 0x30c], 1
jmp 0x180099913
mov dword [rsp + 0x30c], 0
movsx eax, word [0x180146c5c]
mov ecx, dword [rsp + 0x30c]
imul ecx, eax
mov eax, ecx
cdqe
movzx ecx, byte [rsp + 0x46]
movsx ecx, cl
movzx edx, byte [0x180146c03]
movzx edx, dl
sub ecx, edx
movsxd rcx, ecx
mov rdx, qword [0x180146cf8]
imul rdx, rdx, 0
sub rcx, rdx
add rax, rcx
mov byte [0x180146caf], al
mov eax, dword [rsp + 0x168]
add eax, 0x92
mov dword [rsp + 0x998], eax
movzx eax, byte [rsp + 0x40]
movzx eax, al
test eax, eax
je 0x180099a59
movzx eax, word [rsp + 0x54]
cwde
mov ecx, dword [rsp + 0x60]
not ecx
cmp eax, ecx
jae 0x180099996
mov dword [rsp + 0x310], 1
jmp 0x1800999a1
mov dword [rsp + 0x310], 0
mov rax, qword [0x180146d18]
mov ecx, dword [rsp + 0x310]
not ecx
movsxd rcx, ecx
cmp rax, rcx
jne 0x1800999c6
mov eax, dword [rsp + 0x168]
add eax, 0x171
mov dword [rsp + 0x99c], eax
mov dword [0x180146d34], 0
movsx eax, word [0x180146d10]
mov ecx, dword [0x180146d2c]
sub ecx, eax
mov eax, ecx
mov dword [0x180146d2c], eax
movzx eax, byte [rsp + 0x44]
movsx ax, al
mov word [0x180146d58], ax
mov eax, dword [0x180146d34]
mov dword [rsp + 0x62c], eax
cmp dword [rsp + 0x62c], 0
je 0x180099ab6
jmp 0x180099afc
mov qword [0x180146d18], 0x52
movzx eax, byte [0x180146bef]
movzx eax, al
test eax, eax
je 0x180099ae1