Function at 0x140162e90
Capabilities:
Encode data using base64
Encrypt data using speck
Parse credit card information

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x28]
sub rsp, 0x128
mov r13, r9
mov r10d, edx
mov r9, qword [r9 + 0xe0]
mov ebx, r10d
shr ebx, 2
mov r11, rcx
xor ecx, ecx
mov qword [rsp + 0x50], r9
mov rax, qword [r13]
and ebx, 1
mov rsi, qword [r13 + 0xe8]
mov edi, ecx
mov r15, qword [r13 + 0x40]
movzx r8d, cx
mov qword [rbp], rcx
mov r14d, ecx
mov edx, dword [rax + 0x40]
mov eax, r10d
shr eax, 0x13
mov r12d, edx
and eax, 1
mov qword [rbp - 8], rcx
and r12d, 8
mov qword [rsp + 0x60], rcx
mov dword [rbp - 0x18], r12d
mov qword [rsp + 0x70], rsi
mov dword [rbp - 0x5c], ecx
mov dword [rbp - 0x24], ecx
mov dword [rbp - 0x30], edx
mov word [rbp + 0x78], cx
mov dword [rbp - 0x44], ecx
mov dword [rbp - 0x40], ecx
mov dword [rsp + 0x68], ecx
mov dword [rbp - 0x6c], ecx
mov dword [rsp + 0x5c], ecx
mov dword [rbp - 0x68], eax
mov dword [rbp - 0x28], ebx
mov dword [rsp + 0x78], ecx
mov qword [rbp - 0x80], r15
mov qword [rbp + 8], rcx
je 0x140162f4e
mov dword [r9], 0x80090000
jmp 0x140162f5a
test dl, 4
je 0x140162f6b
mov dword [r9], 0x80180005
mov dword [r9 + 4], 0x801a0000
add r9, 8
mov qword [rsp + 0x50], r9
bt r10d, 0x19
jae 0x14016304a
cmp r11, r15
jae 0x140166072
mov ecx, 0xfc00
mov r10d, 0x10000
nop word [rax + rax]
cmp r9, rsi
jae 0x1401660ff
movzx edx, word [r11]
mov r8, r11
add r11, 2
test eax, eax
je 0x140162fd3
mov eax, edx
and eax, ecx
cmp eax, 0xd800
jne 0x140162fd3
movzx ecx, word [r11]
and edx, 0x3ff
mov eax, edx
and ecx, 0x3ff
shl eax, 0xa
mov edx, ecx
or edx, eax
add edx, r10d
add r11, 2
test ebx, ebx
je 0x140163029
mov rcx, r9
test rdi, rdi
je 0x140163001
mov rax, r8
sub rax, qword [r13 + 0x38]
sar rax, 1
sub eax, dword [rdi + 4]
mov dword [rdi + 8], eax
lea rax, [r9 - 0x10]
cmp rdi, rax
jne 0x140163001
cmp dword [rdi + 0xc], 0xff
je 0x14016301b
mov rdi, r9
mov dword [r9], 0x80060000
lea rcx, [r9 + 0x10]
mov dword [r9 + 8], r14d
mov dword [r9 + 0xc], 0xff
sub r8, qword [r13 + 0x38]
mov r9, rcx
sar r8, 1
mov dword [rdi + 4], r8d
mov eax, dword [rbp - 0x68]
mov ecx, 0xfc00
mov dword [r9], edx
add r9, 4
cmp r11, r15
jb 0x140162f90
movzx r8d, r14w
jmp 0x14016606f
mov r8, qword [r13 + 0x50]
xor ebx, ebx
add r8, r8
mov qword [rbp - 0x50], rbx
mov rcx, r8
movabs rax, 0xaaaaaaaaaaaaaaab
mul r8
shr rdx, 3
lea rax, [rdx + rdx*2]
shl rax, 2
sub rcx, rax
mov rax, qword [r13 + 0x28]
sub rax, rcx
mov ecx, r10d
add rax, r8
bts ecx, 7
mov qword [rbp - 0x10], rax
movzx r8d, bx
mov eax, r10d
and eax, 0x1000000
cmove ecx, r10d
mov r10d, 0xfc00
mov dword [rsp + 0x58], ecx
jmp 0x1401630e2
mov r15, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x5c]
jmp 0x1401630e2
mov r15, qword [rbp - 0x80]
mov r10d, 0xfc00
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
mov r14d, dword [rsp + 0x5c]
xor ebx, ebx
mov r13, qword [rbp + 0x88]
movzx r8d, word [rbp + 0x78]
movzx r12d, r8w
cmp r11, r15
jae 0x140166059
mov dword [rbp - 0x3c], ebx
mov r14d, ebx
mov dword [rbp - 0x48], ebx
mov r15d, ebx
cmp r9, rsi
jae 0x1401660ff
mov r8, qword [r13]
movzx eax, word [rbp + 0x78]
cmp eax, dword [r8 + 0x3c]
ja 0x14016604f
movzx r13d, word [r11]
mov rbx, r11
add r11, 2
mov dword [rbp - 0x2c], r13d
cmp dword [rbp - 0x68], 0
mov edx, r13d
mov dword [rbp - 0x70], r13d
mov rdi, r11
mov qword [rbp - 0x78], r11
mov rsi, r11
mov qword [rbp + 0x70], r11
je 0x140163188
mov eax, r13d
and eax, r10d
cmp eax, 0xd800
jne 0x140163188
movzx eax, word [r11]
and r13d, 0x3ff
shl r13d, 0xa
and eax, 0x3ff
or r13d, eax
add r13d, 0x10000
add r11, 2
mov dword [rbp - 0x2c], r13d
mov qword [rbp - 0x78], r11
mov rdi, r11
mov qword [rbp + 0x70], r11
mov rsi, r11
mov dword [rbp - 0x70], r13d
mov edx, r13d
cmp dword [rbp - 0x6c], 0
je 0x1401632a8
mov r15, qword [rbp - 0x80]
cmp edx, 0x5c
jne 0x1401631c4
cmp rdi, r15
jae 0x1401631c4
cmp word [r11], 0x45
jne 0x1401631c4
mov rsi, qword [rsp + 0x70]
lea r11, [rdi + 2]
mov rdi, qword [rsp + 0x60]
xor ebx, ebx
mov r14d, dword [rsp + 0x5c]
mov dword [rbp - 0x6c], ebx
jmp 0x1401630d6
cmp dword [rbp - 0x40], 0
jg 0x1401637e7
mov r14d, dword [rsp + 0x5c]
test r14d, r14d
jne 0x140163282
mov r14d, dword [rbp - 0x44]
mov eax, r14d
dec r14d
mov dword [rbp - 0x44], r14d
test eax, eax
jg 0x140163274
mov r10, qword [rsp + 0x60]
mov rcx, r9
mov rdx, qword [rbp + 0x88]
test r10, r10
je 0x140163218
mov rax, rbx
sub rax, qword [rdx + 0x38]
sar rax, 1
sub eax, dword [r10 + 4]
mov dword [r10 + 8], eax
cmp dword [rbp - 0x28], 0
jne 0x140163223
xor r10d, r10d
jmp 0x140163268
test r10, r10
je 0x14016323e
lea rax, [r9 - 0x10]
cmp r10, rax
mov eax, 0xff
jne 0x140163243
cmp dword [r10 + 0xc], eax
je 0x14016325d
jmp 0x140163243
mov eax, 0xff
mov r10, r9
mov dword [r9], 0x80060000
lea rcx, [r9 + 0x10]
mov dword [r9 + 8], 0
mov dword [r9 + 0xc], eax
sub rbx, qword [rdx + 0x38]
sar rbx, 1
mov dword [r10 + 4], ebx
mov r9, rcx
mov qword [rsp + 0x60], r10
mov ecx, dword [rsp + 0x58]
mov r14d, dword [rsp + 0x5c]
mov eax, 1
mov dword [rsp + 0x78], eax
mov rdi, qword [rsp + 0x60]
xor ebx, ebx
mov rsi, qword [rsp + 0x70]
mov r10d, 0xfc00
mov dword [r9], r13d
add r9, 4
mov qword [rsp + 0x50], r9
mov dword [rbp - 0x5c], ebx
jmp 0x1401630d6
cmp dword [rsp + 0x5c], 0
je 0x140163473
mov eax, ecx
and eax, 0x400080
cmp eax, 0x400080
jne 0x140163319
mov eax, 0xff
cmp edx, eax
jbe 0x1401632dd
mov eax, edx
or eax, 1
cmp eax, 0x200f
je 0x1401632dd
cmp eax, 0x2029
jne 0x140163327
cmp edx, 0x100
jae 0x140163473
cmp edx, 0x23
je 0x1401634b0
mov rax, qword [rbp + 0x88]
mov ecx, edx
mov rax, qword [rax + 0x20]
test byte [rcx + rax], 1
mov ecx, dword [rsp + 0x58]
jne 0x140163473
cmp edx, 0x85
je 0x1401634b0
cmp edx, 0x29
je 0x1401633fb
cmp edx, 0x5c
je 0x140163343
mov r15, qword [rbp - 0x80]
mov dword [r9], r13d
add r9, 4
mov r13, qword [rbp + 0x88]
mov qword [rsp + 0x50], r9
jmp 0x140165e6e
mov esi, dword [rsp + 0x58]
xor ebx, ebx
mov r15, qword [rbp - 0x80]
bt esi, 0x16
jae 0x1401633c5
mov eax, dword [r8 + 0x40]
lea r9, [rsp + 0x68]
mov r13, qword [rbp + 0x88]
lea r8, [rbp - 0x70]
mov qword [rsp + 0x38], r13
lea rcx, [rbp + 0x70]
mov dword [rsp + 0x30], ebx
mov rdx, r15
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], esi
call fcn.14015c150
mov edx, dword [rsp + 0x68]
mov ecx, eax
test edx, edx
jne 0x140165ef5
test eax, eax
je 0x1401633b8
sub ecx, 0x19
je 0x140165830
mov r11, qword [rbp + 0x70]
cmp ecx, 1
jne 0x140165e89
mov r9, qword [rsp + 0x50]
mov eax, ecx
mov dword [rbp - 0x6c], ecx
jmp 0x1401633d8
mov r11, qword [rbp + 0x70]
mov r13d, dword [rbp - 0x70]
mov r9, qword [rsp + 0x50]
mov dword [r9], r13d
add r9, 4
mov r13, qword [rbp + 0x88]
mov qword [rsp + 0x50], r9
mov rdi, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x58]
movzx r8d, word [rbp + 0x78]
mov r10d, 0xfc00
mov rsi, qword [rsp + 0x70]
mov r14d, dword [rsp + 0x5c]
jmp 0x1401630e2
xor r14d, r14d
mov rax, r11
sub rax, qword [rbp + 8]
mov edx, 0xffff
sar rax, 1
dec rax
mov dword [rsp + 0x5c], r14d
cmp rax, rdx
jg 0x140165e93
mov rbx, qword [rbp]
mov rax, r9
mov edx, dword [rbp - 0x24]
sub rax, rbx
mov r15, qword [rbp - 0x80]
mov r13, qword [rbp + 0x88]
mov rdi, qword [rsp + 0x60]
movzx r8d, word [rbp + 0x78]
mov rsi, qword [rsp + 0x70]
sar rax, 2
dec eax
mov dword [rbx], eax
mov ebx, r14d
test edx, edx
je 0x1401630e2
mov dword [r9], edx
add r9, 4
mov qword [rsp + 0x50], r9
mov dword [rbp - 0x24], ebx
mov r13, qword [rbp + 0x88]
jmp 0x1401630e2
mov r10, qword [rbp - 0x80]
cmp edx, 0x5c
jne 0x1401634b4
cmp rdi, r10
jae 0x1401634b4
movzx eax, word [r11]
cmp ax, 0x51
je 0x140163491
cmp ax, 0x45
jne 0x1401634b4
mov r13, qword [rbp + 0x88]
lea r11, [rdi + 2]
xor ebx, ebx
mov r15, r10
cmp ax, 0x51
sete bl
mov dword [rbp - 0x6c], ebx
jmp 0x140165e68
mov r10, qword [rbp - 0x80]
test cl, cl
jns 0x140163642
cmp edx, 0x100
jae 0x1401634df
mov rax, qword [rbp + 0x88]
mov ecx, edx
mov rax, qword [rax + 0x20]
test byte [rcx + rax], 1
mov ecx, dword [rsp + 0x58]
jne 0x1401630bb
cmp edx, 0x85
je 0x1401630bb
mov eax, edx
or eax, 1
cmp eax, 0x200f
je 0x1401630bb
cmp eax, 0x2029
je 0x1401630bb
cmp edx, 0x23
jne 0x140163642
mov r15, qword [rbp - 0x80]
lea ebx, [rdx - 0x23]
mov r13, qword [rbp + 0x88]
mov r10d, 0xfc00
mov rdi, qword [rsp + 0x60]
movzx r8d, word [rbp + 0x78]
mov rsi, qword [rsp + 0x70]
mov r14d, dword [rsp + 0x5c]
cmp r11, r15
jae 0x1401630e2
mov r8d, dword [rbp - 0x68]
nop dword [rax]
nop dword [rax + rax]
mov edx, dword [r13 + 0x100]
mov rcx, qword [r13 + 0x40]
test edx, edx
je 0x14016358f
cmp r11, rcx
jae 0x1401635c4
mov eax, dword [rbp - 0x68]
lea r9, [r13 + 0x104]
mov r8, rcx
mov dword [rsp + 0x20], eax
mov rcx, r11
call fcn.140168980
mov r11, qword [rbp - 0x78]
test eax, eax
jne 0x14016362b
mov r8d, dword [rbp - 0x68]
jmp 0x1401635c4
mov edx, dword [r13 + 0x104]
imul rax, rdx, 0xfffffffffffffffe
add rax, rcx
cmp r11, rax
ja 0x1401635c4
movzx eax, word [r13 + 0x110]
cmp word [r11], ax
jne 0x1401635c4
cmp edx, 1
je 0x140163632
movzx eax, word [r13 + 0x112]
cmp word [r11 + 2], ax
je 0x140163632
add r11, 2
mov r10d, 0xfc00
mov qword [rbp - 0x78], r11
mov rax, r11
test r8d, r8d
je 0x140163600
cmp r11, r15
jae 0x140163600
movzx eax, word [r11]
mov ecx, 0xdc00
and ax, r10w
cmp ax, cx
jne 0x140163550
add r11, 2
mov qword [rbp - 0x78], r11
mov rax, r11
mov r9, qword [rsp + 0x50]
mov ebx, 0
mov rdi, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x58]
mov rsi, qword [rsp + 0x70]
mov r14d, dword [rsp + 0x5c]
cmp rax, r15
jb 0x140163550
jmp 0x1401630dd
mov edx, dword [r13 + 0x104]
mov r9, qword [rsp + 0x50]
mov eax, edx
lea r11, [r11 + rax*2]
jmp 0x140165e64
cmp edx, 0x28
jne 0x14016369f
mov rax, r10
sub rax, r11
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x1401636e6
cmp word [r11], 0x3f
jne 0x1401636e6
cmp word [r11 + 2], 0x23
jne 0x1401636e6
mov r15, qword [rbp - 0x80]
add r11, 2
cmp r11, r15
jae 0x140165ea1
cmp word [r11], 0x29
jne 0x140163672
cmp r11, r15
jae 0x140165ea1
mov r13, qword [rbp + 0x88]
add r11, 2
jmp 0x140165e68
lea eax, [rdx - 0x2a]
cmp eax, 1
jbe 0x14016378a
cmp edx, 0x3f
je 0x14016378a
cmp edx, 0x7b
jne 0x1401636e6
lea rax, [rsp + 0x68]
mov qword [rbp + 0x10], r11
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rcx, [rbp + 0x10]
mov rdx, r10
call fcn.140167ec0
mov r9, qword [rsp + 0x50]
test eax, eax
jne 0x14016378a
mov ecx, dword [rbp - 0x44]
mov eax, ecx
mov r10, qword [rsp + 0x60]
dec ecx
mov dword [rbp - 0x44], ecx
test eax, eax
jg 0x14016378f
mov rdx, qword [rbp + 0x88]
mov rcx, r9
test r10, r10
je 0x14016371e
mov rax, rbx
sub rax, qword [rdx + 0x38]
sar rax, 1
sub eax, dword [r10 + 4]
mov dword [r10 + 8], eax
cmp dword [rbp - 0x28], 0
jne 0x140163736
xor r10d, r10d
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], r10
mov r9, rcx
jmp 0x14016378f
test r10, r10
je 0x140163751
lea rax, [r9 - 0x10]
cmp r10, rax
mov eax, 0xff
jne 0x140163756
cmp dword [r10 + 0xc], eax
je 0x140163770
jmp 0x140163756
mov eax, 0xff
mov r10, r9
mov dword [r9], 0x80060000
lea rcx, [r9 + 0x10]
mov dword [r9 + 8], 0
mov dword [r9 + 0xc], eax
sub rbx, qword [rdx + 0x38]
mov r9, rcx
sar rbx, 1
mov dword [r10 + 4], ebx
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x50], rcx
jmp 0x14016378f
mov r10, qword [rsp + 0x60]
mov edx, dword [rbp - 0x40]
test edx, edx
jle 0x140163828
cmp r13d, 0x28
jne 0x1401637e7
mov rax, qword [rbp - 0x80]
mov r11, qword [rbp - 0x78]
sub rax, r11
and rax, 0xfffffffffffffffe
cmp rax, 6
jl 0x1401637e7
movzx eax, word [r11]
cmp ax, 0x3f
je 0x1401637f5
cmp ax, 0x2a
jne 0x1401637e7
movzx eax, word [r11 + 2]
mov ecx, 0xff
cmp ax, cx
ja 0x1401637e7
mov r8, qword [rbp + 0x88]
mov ecx, eax
mov rax, qword [r8 + 0x20]
test byte [rcx + rax], 4
jne 0x140163833
lea r11, [rdi - 2]
mov edx, 0x80
jmp 0x14016440c
movzx ecx, word [r11 + 2]
sub ecx, 0x21
je 0x14016382c
sub ecx, 0x1b
je 0x140163815
sub ecx, 1
je 0x14016382c
cmp ecx, 6
jne 0x1401637e7
cmp edx, 2
jne 0x1401637e7
jmp 0x14016382c
movzx eax, word [r11 + 4]
cmp ax, 0x3d
je 0x14016382c
cmp ax, 0x21
jne 0x1401637e7
jmp 0x14016382c
mov r11, qword [rbp - 0x78]
mov r8, qword [rbp + 0x88]
mov ecx, dword [rbp - 0x5c]
xor edi, edi
mov ebx, dword [rsp + 0x78]
mov r13d, edx
mov dword [rbp - 0x40], edi
mov eax, ecx
mov dword [rsp + 0x78], edi
mov edx, ecx
mov dword [rbp - 0x5c], edi
mov edi, dword [rbp - 0x2c]
test ecx, ecx
je 0x140163893
cmp edi, 0x3f
je 0x14016385e
cmp edi, 0x2b
jne 0x140163893
cmp edi, 0x3f
mov ecx, 0x10000
mov r8d, 0x20000
cmove ecx, r8d
add ecx, eax
mov rax, 0xfffffffffffffffc
cmp edx, 0x803d0000
mov rdx, 0xfffffffffffffff4
cmove rax, rdx
mov dword [rax + r9], ecx
jmp 0x140165e59
lea eax, [rdi - 0x24]
cmp eax, 0x58
ja case.0x1401638b8.37
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x166160]
mov ecx, dword [rdx + rax*4 + 0x16612c]
add rcx, rdx
jmp rcx
mov rax, qword [r8]
lea r9, [rsp + 0x68]
mov r15, qword [rbp - 0x80]
lea rcx, [rbp + 0x70]
mov esi, dword [rsp + 0x58]
xor r12d, r12d
mov qword [rsp + 0x38], r8
mov rdx, r15
mov eax, dword [rax + 0x40]
lea r8, [rbp - 0x70]
mov dword [rsp + 0x30], r12d
mov r13, r11
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], esi
call fcn.14015c150
mov edx, dword [rsp + 0x68]
mov ebx, eax
test edx, edx
jne 0x140163946
test eax, eax
je 0x140163da0
js 0x140163d22
lea ecx, [rax - 6]
cmp ecx, 0x16
ja case.0x140163935.13
movsxd rax, ecx
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x1661d4]
mov ecx, dword [rdx + rax*4 + 0x1661bc]
add rcx, rdx
jmp rcx
bt esi, 0x14
jae case.0x140163935.12
mov edx, UnRegisterTypeLib
mov dword [rsp + 0x68], edx
mov rdi, qword [rbp + 0x70]
mov qword [rbp - 0x78], rdi
test byte [rbp - 0x30], 2
je 0x140164408
mov r15, qword [rbp - 0x80]
mov r11, r13
cmp r13, r15
jb 0x140163dac
mov ecx, 0x5c
mov r10d, 0xfc00
mov r9, qword [rsp + 0x50]
mov eax, 1
mov r13, qword [rbp + 0x88]
mov dword [rsp + 0x78], eax
mov dword [r9], ecx
add r9, 4
mov ecx, dword [rsp + 0x58]
mov qword [rsp + 0x50], r9
jmp 0x140165e6e
mov eax, 1
mov dword [rsp + 0x78], eax
jmp case.0x140163935.13
mov rax, qword [rbp + 0x88]
lea r9, [rsp + 0x78]
mov qword [rsp + 0x28], rax
lea r8, [rbp - 0x70]
lea rax, [rsp + 0x68]
mov word [rbp - 0x70], r12w
lea rdx, [rbp - 0x20]
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x70]
mov word [rsp + 0x78], r12w
call fcn.1401622f0
test eax, eax
je 0x140163c42
cmp dword [rbp - 0x20], r12d
je 0x1401639fc
cmp ebx, 0xf
mov eax, r12d
sete al
lea ebx, [rax + 0xf]
mov r9, qword [rsp + 0x50]
lea eax, [rbx - 0x7fe80000]
movzx ecx, word [rbp - 0x70]
shl ecx, 0x10
mov dword [r9], eax
movzx eax, word [rsp + 0x78]
or ecx, eax
mov dword [r9 + 4], ecx
add r9, 8
jmp 0x140163e77
mov rdi, qword [rbp + 0x70]
mov qword [rbp - 0x78], rdi
cmp rdi, r15
jae 0x140163c4b
movzx eax, word [rdi]
cmp ax, 0x7b
je 0x140163a53
cmp ax, 0x3c
je 0x140163aca
cmp ax, 0x27
jne 0x140163c4b
cmp ax, 0x27
mov r15d, 0x7d
mov eax, 0x27
cmove r15d, eax
mov esi, ebx
cmp ebx, 0x1b
jne 0x140163bb2
cmp r15d, 0x7d
je 0x140163bb2
mov rax, qword [rbp + 0x88]
lea r8, [rdi + 2]
mov edx, r12d
mov r9d, 0xffff
mov edi, r12d
mov dword [rsp + 0x68], edx
mov ecx, r12d
mov r14d, r12d
mov r11d, dword [rax + 0xd4]
mov r10d, r9d
mov r12, qword [rbp - 0x80]
test r11d, r11d
js 0x140163ae1
cmp r8, r12
jae 0x140163bb6
movzx eax, word [r8]
cmp ax, 0x2b
jne 0x140163ad2
lea edi, [rbx - 0x1a]
sub r10d, r11d
jmp 0x140163add
mov r15d, 0x3e
jmp 0x140163a66
cmp ax, 0x2d
jne 0x140163aea
mov edi, 0xffffffff
add r8, 2
cmp r8, r12
jae 0x140163bb6
movzx eax, word [r8]
sub ax, 0x30
cmp ax, 9
ja 0x140163bb6
nop dword [rax]
movzx r9d, word [r8]
lea eax, [r9 - 0x30]
cmp ax, 9
ja 0x140163b26
lea ecx, [rcx + rcx*4]
add r8, 2
lea ecx, [rcx - 0x18]
lea ecx, [r9 + rcx*2]
cmp ecx, r10d
ja 0x140163b3e
cmp r8, r12
jb 0x140163b00
test r11d, r11d
js 0x140163b69
test edi, edi
je 0x140163b69
test ecx, ecx
jne 0x140163b49
mov edx, 0x7e
mov dword [rsp + 0x68], edx
jmp 0x140163b6f
mov edx, 0xa1
mov dword [rsp + 0x68], edx
jmp 0x140163b6f
test edi, edi
jle 0x140163b52
add ecx, r11d
jmp 0x140163b69
cmp ecx, r11d
jle 0x140163b62
mov edx, 0x73
mov dword [rsp + 0x68], edx
jmp 0x140163b6f
sub r11d, ecx
lea ecx, [r11 + 1]
mov r14d, 1
mov dword [rbp - 0x64], ecx
test r14d, r14d
je 0x140163ba8
cmp r8, r12
jae 0x140163b98
movzx eax, word [r8]
cmp eax, r15d
jne 0x140163b98
mov r15, qword [rbp - 0x80]
mov r11, r8
mov r13, qword [rbp + 0x88]
jmp 0x1401659e6
mov eax, 0x9d
mov edx, eax
mov dword [rsp + 0x68], eax
jmp 0x14016394e
test edx, edx
jne 0x14016394e
jmp 0x140163bb6
mov r12, qword [rbp - 0x80]
mov rax, qword [rbp + 0x88]
lea rcx, [rbp + 0x70]
mov r8d, dword [rbp - 0x68]
mov r9d, r15d
mov qword [rsp + 0x40], rax
mov rdx, r12
lea rax, [rsp + 0x68]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
call fcn.140167af0
test eax, eax
je 0x140163c42
cmp esi, 0x1c
je 0x140163c0e
mov eax, 0x80210000
cmp r15d, 0x7d
jne 0x140163c13
mov eax, 0x80040000
mov r9, qword [rsp + 0x50]
mov rcx, qword [rbp - 0x58]
mov r11, qword [rbp + 0x70]
mov dword [r9], eax
mov eax, dword [rbp - 0x60]
mov dword [r9 + 4], eax
mov rax, rcx
shr rax, 0x20
mov dword [r9 + 8], eax
mov dword [r9 + 0xc], ecx
add r9, 0x10
jmp 0x140165e4b
mov edx, dword [rsp + 0x68]
jmp 0x140163946
cmp ebx, 0x1b
mov edx, 0xa9
mov eax, 0x9d
cmove edx, eax
mov dword [rsp + 0x68], edx
jmp 0x14016394e
bt esi, 0x11
mov eax, 1
mov dword [rsp + 0x78], eax
jb 0x140163c93
mov r9, qword [rsp + 0x50]
lea eax, [rbx - 0x7fe80000]
mov r11, qword [rbp + 0x70]
mov dword [r9], eax
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x140165e5d
lea eax, [rbx - 7]
test eax, 0xfffffff9
jne 0x140163ca7
mov eax, 0x80180010
cmp ebx, 0xd
jne 0x140163cac
mov eax, 0x8018000f
mov r9, qword [rsp + 0x50]
mov dword [r9], eax
add r9, 4
lea eax, [rbx - 6]
mov qword [rsp + 0x50], r9
cmp eax, 5
ja case.default.0x140163cd5
cdqe
mov ecx, dword [rdx + rax*4 + 0x1661ec]
add rcx, rdx
jmp rcx
mov r11, qword [rbp + 0x70]
mov dword [r9], 0x3000d
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x140165e5d
mov r11, qword [rbp + 0x70]
mov dword [r9], 0x70000
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x140165e5d
mov r11, qword [rbp + 0x70]
mov dword [r9], 0x90000
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x140165e5d
mov r9, qword [rsp + 0x50]
neg ebx
mov r13, qword [rbp + 0x88]
mov eax, ebx
mov r11, qword [rbp + 0x70]
or eax, 0x80030000
mov rcx, r11
sub rcx, qword [r13 + 0x38]
sar rcx, 1
dec rcx
mov dword [r9], eax
add r9, 4
mov qword [rbp - 0x58], rcx
mov qword [rsp + 0x50], r9
cmp ebx, 0xa
jge 0x140163d7b
movsxd rax, ebx
cmp qword [r13 + rax*8 + 0x58], 0xffffffffffffffff
jne 0x140163d92
mov qword [r13 + rax*8 + 0x58], rcx
mov eax, 1
mov dword [rsp + 0x78], eax
jmp 0x140165e64
mov rax, rcx
shr rax, 0x20
mov dword [r9], eax
mov dword [r9 + 4], ecx
add r9, 8
mov qword [rsp + 0x50], r9
mov eax, 1
mov dword [rsp + 0x78], eax
jmp 0x140165e64
mov r11, qword [rbp + 0x70]
mov ecx, dword [rbp - 0x70]
jmp 0x14016396d
cmp dword [rbp - 0x68], 0
lea r11, [r13 + 2]
movzx ecx, word [r13]
je 0x14016396d
mov eax, ecx
mov r10d, 0xfc00
and eax, r10d
cmp eax, 0xd800
jne 0x140163973
movzx eax, word [r11]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add r11, 2
jmp 0x140163973
mov dword [r9], 0x80090000
add r9, 4
jmp 0x140165e54
mov dword [r9], 0x80160000
add r9, 4
jmp 0x140165e54
mov dword [r9], 0x80170000
jmp 0x140165e47
mov edx, 0x80340000
jmp 0x140163e9f
mov edx, 0x80370000
jmp 0x140163e9f
mov edx, 0x803a0000
jmp 0x140163e9f
mov r15, qword [rbp - 0x80]
lea rax, [rsp + 0x68]
mov rdx, r15
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x48]
lea r8, [rbp - 0x3c]
lea rcx, [rbp + 0x70]
call fcn.140167ec0
test eax, eax
jne 0x140163e8e
mov edx, dword [rsp + 0x68]
test edx, edx
jne 0x140165ef5
mov r9, qword [rsp + 0x50]
mov dword [r9], edi
add r9, 4
mov r11, qword [rbp + 0x70]
mov eax, 1
mov dword [rsp + 0x78], eax
mov qword [rsp + 0x50], r9
jmp 0x140165e5d
mov r11, qword [rbp + 0x70]
mov edx, 0x803d0000
mov r14d, dword [rbp - 0x3c]
mov r15d, dword [rbp - 0x48]
mov dword [rbp - 0x5c], edx
test ebx, ebx
je 0x140165eab
mov r9, qword [rsp + 0x50]
cmp dword [r9 - 4], 0x802a0000
lea rcx, [r9 - 4]
jne 0x140163ef0
mov rsi, qword [rbp - 8]
cmp rcx, rsi
jb 0x140163ede
nop word [rax + rax]
mov eax, dword [rcx]
mov dword [rcx + 4], eax
sub rcx, 4
cmp rcx, rsi
jae 0x140163ed0
mov dword [rsi], 0x801a0000
mov dword [r9 + 4], 0x80190000
add r9, 8
mov r13, qword [rbp + 0x88]
mov r10d, 0xfc00
mov ecx, dword [rsp + 0x58]
mov ebx, 0
movzx r8d, word [rbp + 0x78]
mov rsi, qword [rsp + 0x70]
mov dword [r9], edx
add r9, 4
cmp edi, 0x7b
mov qword [rsp + 0x50], r9
mov rdi, qword [rsp + 0x60]
jne 0x1401630b0
mov dword [r9], r14d
mov r14d, dword [rsp + 0x5c]
mov dword [r9 + 4], r15d
add r9, 8
mov r15, qword [rbp - 0x80]
mov qword [rsp + 0x50], r9
jmp 0x1401630e2
mov r15, qword [rbp - 0x80]
mov r14d, 1
mov rax, r15
mov dword [rsp + 0x78], r14d
sub rax, r11
and rax, 0xfffffffffffffffe
cmp rax, 0xc
jl 0x14016402e
lea r8d, [r14 + 5]
mov rcx, r11
lea rdx, [0x1401ee330]
call fcn.1401682b0
test eax, eax
je 0x140163f9e
mov rcx, qword [rbp - 0x78]
lea r8d, [r14 + 5]
lea rdx, str._:_:__
call fcn.1401682b0
test eax, eax
jne 0x14016402a
mov rbx, qword [rsp + 0x50]
mov r11, qword [rbp - 0x78]
mov dword [rbx], 0x80180005
lea rax, [rbx + 8]
cmp word [r11 + 4], 0x3c
jne 0x140163fc4
mov dword [rbx + 4], 0x80230000
xor ebx, ebx
jmp 0x140163fde
mov rcx, qword [rbp + 0x80]
mov dword [rbx + 4], 0x80250000
xor ebx, ebx
mov dword [rcx], r14d
mov qword [rax], rbx
add rax, 8
mov ecx, dword [rsp + 0x58]
lea r9, [rax + 4]
bt ecx, 0x11
jb 0x140163ff4
mov dword [rax], 0x8018000b
jmp 0x140164005
mov dword [rax], 0x80180010
mov dword [r9], 0x90000
add r9, 4
mov r13, qword [rbp + 0x88]
mov rdi, qword [rsp + 0x60]
mov dword [r9], 0x80190000
add r9, 4
mov qword [rsp + 0x50], r9
add r11, 0xc
jmp 0x1401633e1
mov r11, qword [rbp - 0x78]
cmp r11, r15
jae 0x1401640ce
movzx r10d, word [r11]
cmp r10d, 0x3d
ja 0x1401640ce
movabs rcx, 0x2400400000000000
bt rcx, r10
jae 0x1401640ce
lea rdx, [rsi + 2]
mov r9, r15
sub r9, rdx
mov rax, r9
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x1401640ce
nop dword [rax]
movzx r8d, word [rdx]
cmp r8w, 0x5c
jne 0x140164093
movzx eax, word [rdx + 2]
sub ax, r8w
cmp ax, r14w
ja 0x1401640a8
add rdx, 2
sub r9, 2
jmp 0x1401640b9
cmp r8w, 0x5b
jne 0x1401640a1
cmp word [rdx + 2], r10w
jmp 0x1401640a6
cmp r8w, 0x5d
je 0x1401640ce
cmp r8w, r10w
jne 0x1401640b9
cmp word [rdx + 2], 0x5d
je 0x140165eb9
sub r9, 2
add rdx, 2
mov rax, r9
and rax, 0xfffffffffffffffe
cmp rax, 4
jge 0x140164070
xor r12d, r12d
mov edi, r12d
cmp r11, r15
jae 0x1401641c8
mov r12d, dword [rsp + 0x58]
movzx esi, word [r11]
add r11, 2
cmp dword [rbp - 0x68], 0
mov ecx, esi
mov dword [rbp - 0x70], esi
mov rbx, r11
mov qword [rbp - 0x78], r11
mov qword [rbp + 0x70], r11
je 0x14016413c
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x14016413c
movzx eax, word [r11]
and esi, 0x3ff
shl esi, 0xa
and eax, 0x3ff
or esi, eax
add esi, 0x10000
add r11, 2
mov dword [rbp - 0x70], esi
mov qword [rbp - 0x78], r11
mov rbx, r11
mov qword [rbp + 0x70], r11
mov ecx, esi
cmp ecx, 0x5c
jne 0x140164194
cmp rbx, r15
jae 0x14016415c
cmp word [r11], 0x45
jne 0x14016415c
mov eax, 2
lea r11, [rax + rbx]
mov qword [rbp + 0x70], r11
jmp 0x1401641b1
mov rax, r15
sub rax, rbx
and rax, 0xfffffffffffffffe
cmp rax, 6
jl 0x1401641c3
mov r8d, 3
lea rdx, [0x1401ee340]
mov rcx, r11
call fcn.1401682b0
test eax, eax
jne 0x1401641bf
mov eax, 6
lea r11, [rax + rbx]
mov qword [rbp + 0x70], r11
jmp 0x1401641b1
bt r12d, 0x18
jae 0x1401641a5
cmp ecx, 0x20
je 0x1401641b1
cmp ecx, 9
je 0x1401641b1
test edi, edi
jne 0x1401641c3
cmp ecx, 0x5e
jne 0x1401641c3
mov edi, r14d
cmp r11, r15
jb 0x1401640e2
xor r12d, r12d
jmp 0x1401641cb
mov r11, qword [rbp - 0x78]
xor r12d, r12d
jmp 0x1401641cb
mov esi, dword [rbp - 0x2c]
mov r13, qword [rbp + 0x88]
cmp esi, 0x5d
jne 0x140164205
test byte [r13 + 0xcc], r14b
je 0x140164205
mov r9, qword [rsp + 0x50]
test edi, edi
mov eax, 0x800b0000
mov ecx, 0x800c0000
cmovne eax, ecx
mov dword [r9], eax
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x140165e64
mov r9, qword [rsp + 0x50]
test edi, edi
mov ebx, dword [rbp - 0x6c]
mov eax, 0x800a0000
mov ecx, 0x800e0000
mov edi, r12d
cmovne eax, ecx
mov edx, r14d
mov dword [r9], eax
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x140164233
xor r12d, r12d
mov r10d, edx
test ebx, ebx
je 0x140164266
cmp esi, 0x5c
jne 0x14016434a
cmp r11, r15
jae 0x14016434a
cmp word [r11], 0x45
jne 0x14016434a
mov ebx, r12d
add r11, 2
mov dword [rbp - 0x6c], ebx
jmp 0x1401644bf
mov r14d, dword [rsp + 0x58]
bt r14d, 0x18
jae 0x140164284
cmp esi, 0x20
je 0x1401644bf
cmp esi, 9
je 0x1401644bf
cmp esi, 0x5b
jne 0x14016459c
mov rax, r15
sub rax, r11
and rax, 0xfffffffffffffffe
cmp rax, 6
jl 0x14016434a
movzx r9d, word [r11]
cmp r9d, 0x3d
ja 0x140164345
movabs rcx, 0x2400400000000000
bt rcx, r9
jae 0x140164345
lea r13, [r11 + 2]
mov r8, r15
sub r8, r13
mov r12, r13
mov rax, r8
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x140164839
movzx edx, word [r12]
cmp dx, 0x5c
jne 0x140164305
movzx eax, word [r12 + 2]
sub ax, dx
cmp ax, 1
ja 0x140164319
add r12, 2
sub r8, 2
jmp 0x140164328
cmp dx, 0x5b
jne 0x140164313
cmp word [r12 + 2], r9w
jmp 0x140164317
cmp dx, 0x5d
je 0x14016433d
cmp dx, r9w
jne 0x140164328
cmp word [r12 + 2], 0x5d
je 0x14016436e
sub r8, 2
add r12, 2
mov rax, r8
and rax, 0xfffffffffffffffe
cmp rax, 4
jge 0x1401642e1
xor r12d, r12d
mov edx, 1
mov r9, qword [rsp + 0x50]
cmp edi, 1
jne 0x140164873
cmp esi, dword [r9 - 8]
jne 0x140164841
sub r9, 4
mov edi, r12d
mov qword [rsp + 0x50], r9
jmp 0x1401644bf
xor eax, eax
mov r15d, eax
cmp edi, 1
je 0x140165f02
cmp r9d, 0x3a
jne 0x140165ed0
cmp word [r13], 0x5e
mov qword [rbp - 0x78], r13
jne 0x1401643a1
lea rdi, [r13 + 2]
mov qword [rbp - 0x78], rdi
lea r15d, [rax + 1]
mov r13, rdi
mov rbx, r12
lea rdi, [0x1401ee040]
sub rbx, r13
lea rcx, [0x140000000]
sar rbx, 1
mov r14d, eax
mov rsi, rax
nop
movzx eax, byte [rsi + rcx + 0x1ee098]
cmp ebx, eax
jne 0x1401643e5
mov r8d, ebx
mov rdx, rdi
mov rcx, r13
call fcn.1401682b0
test eax, eax
je 0x140164437
lea rcx, [0x140000000]
movzx eax, byte [rsi + rcx + 0x1ee098]
inc rdi
inc rsi
add rdi, rax
inc r14d
cmp byte [rsi + rcx + 0x1ee098], 0
jne 0x1401643c0
mov edx, 0x82
mov r11, qword [rbp - 0x78]
mov rax, qword [rbp + 0x88]
sub r11, qword [rax + 0x38]
sar r11, 1
mov qword [rax + 0xa8], r11
mov eax, edx
add rsp, 0x128
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
test r14d, r14d
js 0x140164403
mov rax, qword [rbp - 0x80]
lea r11, [r12 + 4]
add rax, 0xfffffffffffffffe
cmp r11, rax
jae 0x140164461
cmp word [r11], 0x2d
jne 0x140164461
cmp word [r11 + 2], 0x5d
jne 0x140165f02
xor eax, eax
bt dword [rsp + 0x58], 0x11
mov edi, eax
jae 0x140164581
lea rcx, [0x140000000]
mov eax, dword [rcx + rsi*8 + 0x28c050]
mov ecx, dword [rcx + rsi*8 + 0x28c054]
test eax, eax
js 0x140164561
mov r9, qword [rsp + 0x50]
xor r15d, 1
sub r15d, 0x7fe7fff1
shl eax, 0x10
or eax, ecx
mov dword [r9], r15d
mov dword [r9 + 4], eax
add r9, 8
mov r15, qword [rbp - 0x80]
mov qword [rsp + 0x50], r9
mov ebx, dword [rbp - 0x6c]
mov edx, 1
cmp r11, r15
jae 0x140165f1a
movzx esi, word [r11]
mov r10d, 0xfc00
add r11, 2
mov dword [rbp - 0x70], esi
cmp dword [rbp - 0x68], 0
mov ecx, esi
mov qword [rbp + 0x70], r11
je 0x140164518
mov eax, esi
and eax, r10d
cmp eax, 0xd800
jne 0x140164518
movzx eax, word [r11]
and esi, 0x3ff
shl esi, 0xa
and eax, 0x3ff
or esi, eax
add esi, 0x10000
add r11, 2
mov dword [rbp - 0x70], esi
mov qword [rbp + 0x70], r11
mov ecx, esi
mov r13, qword [rbp + 0x88]
cmp ecx, 0x5d
jne 0x140164230
test ebx, ebx
jne 0x140164230
cmp edi, 1
jne 0x14016453d
mov dword [r9 - 4], 0x2d
mov r13, qword [rbp + 0x88]
mov ecx, dword [rsp + 0x58]
mov dword [r9], 0x800d0000
add r9, 4
mov qword [rsp + 0x50], r9
mov dword [rsp + 0x78], edx
jmp 0x140165e6e
test ecx, ecx
je 0x140164581
mov r9, qword [rsp + 0x50]
xor r15d, 1
sub r15d, 0x7fe7ffee
mov dword [r9], r15d
add r9, 4
jmp 0x1401644ae
mov r9, qword [rsp + 0x50]
lea eax, [r15 + 0x801c]
shl eax, 0x10
mov dword [r9], eax
mov dword [r9 + 4], r14d
jmp 0x1401644aa
cmp esi, 0x2d
jne 0x1401645cd
cmp edi, 2
jb 0x14016434a
cmp edi, 3
mov eax, 0x801e0000
mov ecx, 0x801f0000
mov edi, edx
cmove eax, ecx
mov dword [r9], eax
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x1401644bf
cmp esi, 0x5c
jne 0x14016434a
mov rax, qword [r13]
lea r9, [rsp + 0x68]
mov qword [rsp + 0x38], r13
lea r8, [rbp - 0x70]
mov dword [rsp + 0x30], edx
lea rcx, [rbp + 0x70]
mov rdx, r15
mov qword [rbp - 0x78], r11
mov eax, dword [rax + 0x40]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r14d
call fcn.14015c150
mov edx, dword [rsp + 0x68]
movsxd rbx, eax
test edx, edx
je 0x140164678
test byte [rbp - 0x30], 2
je 0x140165ef5
mov r11, qword [rbp - 0x78]
cmp r11, r15
jb 0x140164631
mov ebx, dword [rbp - 0x6c]
mov r10d, r12d
jmp 0x140164340
cmp dword [rbp - 0x68], 0
lea rcx, [r11 + 2]
movzx esi, word [r11]
mov r11, rcx
je 0x1401646a1
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x1401646a1
movzx eax, word [rcx]
lea r11, [rcx + 2]
mov ebx, dword [rbp - 0x6c]
and esi, 0x3ff
shl esi, 0xa
and eax, 0x3ff
or esi, eax
mov r10d, r12d
add esi, 0x10000
jmp 0x140164340
lea r8, [0x140000000]
cmp ebx, 0x1a
ja case.0x140164698.5
movzx eax, byte [r8 + rbx + 0x16621c]
mov ecx, dword [r8 + rax*4 + 0x166204]
add rcx, r8
jmp rcx
mov r11, qword [rbp + 0x70]
mov esi, dword [rbp - 0x70]
mov ebx, dword [rbp - 0x6c]
mov r10d, r12d
jmp 0x140164340
mov r11, qword [rbp + 0x70]
mov esi, 8
mov ebx, dword [rbp - 0x6c]
mov r10d, r12d
jmp 0x140164340
mov r11, qword [rbp + 0x70]
mov edx, 1
mov r9, qword [rsp + 0x50]
mov ebx, edx
mov dword [rbp - 0x6c], edx
jmp 0x1401644bf
mov r11, qword [rbp + 0x70]
mov r9, qword [rsp + 0x50]
jmp 0x1401644b7
cmp edi, 1
je 0x140165efe
lea edx, [rbx - 6]
mov edi, r12d
cmp edx, 0xf
ja case.0x14016470c.13
movsxd rax, edx
mov ecx, dword [r8 + rax*4 + 0x166238]
add rcx, r8
jmp rcx
mov r9, qword [rsp + 0x50]
lea eax, [rbx - 0x7fe80000]
mov dword [r9], eax
add r9, 4
jmp 0x140164807
bt r14d, 0x11
jae case.0x14016470c.18
lea eax, [rbx - 7]
test eax, 0xfffffff9
jne 0x140164740
mov eax, 0x80180010
cmp ebx, 0xd
jne 0x140164745
mov eax, 0x8018000f
mov r9, qword [rsp + 0x50]
mov dword [r9], eax
add r9, 4
mov qword [rsp + 0x50], r9
cmp edx, 5
ja case.default.0x14016476d
movsxd rax, edx
mov ecx, dword [r8 + rax*4 + 0x166278]
add rcx, r8
jmp rcx
mov dword [r9], 0x3000d
add r9, 4
jmp 0x140164807
mov dword [r9], 0x70000
add r9, 4
jmp 0x140164807
mov dword [r9], 0x90000
add r9, 4
jmp 0x140164807
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], r13
lea r9, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x78]
mov word [rsp + 0x78], r12w
lea rdx, [rbp - 0x1c]
mov word [rbp - 0x70], r12w
lea rcx, [rbp + 0x70]
call fcn.1401622f0
test eax, eax
je 0x140165f73
cmp dword [rbp - 0x1c], 0
je 0x1401647e3
cmp ebx, 0xf
mov eax, r12d
sete al
lea ebx, [rax + 0xf]
mov r9, qword [rsp + 0x50]
lea eax, [rbx - 0x7fe80000]
movzx ecx, word [rsp + 0x78]
shl ecx, 0x10
mov dword [r9], eax
movzx eax, word [rbp - 0x70]
or ecx, eax
mov dword [r9 + 4], ecx
add r9, 8
mov qword [rsp + 0x50], r9
mov r11, qword [rbp + 0x70]
lea rax, [r15 - 2]
cmp r11, rax
jae 0x1401644b7
cmp word [r11], 0x2d
jne 0x1401644b7
cmp word [r11 + 2], 0x5d
jne 0x140165f02
jmp 0x1401644b7
xor r12d, r12d
jmp 0x140164345
jb 0x140165f0c
test r10d, r10d
jne 0x14016485f
mov eax, 0x801f0000
cmp dword [r9 - 4], eax
jne 0x14016485f
mov dword [r9 - 4], 0x801e0000
mov dword [r9], esi
mov edi, r12d
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x1401644bf
mov dword [r9], esi
lea edi, [r10 + 2]
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x1401644bf
mov r15, qword [rbp - 0x80]
cmp rsi, r15
jae 0x140166120
movzx eax, word [r11]
cmp ax, 0x3f
je 0x140164da9
cmp ax, 0x2a
je 0x140164921
movzx r8d, word [rbp + 0x78]
mov r13, qword [rbp + 0x88]
inc r8w
test dword [rsp + 0x58], 0x2000
mov word [rbp + 0x78], r8w
jne 0x1401648ed
mov ecx, dword [r13 + 0xd4]
mov eax, 0xffff
cmp ecx, eax
jae 0x140166005
inc ecx
mov dword [r13 + 0xd4], ecx
or ecx, 0x80080000
jmp 0x1401648f2
mov ecx, 0x801a0000
mov r14d, dword [rsp + 0x5c]
lea rax, [r9 + 4]
mov rdi, qword [rsp + 0x60]
mov r10d, 0xfc00
mov rsi, qword [rsp + 0x70]
xor ebx, ebx
mov dword [r9], ecx
mov r9, rax
mov ecx, dword [rsp + 0x58]
mov qword [rsp + 0x50], rax
jmp 0x1401630e2
mov rdi, qword [rsp + 0x60]
mov rax, r15
mov ecx, dword [rsp + 0x58]
sub rax, rsi
mov rsi, qword [rsp + 0x70]
and rax, 0xfffffffffffffffe
mov r14d, dword [rsp + 0x5c]
mov r10d, 0xfc00
cmp rax, 2
jle 0x1401630d4
movzx eax, word [r11 + 2]
cmp eax, 0x29
je 0x1401630d4
mov ecx, 0xff
cmp ax, cx
ja 0x140164bd4
mov ecx, eax
mov rax, qword [r8 + 0x20]
test byte [rcx + rax], 4
je 0x140164bd4
mov qword [rsp + 0x40], r8
lea rax, [rsp + 0x68]
mov r8d, dword [rbp - 0x68]
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x38], rax
lea r14, [0x1401eded0]
lea rax, [rbp - 0x60]
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov rdx, r15
lea rax, [rbp - 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
call fcn.140167af0
test eax, eax
je 0x140165f73
mov rdi, qword [rbp + 0x70]
mov qword [rbp - 0x78], rdi
cmp rdi, r15
jae 0x140165f4b
cmp word [rdi], 0x3a
jne 0x140165f4b
mov r15d, dword [rbp - 0x60]
lea rcx, [0x140000000]
mov r12, qword [rbp - 0x38]
xor eax, eax
mov dword [rbp - 0x64], eax
mov ebx, eax
nop word [rax + rax]
movsxd rax, ebx
lea rsi, [rax*8 + 0x1edfb0]
add rsi, rcx
cmp r15d, dword [rsi]
jne 0x140164a2e
mov r8, r15
mov rdx, r14
mov rcx, r12
mov edi, ebx
call fcn.1401682b0
test eax, eax
je 0x140164a41
lea rcx, [0x140000000]
mov eax, dword [rsi]
inc eax
add r14, rax
inc ebx
mov dword [rbp - 0x64], ebx
mov edi, ebx
cmp ebx, 0x11
jl 0x140164a00
cmp edi, 0x11
jge 0x140165f4b
movsxd rax, edi
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*8 + 0x1edfb4]
test r13d, r13d
jle 0x140164a71
lea eax, [rcx + 0x7fdd0000]
cmp eax, 0x30000
ja 0x140165f24
cmp ecx, 0x80250000
ja 0x140164acf
je 0x140164bc3
cmp ecx, 0x80020000
je 0x14016555a
cmp ecx, 0x80220000
je 0x140164b00
cmp ecx, 0x80230000
je 0x140165586
cmp ecx, 0x80240000
jne 0x140165f41
mov r11, qword [rbp - 0x78]
mov r9, qword [rsp + 0x50]
mov r15, qword [rbp - 0x80]
mov r8, qword [rbp + 0x88]
add r11, 2
mov dword [r9], 0x80240000
jmp 0x140165657
mov eax, 0x80260000
cmp ecx, eax
je 0x140164bc3
cmp ecx, 0x80270000
je 0x1401655aa
cmp ecx, 0x80280000
je 0x140164bc3
cmp ecx, 0x8fff0000
jne 0x140165f41
mov r9, qword [rsp + 0x50]
mov r10d, 0xfc00
movzx r8d, word [rbp + 0x78]
mov ebx, 0
mov r11, qword [rbp - 0x78]
inc r8w
mov r15, qword [rbp - 0x80]
add r11, 2
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
mov r14d, dword [rsp + 0x5c]
mov dword [r9], 0x80220000
add r9, 4
cmp ecx, 0x8fff0000
mov qword [rsp + 0x50], r9
mov ecx, dword [rsp + 0x58]
mov word [rbp + 0x78], r8w
jne 0x140163467
mov r14, qword [rbp - 0x50]
mov dword [r9], 0x80020000
add r9, 4
mov qword [rsp + 0x50], r9
test r14, r14
jne 0x140164b83
mov r13, qword [rbp + 0x88]
mov r14, qword [r13 + 0x28]
mov qword [rbp - 0x50], r14
jmp 0x140164b9c
add r14, 0xc
mov qword [rbp - 0x50], r14
cmp r14, qword [rbp - 0x10]
jae 0x140166037
mov r13, qword [rbp + 0x88]
mov ecx, dword [rsp + 0x58]
mov eax, 4
mov word [r14 + 6], ax
mov eax, ecx
and eax, 0x10424e8
mov word [r14], r8w
mov dword [r14 + 8], eax
mov r14d, dword [rsp + 0x5c]
jmp 0x1401630e2
mov r11, qword [rbp - 0x78]
mov r15, qword [rbp - 0x80]
sub r11, 2
jmp 0x140165614
mov r13, qword [rbp + 0x88]
lea rax, [rsp + 0x68]
mov r8d, dword [rbp - 0x68]
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x40], r13
lea r14, [0x1401eddf8]
mov qword [rsp + 0x38], rax
xor r9d, r9d
lea rax, [rbp - 0x60]
mov rdx, r15
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
call fcn.140167af0
test eax, eax
je 0x140165f73
mov r11, qword [rbp + 0x70]
mov qword [rbp - 0x78], r11
cmp r11, r15
jae 0x14016605e
movzx eax, word [r11]
cmp ax, 0x3a
je 0x140164c4c
cmp ax, 0x29
jne 0x14016605e
mov r15d, dword [rbp - 0x60]
lea r13, [0x140000000]
mov r12, qword [rbp - 0x38]
xor eax, eax
mov dword [rbp - 0x64], eax
mov ebx, eax
nop dword [rax]
nop word [rax + rax]
movsxd rax, ebx
lea rcx, [rax + rax*2]
lea rsi, [rcx*4 + 0x1ede30]
cmp r15d, dword [rsi + r13]
jne 0x140164c99
mov r8, r15
mov rdx, r14
mov rcx, r12
mov edi, ebx
call fcn.1401682b0
test eax, eax
je 0x140164cae
mov eax, dword [rsi + r13]
inc eax
add r14, rax
inc ebx
mov dword [rbp - 0x64], ebx
mov edi, ebx
cmp ebx, 9
jl 0x140164c70
mov r13, qword [rbp + 0x88]
mov r11, qword [rbp - 0x78]
cmp edi, 9
jge 0x14016605e
cmp word [r11], 0x3a
mov r15, qword [rbp - 0x80]
jne 0x140164cde
lea rax, [r11 + 2]
cmp rax, r15
jae 0x140164cde
cmp word [rax], 0x29
cmove r11, rax
movsxd rax, edi
lea r8, [0x140000000]
lea rcx, [rax + rax*2]
mov edx, dword [r8 + rcx*4 + 0x1ede38]
test edx, edx
jle 0x140164d03
cmp word [r11], 0x3a
jne 0x140165f55
mov ecx, dword [r8 + rcx*4 + 0x1ede34]
xor r9d, r9d
mov rbx, qword [rsp + 0x50]
cmp ecx, 0x802a0000
movzx eax, word [r11]
mov edi, r9d
sete dil
mov qword [rbp - 8], rbx
add r11, 2
mov dword [rsp + 0x78], edi
lea r8, [rbx + 4]
cmp ax, 0x3a
jne 0x140164d9a
test edx, edx
jns 0x140164d48
mov dword [rbp - 0x24], ecx
mov eax, 0x80290000
jmp 0x140164d5b
cmp ecx, 0x80290000
mov eax, r9d
mov edx, 0x10000
cmovne eax, edx
add eax, ecx
mov ecx, dword [rsp + 0x58]
lea r9, [r8 + 4]
mov rdi, qword [rsp + 0x60]
mov r10d, 0xfc00
mov rsi, qword [rsp + 0x70]
mov dword [rbx], eax
mov eax, 1
mov qword [rbp], r8
mov r14d, eax
movzx r8d, word [rbp + 0x78]
xor ebx, ebx
mov dword [rsp + 0x5c], eax
mov qword [rsp + 0x50], r9
mov qword [rbp + 8], r11
jmp 0x1401630e2
mov dword [rbx], ecx
mov r9, r8
mov qword [rsp + 0x50], r8
jmp 0x140165e64
lea rdx, [rsi + 2]
mov qword [rbp - 0x78], rdx
mov r11, rdx
mov qword [rbp + 0x70], rdx
cmp rdx, r15
jae 0x140166120
movzx r8d, word [rdx]
lea eax, [r8 - 0x21]
cmp eax, 0x31
ja case.0x140164ded.46
lea rsi, [0x140000000]
cdqe
movzx eax, byte [rsi + rax + 0x1662c8]
mov ecx, dword [rsi + rax*4 + 0x166290]
add rcx, rsi
jmp rcx
lea r11, [rdx + 2]
mov qword [rbp + 0x70], r11
cmp r11, r15
jae 0x140166120
movzx eax, word [r11]
cmp ax, 0x3c
jne 0x140164e15
mov r9d, 0x3e
jmp 0x1401656c5
cmp ax, 0x3e
je case.0x140164ded.34
cmp ax, 0x3d
jne 0x140165f5f
mov r13, qword [rbp + 0x88]
lea rax, [rsp + 0x68]
mov r8d, dword [rbp - 0x68]
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x40], r13
mov r9d, 0x29
mov qword [rsp + 0x38], rax
mov rdx, r15
lea rax, [rbp - 0x60]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
call fcn.140167af0
test eax, eax
je 0x140165f73
mov r9, qword [rsp + 0x50]
mov dword [r9], 0x80040000
mov eax, dword [rbp - 0x60]
mov rcx, qword [rbp - 0x58]
mov r11, qword [rbp + 0x70]
mov dword [r9 + 4], eax
mov rax, rcx
shr rax, 0x20
mov dword [r9 + 8], eax
mov eax, 1
mov dword [r9 + 0xc], ecx
add r9, 0x10
mov qword [rsp + 0x50], r9
mov dword [rsp + 0x78], eax
jmp 0x140165e64
xor ebx, ebx
lea r11, [rdx + 2]
mov dword [rbp - 0x64], ebx
mov ecx, ebx
cmp r11, r15
jae 0x140165f69
cmp word [r11], 0x29
jne 0x140165f69
mov r13, qword [rbp + 0x88]
jmp 0x1401659ed
mov rax, r15
sub rax, rdx
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x140164f06
movzx eax, word [rdx + 2]
sub ax, 0x30
cmp ax, 9
jbe case.0x140164ded.39
mov edx, 0x81
jmp 0x14016440c
mov r13, qword [rbp + 0x88]
lea rax, [rsp + 0x68]
mov r8d, dword [rbp - 0x68]
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x40], r13
mov r9d, 0x29
mov qword [rsp + 0x38], rax
mov rdx, r15
lea rax, [rbp - 0x60]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
call fcn.140167af0
test eax, eax
je 0x140165f73
mov r9, qword [rsp + 0x50]
mov dword [r9], 0x80210000
jmp 0x140164e84
lea r9, [rdx + 2]
mov r11, r9
cmp r9, r15
jae 0x140166120
mov rbx, qword [rsp + 0x50]
lea eax, [r13 - 1]
mov dword [rbp - 0x40], eax
mov r8d, 0xff
test r10, r10
je 0x140164fb3
mov r12d, dword [rsp + 0x58]
test r12b, 4
je 0x140164fb3
lea rax, [rbx - 0x10]
cmp r10, rax
jne 0x140164fb3
cmp dword [rbx - 4], r8d
cmove rbx, r10
movzx edx, word [r9]
mov rdi, rbx
mov qword [rsp + 0x60], rbx
mov dword [rbp - 0x44], 1
cmp edx, 0x29
je 0x140165099
lea eax, [rdx - 0x30]
cmp ax, 9
jbe 0x140165099
xor eax, eax
cmp dword [0x1401ee560], eax
mov dword [rbp - 0x64], eax
je 0x14016500b
mov ecx, eax
nop dword [rax + rax]
movsxd rax, ecx
cmp edx, dword [rsi + rax*4 + 0x1ee560]
je 0x140165015
inc ecx
cmp dword [rsi + rax*4 + 0x1ee564], 0
mov dword [rbp - 0x64], ecx
jne 0x140164ff0
mov edx, UnRegisterTypeLib
jmp 0x14016440c
mov ecx, dword [rsi + rax*4 + 0x1ee538]
test ecx, ecx
je 0x14016500b
mov dword [rbx], 0x80070000
nop word [rax + rax]
add r11, 2
cmp r11, r15
jae 0x140165f8a
movzx eax, word [r11]
cmp eax, ecx
jne 0x140165030
add r11, 2
cmp r11, r15
jae 0x140165056
movzx eax, word [r11]
cmp eax, ecx
je 0x140165030
mov rax, r11
mov ecx, 0xffffffff
sub rax, r9
sar rax, 1
cmp rax, rcx
ja 0x140165f80
mov r13, qword [rbp + 0x88]
mov rcx, r11
mov dword [rbx + 0xc], eax
sub r9, qword [r13 + 0x38]
sar r9, 1
mov rax, r9
mov qword [rbp - 0x58], r9
shr rax, 0x20
mov dword [rbx + 0x14], r9d
lea r9, [rbx + 0x14]
mov dword [rbx + 0x10], eax
jmp 0x1401650e3
xor eax, eax
mov dword [rbx], 0x80060000
mov edx, eax
movzx eax, word [r11]
mov rcx, r9
cmp eax, 0x30
jb 0x1401650d5
cmp eax, 0x39
ja 0x1401650d5
lea ecx, [rdx - 6]
lea ecx, [rdx + rcx*4]
lea edx, [rax + rcx*2]
lea r11, [r9 + 2]
mov rcx, r11
cmp edx, r8d
jg 0x140165f97
mov r9, r11
cmp r11, r15
jb 0x1401650a3
mov r13, qword [rbp + 0x88]
lea r9, [rbx + 0xc]
mov dword [rbx + 0xc], edx
cmp rcx, r15
jae 0x140165fa1
cmp word [r11], 0x29
jne 0x140165fa1
lea r11, [rcx + 2]
mov rax, r11
sub rax, qword [r13 + 0x38]
sar rax, 1
mov dword [rbx + 4], eax
xor ebx, ebx
add r9, 4
mov dword [rdi + 8], ebx
mov qword [rsp + 0x50], r9
jmp 0x1401633dd
lea r11, [rdx + 2]
mov qword [rbp + 0x70], r11
cmp r11, r15
jae 0x140166120
movzx r8d, word [rbp + 0x78]
movzx eax, word [r11]
inc r8w
mov word [rbp + 0x78], r8w
cmp ax, 0x3f
je 0x140165519
cmp ax, 0x2a
je 0x140165519
mov r13, qword [rbp + 0x88]
lea rax, [rsp + 0x68]
mov qword [rsp + 0x30], rax
lea rcx, [rbp + 0x70]
lea rax, [rbp - 0x64]
mov r9d, 0xffff
mov qword [rsp + 0x28], rax
mov rdx, r15
mov r8d, dword [r13 + 0xd4]
mov dword [rsp + 0x20], 0xa1
call fcn.140167d80
test eax, eax
je 0x1401651da
mov edx, dword [rbp - 0x64]
mov r11, qword [rbp + 0x70]
test edx, edx
jle 0x140165fab
mov r9, qword [rsp + 0x50]
mov rcx, r11
mov dword [r9], 0x80120000
sub rcx, qword [r13 + 0x38]
sar rcx, 1
sub rcx, 2
mov dword [r9 + 0xc], edx
mov rax, rcx
mov dword [r9 + 8], ecx
shr rax, 0x20
mov dword [r9 + 4], eax
add r9, 0xc
mov qword [rbp - 0x58], rcx
jmp 0x1401654f3
mov edx, dword [rsp + 0x68]
test edx, edx
jne 0x140165ef5
mov rbx, qword [rbp + 0x70]
mov rdi, r15
sub rdi, rbx
sar rdi, 1
cmp rdi, 0xa
jl 0x140165352
lea r8d, [rdx + 7]
mov rcx, rbx
lea rdx, str.VERSION
call fcn.1401682b0
test eax, eax
jne 0x140165352
cmp word [rbx + 0xe], 0x29
lea r11, [rbx + 0xe]
je 0x140165352
xor ecx, ecx
mov rax, r11
cmp word [r11], 0x3e
mov r10d, ecx
mov r9d, ecx
jne 0x140165244
add r11, 2
lea r10d, [rcx + 1]
mov rax, r11
cmp word [r11], 0x3d
jne 0x140165fb5
lea r11, [rax + 2]
movzx eax, word [rax + 2]
sub ax, 0x30
cmp ax, 9
ja 0x140165fb5
mov dword [rsp + 0x68], ecx
mov r8d, ecx
mov edx, ecx
cmp r11, r15
jae 0x14016440c
movzx eax, word [r11]
sub ax, 0x30
cmp ax, 9
ja 0x14016440c
nop dword [rax]
movzx edx, word [r11]
lea eax, [rdx - 0x30]
cmp ax, 9
ja 0x1401652bf
lea r8d, [r8 + r8*4]
add r11, 2
lea r8d, [r8 - 0x18]
lea r8d, [rdx + r8*2]
cmp r8d, 0x3e8
ja 0x140165fb5
cmp r11, r15
jb 0x140165290
cmp r11, r15
jae 0x140165fb5
cmp word [r11], 0x2e
jne 0x140165332
add r11, 2
cmp r11, r15
jae 0x140165fb5
movzx ecx, word [r11]
lea eax, [rcx - 0x30]
cmp ax, 9
ja 0x140165fb5
lea rdx, [r11 + 2]
lea eax, [rcx - 0x30]
mov r11, rdx
lea r9d, [rax + rax*4]
add r9d, r9d
cmp rdx, r15
jae 0x140165fb5
movzx ecx, word [rdx]
lea eax, [rcx - 0x30]
cmp ax, 9
ja 0x140165327
add r9d, 0xffffffd0
lea r11, [rdx + 2]
add r9d, ecx
cmp r11, r15
jae 0x140165fb5
cmp word [r11], 0x29
jne 0x140165fb5
mov rbx, qword [rsp + 0x50]
mov dword [rbx], 0x80150000
mov dword [rbx + 0xc], r9d
lea r9, [rbx + 0xc]
mov dword [rbx + 4], r10d
mov dword [rbx + 8], r8d
jmp 0x1401654f3
xor eax, eax
mov esi, eax
movzx eax, word [rbx]
cmp ax, 0x52
jne 0x14016537f
cmp rdi, 1
jle 0x1401653a1
cmp word [rbx + 2], 0x26
lea rax, [rbx + 2]
jne 0x1401653a1
mov r12d, 1
mov qword [rbp + 0x70], rax
mov esi, r12d
jmp 0x1401653af
cmp ax, 0x3c
jne 0x140165390
mov edi, 0x3e
lea r12d, [rdi - 0x3d]
jmp 0x1401653b4
cmp ax, 0x27
jne 0x1401653a1
mov edi, 0x27
lea r12d, [rdi - 0x26]
jmp 0x1401653b4
sub rbx, 2
mov r12d, 1
mov qword [rbp + 0x70], rbx
mov edi, 0x29
mov r8d, dword [rbp - 0x68]
lea rax, [rsp + 0x68]
mov qword [rsp + 0x40], r13
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x38], rax
mov r9d, edi
lea rax, [rbp - 0x60]
mov rdx, r15
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
call fcn.140167af0
test eax, eax
je 0x140165f73
mov r14d, dword [rbp - 0x60]
test esi, esi
je 0x14016541a
mov r9, qword [rsp + 0x50]
mov r11, qword [rbp + 0x70]
sub r11, 2
mov dword [r9], 0x80130000
jmp 0x1401654c9
cmp edi, 0x29
jne 0x1401654b9
mov rbx, qword [rbp - 0x38]
cmp r14d, 6
jne 0x14016545a
mov r8d, r14d
lea rdx, str.DEFINE
mov rcx, rbx
call fcn.1401682b0
test eax, eax
jne 0x14016545a
mov r9, qword [rsp + 0x50]
mov eax, 0x80100000
mov dword [r9], eax
mov r11, qword [rbp + 0x70]
sub r11, 2
jmp 0x1401654c9
mov dword [rbp - 0x64], r12d
mov eax, r12d
cmp r14d, 1
jle 0x140165492
mov ecx, r12d
nop word [rax + rax]
movsxd rax, ecx
movzx edx, word [rbx + rax*2]
mov eax, ecx
cmp dx, 0x30
jb 0x140165492
cmp dx, 0x39
ja 0x140165492
lea eax, [rcx + 1]
mov dword [rbp - 0x64], eax
mov ecx, eax
cmp eax, r14d
jl 0x140165470
cmp word [rbx], 0x52
jne 0x1401654a2
cmp eax, r14d
mov eax, 0x80140000
jge 0x1401654a7
mov eax, 0x80110000
mov r9, qword [rsp + 0x50]
mov dword [r9], eax
mov r11, qword [rbp + 0x70]
sub r11, 2
jmp 0x1401654c9
mov r9, qword [rsp + 0x50]
mov r11, qword [rbp + 0x70]
mov dword [r9], 0x80110000
mov eax, dword [r9]
add r9, 4
cmp eax, 0x80100000
je 0x1401654de
mov dword [r9], r14d
add r9, 4
mov rcx, qword [rbp - 0x58]
mov rax, rcx
shr rax, 0x20
mov dword [r9], eax
add r9, 4
mov dword [r9], ecx
cmp r11, r15
jae 0x140165fbf
cmp word [r11], 0x29
jne 0x140165fbf
add r11, 2
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x140165e64
mov dword [r9], 0x800f0000
mov r11, rdx
add r9, 4
mov dword [rbp - 0x40], 2
mov qword [rsp + 0x50], r9
mov ecx, dword [rsp + 0x58]
mov r13, qword [rbp + 0x88]
mov r10d, 0xfc00
mov r14d, dword [rsp + 0x5c]
xor ebx, ebx
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
jmp 0x1401630e2
mov r11, qword [rbp - 0x78]
mov r9, qword [rsp + 0x50]
mov r15, qword [rbp - 0x80]
movzx r8d, word [rbp + 0x78]
inc r8w
mov dword [r9], 0x80020000
add r9, 4
mov word [rbp + 0x78], r8w
add r11, 2
jmp 0x14016552e
mov r11, qword [rbp - 0x78]
mov r9, qword [rsp + 0x50]
mov r15, qword [rbp - 0x80]
mov r8, qword [rbp + 0x88]
add r11, 2
mov dword [r9], 0x80230000
jmp 0x140165657
mov r11, qword [rbp - 0x78]
mov r9, qword [rsp + 0x50]
mov r15, qword [rbp - 0x80]
mov r8, qword [rbp + 0x88]
add r11, 2
mov dword [r9], 0x80270000
jmp 0x140165657
mov rax, r15
sub rax, rdx
and rax, 0xfffffffffffffffe
cmp rax, 2
jle 0x140164e0a
movzx eax, word [rdx + 2]
cmp ax, 0x3d
je 0x14016560f
cmp ax, 0x21
je 0x1401655fc
cmp ax, 0x2a
jne 0x140164e0a
cmp ax, 0x21
mov ecx, 0x80280000
mov eax, 0x80260000
cmove ecx, eax
jmp 0x140165614
mov ecx, 0x80250000
mov rbx, qword [rsp + 0x50]
lea r9, [rbx + 8]
mov dword [rbx], ecx
mov ecx, 1
mov rax, qword [rbp + 0x80]
mov r8, qword [rbp + 0x88]
mov dword [rax], ecx
mov rcx, r11
sub rcx, qword [r8 + 0x38]
sar rcx, 1
sub rcx, 2
mov rax, rcx
mov qword [rbp - 0x58], rcx
shr rax, 0x20
mov dword [rbx + 4], eax
add r11, 4
mov dword [r9], ecx
inc word [rbp + 0x78]
add r9, 4
mov qword [rsp + 0x50], r9
test r13d, r13d
jle 0x1401656b5
mov r14, qword [rbp - 0x50]
test r14, r14
jne 0x14016567c
mov r14, qword [r8 + 0x28]
mov qword [rbp - 0x50], r14
jmp 0x14016568e
add r14, 0xc
mov qword [rbp - 0x50], r14
cmp r14, qword [rbp - 0x10]
jae 0x140166037
mov ecx, dword [rsp + 0x58]
mov eax, 2
movzx r8d, word [rbp + 0x78]
mov word [r14 + 6], ax
mov eax, ecx
and eax, 0x10424e8
mov word [r14], r8w
mov dword [r14 + 8], eax
jmp 0x140165537
movzx r8d, word [rbp + 0x78]
jmp 0x140165533
mov r9d, 0x27
mov r13, qword [rbp + 0x88]
lea rax, [rsp + 0x68]
mov r8d, dword [rbp - 0x68]
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x40], r13
mov rdx, r15
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
call fcn.140167af0
test eax, eax
je 0x140165f73
mov eax, dword [r13 + 0xd4]
mov ecx, 0xffff
cmp eax, ecx
jae 0x140166001
mov r9, qword [rsp + 0x50]
inc eax
inc word [rbp + 0x78]
mov dword [r13 + 0xd4], eax
or eax, 0x80080000
mov dword [r9], eax
add r9, 4
movzx edx, word [r13 + 0xb0]
mov eax, 0x2710
mov qword [rsp + 0x50], r9
cmp dx, ax
jae 0x140165ff3
mov r14d, dword [rbp - 0x60]
movzx eax, word [r13 + 0xb2]
lea ecx, [r14 + 2]
cmp ecx, eax
jbe 0x14016577b
lea eax, [r14 + 2]
mov word [r13 + 0xb2], ax
mov rbx, qword [r13 + 0xc0]
xor eax, eax
mov r12, qword [rbp - 0x38]
mov r15d, eax
mov dword [rbp - 0x64], eax
mov esi, eax
mov edi, eax
cmp ax, dx
jae 0x14016580a
movzx eax, word [rbx + 0xc]
cmp r14d, eax
jne 0x1401657de
mov rdx, qword [rbx]
mov r8, r14
mov rcx, r12
call fcn.140168270
test eax, eax
jne 0x1401657de
mov eax, dword [r13 + 0xd4]
cmp dword [rbx + 8], eax
je 0x140165805
test byte [rsp + 0x58], 0x40
je 0x140165fc9
mov eax, 1
mov word [rbx + 0xe], ax
mov r15d, eax
mov dword [r13 + 0x12c], eax
jmp 0x1401657ee
mov eax, dword [r13 + 0xd4]
cmp dword [rbx + 8], eax
je 0x140165fd7
movzx eax, word [r13 + 0xb0]
inc esi
add rbx, 0x10
mov dword [rbp - 0x64], esi
mov edi, esi
cmp esi, eax
jl 0x140165797
mov r9, qword [rsp + 0x50]
movzx eax, word [r13 + 0xb0]
cmp edi, eax
jge 0x140165850
mov r15, qword [rbp - 0x80]
xor ebx, ebx
mov r11, qword [rbp + 0x70]
jmp 0x1401633d8
mov r9, qword [rsp + 0x50]
mov r11, qword [rbp + 0x70]
jmp 0x1401633d8
mov r13, qword [rbp + 0x88]
xor ebx, ebx
mov r11, qword [rbp + 0x70]
jmp 0x1401633d8
mov ecx, dword [r13 + 0xc8]
cmp eax, ecx
jb 0x1401658c6
mov rax, qword [r13]
lea edi, [rcx + rcx]
mov ecx, edi
shl rcx, 4
mov rdx, qword [rax + 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
je 0x140165fe5
mov r8d, dword [r13 + 0xc8]
mov rcx, rax
mov rdx, qword [r13 + 0xc0]
shl r8, 4
call fcn.1401aff40
cmp dword [r13 + 0xc8], 0x14
jbe 0x1401658b0
mov rax, qword [r13]
mov rcx, qword [r13 + 0xc0]
mov rdx, qword [rax + 0x10]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
movzx eax, word [r13 + 0xb0]
mov qword [r13 + 0xc0], rbx
mov dword [r13 + 0xc8], edi
mov r11, qword [rbp + 0x70]
mov r9, qword [rsp + 0x50]
movzx ecx, ax
mov rax, qword [r13 + 0xc0]
add rcx, rcx
mov qword [rax + rcx*8], r12
movzx ecx, word [r13 + 0xb0]
mov rax, qword [r13 + 0xc0]
add rcx, rcx
mov word [rax + rcx*8 + 0xc], r14w
movzx edx, word [r13 + 0xb0]
mov rcx, qword [r13 + 0xc0]
add rdx, rdx
mov eax, dword [r13 + 0xd4]
mov dword [rcx + rdx*8 + 8], eax
movzx ecx, word [r13 + 0xb0]
mov rax, qword [r13 + 0xc0]
add rcx, rcx
mov word [rax + rcx*8 + 0xe], r15w
inc word [r13 + 0xb0]
mov r15, qword [rbp - 0x80]
jmp 0x140165e64
cmp r8d, 0x2d
jne 0x140165a29
mov rax, r15
sub rax, rdx
and rax, 0xfffffffffffffffe
cmp rax, 2
jle 0x140165a29
movzx eax, word [rdx + 2]
sub ax, 0x30
cmp ax, 9
ja 0x140165a29
mov r13, qword [rbp + 0x88]
sub r8w, 0x30
cmp r8w, 9
mov r8d, 0xffffffff
jbe 0x14016598e
mov r8d, dword [r13 + 0xd4]
lea rax, [rsp + 0x68]
mov r9d, 0xffff
mov qword [rsp + 0x30], rax
lea rcx, [rbp + 0x70]
lea rax, [rbp - 0x64]
mov rdx, r15
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xa1
call fcn.140167d80
test eax, eax
je 0x140165f73
mov ecx, dword [rbp - 0x64]
mov r11, qword [rbp + 0x70]
test ecx, ecx
js 0x14016600f
cmp r11, r15
jae 0x140166120
cmp word [r11], 0x29
jne 0x140166120
mov r9, qword [rsp + 0x50]
xor ebx, ebx
or ecx, 0x80200000
mov dword [r9], ecx
mov rcx, r11
sub rcx, qword [r13 + 0x38]
add r11, 2
sar rcx, 1
mov rax, rcx
mov dword [r9 + 8], ecx
shr rax, 0x20
mov dword [r9 + 4], eax
add r9, 0xc
mov eax, 1
mov qword [rbp - 0x58], rcx
mov dword [rsp + 0x78], eax
jmp 0x1401633d3
movzx r8d, word [rbp + 0x78]
mov r14, qword [rbp - 0x50]
inc r8w
mov word [rbp + 0x78], r8w
test r14, r14
jne 0x140165a51
mov r13, qword [rbp + 0x88]
mov r14, qword [r13 + 0x28]
mov qword [rbp - 0x50], r14
jmp 0x140165a6a
add r14, 0xc
mov qword [rbp - 0x50], r14
cmp r14, qword [rbp - 0x10]
jae 0x140166037
mov r13, qword [rbp + 0x88]
mov esi, dword [rsp + 0x58]
xor ebx, ebx
mov eax, esi
mov word [r14], r8w
and eax, 0x10424e8
mov word [r14 + 6], bx
mov dword [r14 + 8], eax
cmp word [rdx], 0x7c
jne 0x140165ae9
movzx eax, word [r13 + 0xd4]
lea r11, [rdx + 2]
mov rdi, qword [rsp + 0x60]
mov ecx, esi
mov rsi, qword [rsp + 0x70]
mov r10d, 0xfc00
mov word [r14 + 2], ax
movzx eax, word [r13 + 0xd4]
mov word [r14 + 4], ax
mov eax, 1
mov word [r14 + 6], ax
or dword [r13 + 0xd0], 0x200000
mov r14d, dword [rsp + 0x5c]
mov dword [r9], 0x801a0000
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x1401630e2
mov dword [r14 + 2], ebx
lea r9, [rbp - 0x48]
cmp word [rdx], 0x5e
mov r10d, 1
mov r11d, esi
mov dword [rbp - 0x3c], ebx
mov ecx, ebx
mov dword [rbp - 0x48], ebx
mov r8d, ebx
mov rdi, rdx
jne 0x140165b22
lea rdi, [rdx + 2]
and esi, 0xfeffdb57
mov qword [rbp - 0x78], rdi
mov rdx, rdi
mov r10d, ebx
cmp rdx, r15
jae 0x140165c15
mov r8, rdx
nop
movzx eax, word [rdi]
mov rdx, r8
cmp eax, 0x29
je 0x140165c0e
cmp eax, 0x3a
je 0x140165c0e
sub eax, 0x2d
lea rdi, [r8 + 2]
mov qword [rbp - 0x78], rdi
cmp eax, 0x4b
ja case.0x140165b77.53
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x166320]
mov ecx, dword [rdx + rax*4 + 0x1662fc]
add rcx, rdx
jmp rcx
test r10d, r10d
je 0x14016601d
lea r9, [rbp - 0x3c]
mov r10d, ebx
mov rdx, rdi
jmp 0x140165c02
or dword [r9], 0x40
mov rdx, rdi
or dword [r13 + 0xd0], 0x400
jmp 0x140165c02
or dword [r9], 8
mov rdx, rdi
jmp 0x140165c02
or dword [r9], 0x400
mov rdx, rdi
jmp 0x140165c02
or dword [r9], 0x2000
mov rdx, rdi
jmp 0x140165c02
or dword [r9], 0x20
mov rdx, rdi
jmp 0x140165c02
or dword [r9], 0x40000
mov rdx, rdi
jmp 0x140165c02
mov eax, dword [r9]
mov rdx, rdi
bts eax, 7
mov dword [r9], eax
cmp rdi, r15
jae 0x140165c02
cmp word [rdi], 0x78
jne 0x140165c02
lea rdx, [rdi + 2]
bts eax, 0x18
mov dword [r9], eax
mov rdi, rdx
mov qword [rbp - 0x78], rdx
mov r8, rdx
cmp rdi, r15
jb 0x140165b30
mov r8d, dword [rbp - 0x48]
mov ecx, dword [rbp - 0x3c]
mov eax, r8d
and eax, 0x1000080
cmp eax, 0x80
je 0x140165c28
test cl, cl
jns 0x140165c2c
bts ecx, 0x18
or esi, r8d
not ecx
and esi, ecx
mov dword [rsp + 0x58], esi
cmp rdx, r15
jae 0x14016611c
cmp word [rdi], 0x29
jne 0x140165c76
movzx r8d, r12w
mov word [rbp + 0x78], r12w
cmp r14, qword [r13 + 0x28]
jbe 0x140165c6b
cmp word [r14 - 0xc], r12w
lea rax, [r14 - 0xc]
jne 0x140165c6b
mov r9, qword [rsp + 0x50]
mov qword [rbp - 0x50], rax
jmp 0x140165c90
mov r9, qword [rsp + 0x50]
mov word [r14], r12w
jmp 0x140165c90
mov r9, qword [rsp + 0x50]
movzx r8d, word [rbp + 0x78]
mov dword [r9], 0x801a0000
add r9, 4
mov qword [rsp + 0x50], r9
mov rdi, qword [rsp + 0x60]
cmp esi, r11d
mov r14d, dword [rsp + 0x5c]
lea r11, [rdx + 2]
mov r10d, 0xfc00
je 0x140165cbd
mov dword [r9], 0x801b0000
mov dword [r9 + 4], esi
add r9, 8
mov qword [rsp + 0x50], r9
mov ecx, dword [rsp + 0x58]
mov rsi, qword [rsp + 0x70]
jmp 0x1401630e2
mov r14, qword [rbp - 0x50]
movzx r8d, word [rbp + 0x78]
mov r13, qword [rbp + 0x88]
test r14, r14
je 0x140165d0e
cmp word [r14], r8w
jne 0x140165d0e
test byte [r14 + 6], 1
je 0x140165d0e
movzx eax, word [r14 + 4]
mov ecx, dword [r13 + 0xd4]
cmp ecx, eax
jbe 0x140165d02
mov word [r14 + 4], cx
movzx eax, word [r14 + 2]
mov dword [r13 + 0xd4], eax
mov r15, qword [rbp - 0x80]
mov r10d, 0xfc00
mov ecx, dword [rsp + 0x58]
mov r14d, dword [rsp + 0x5c]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
mov dword [r9], 0x80010000
add r9, 4
mov qword [rsp + 0x50], r9
xor ebx, ebx
jmp 0x1401630e2
mov r14, qword [rbp - 0x50]
mov eax, 1
movzx r8d, word [rbp + 0x78]
mov dword [rsp + 0x78], eax
test r14, r14
je 0x140165dec
cmp word [r14], r8w
jne 0x140165dec
mov esi, dword [rsp + 0x58]
movzx eax, word [r14 + 6]
and esi, 0xfefbdb17
or esi, dword [r14 + 8]
mov r13, qword [rbp + 0x88]
mov dword [rsp + 0x58], esi
test al, 1
je 0x140165da3
movzx ecx, word [r14 + 4]
cmp ecx, dword [r13 + 0xd4]
jbe 0x140165da3
mov dword [r13 + 0xd4], ecx
movzx eax, word [r14 + 6]
movzx r9d, ax
not r9w
shr r9d, 1
and r9d, 1
mov dword [rsp + 0x78], r9d
test al, 4
je 0x140165dcf
mov rbx, qword [rsp + 0x50]
mov dword [rbx], 0x80190000
add rbx, 4
mov qword [rsp + 0x50], rbx
cmp r14, qword [r13 + 0x28]
jne 0x140165ddd
xor ebx, ebx
mov qword [rbp - 0x50], rbx
jmp 0x140165df5
sub r14, 0xc
mov dword [rsp + 0x78], r9d
mov qword [rbp - 0x50], r14
jmp 0x140165df3
mov r13, qword [rbp + 0x88]
xor ebx, ebx
test r8w, r8w
je 0x140166041
mov r9, qword [rsp + 0x50]
mov eax, 0xffff
mov r15, qword [rbp - 0x80]
add r8w, ax
mov rdi, qword [rsp + 0x60]
mov r10d, 0xfc00
mov ecx, dword [rsp + 0x58]
mov rsi, qword [rsp + 0x70]
mov r14d, dword [rsp + 0x5c]
mov dword [r9], 0x80190000
add r9, 4
mov qword [rsp + 0x50], r9
mov word [rbp + 0x78], r8w
jmp 0x1401630e2
mov dword [r9], edi
add r9, 4
mov eax, 1
mov dword [rsp + 0x78], eax
mov qword [rsp + 0x50], r9
mov r15, qword [rbp - 0x80]
mov r13, qword [rbp + 0x88]
mov ecx, dword [rsp + 0x58]
mov r10d, 0xfc00
movzx r8d, word [rbp + 0x78]
xor ebx, ebx
mov r14d, dword [rsp + 0x5c]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
jmp 0x1401630e2
mov edx, 0x8c
jmp 0x14016440c
lea r11, [rdi - 2]
mov edx, 0xb0
jmp 0x14016440c
mov edx, 0x76
jmp 0x14016440c
mov edx, 0x6d
sub r11, 2
jmp 0x14016440c
xor eax, eax
sub r11, 2
cmp r10d, 0x3a
mov edx, eax
setne dl
add edx, 0x70
jmp 0x14016440c
mov edx, 0x71
sub r11, 2
jmp 0x14016440c
mov r11, qword [rbp + 0x70]
mov edx, 0x6b
sub r11, 2
jmp 0x14016440c
mov edx, 0xab
mov r11, qword [rbp + 0x70]
jmp 0x14016440c
mov r11, qword [rbp + 0x70]
mov edx, 0x96
jmp 0x14016440c
mov edx, 0x6c
sub r11, 2
jmp 0x14016440c
mov edx, 0x6a
jmp 0x14016440c
lea eax, [rcx + 0x7fd90000]
mov edx, SetErrorInfo
test eax, 0xfffeffff
mov eax, 0x80
cmovne edx, eax
jmp 0x140164408
mov edx, 0xbd
jmp 0x140164408
mov edx, 0xc3
jmp 0x140164408
mov edx, 0xa6
jmp 0x14016440c
mov edx, 0x8d
jmp 0x14016440c
mov edx, 0x9e
jmp 0x14016440c
mov r11, qword [rbp + 0x70]
mov edx, dword [rsp + 0x68]
jmp 0x14016440c
mov edx, 0xac
jmp 0x14016440c
mov edx, UnRegisterTypeLib
mov r11, r9
jmp 0x14016440c
mov edx, 0x8a
jmp 0x14016440c
mov edx, 0x8b
jmp 0x14016440c
mov edx, 0x73
jmp 0x14016440c
mov edx, 0xb3
jmp 0x14016440c
mov edx, 0x7c
jmp 0x14016440c
mov r11, qword [rbp + 0x70]
mov edx, 0x8f
jmp 0x14016440c
mov r11, qword [rbp + 0x70]
mov edx, 0xa5
jmp 0x14016440c
mov r11, qword [rbp + 0x70]
mov edx, 0x79
jmp 0x14016440c
mov r11, qword [rbp + 0x70]
mov edx, 0x95
jmp 0x14016440c
mov r11, qword [rbp + 0x70]
mov edx, SetErrorInfo
jmp 0x14016440c
mov edx, 0x73
sub r11, 2
jmp 0x14016440c
mov edx, 0xc2
mov r11, r8
jmp 0x14016440c
mov edx, 0x6f
mov r11, r8
jmp 0x14016440c
mov edx, UnRegisterTypeLib
jmp 0x14016440c
mov edx, 0x7a
sub r11, 2
jmp 0x14016440c
mov edx, 0x77
jmp 0x14016440c
test r14d, r14d
je 0x140166068
mov edx, 0xa0
jmp 0x14016440c
mov ebx, dword [rbp - 0x28]
mov r12d, dword [rbp - 0x18]
mov edx, dword [rbp - 0x30]
mov rcx, r9
test rdi, rdi
je 0x14016608a
mov rax, r11
sub rax, qword [r13 + 0x38]
sar rax, 1
sub eax, dword [rdi + 4]
mov dword [rdi + 8], eax
test ebx, ebx
je 0x1401660d0
test rdi, rdi
je 0x1401660a6
lea rax, [r9 - 0x10]
cmp rdi, rax
jne 0x1401660a6
mov eax, 0xff
cmp dword [rdi + 0xc], eax
je 0x1401660c3
xor eax, eax
mov dword [r9], 0x80060000
mov dword [r9 + 8], eax
lea rcx, [r9 + 0x10]
mov eax, 0xff
mov rdi, r9
mov dword [r9 + 0xc], eax
mov rax, r11
sub rax, qword [r13 + 0x38]
sar rax, 1
mov dword [rdi + 4], eax
test r12d, r12d
je 0x1401660e4
mov dword [rcx], 0x80190000
mov dword [rcx + 4], 0x80160000
jmp 0x1401660f6
test dl, 4
je 0x1401660fa
mov dword [rcx], 0x80190000
mov dword [rcx + 4], 0x80180005
add rcx, 8
cmp rcx, rsi
jb 0x140166109
mov edx, 0xa3
jmp 0x14016440c
mov dword [rcx], 0x80000000
test r8w, r8w
jne 0x140166120
xor eax, eax
jmp 0x140164423
mov r11, qword [rbp - 0x78]
mov edx, 0x72
jmp 0x14016440c