Function at 0x140161870
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 0x14016192e
mov dword [r9], 0x80090000
jmp 0x14016193a
test dl, 4
je 0x14016194b
mov dword [r9], 0x80180005
mov dword [r9 + 4], 0x801a0000
add r9, 8
mov qword [rsp + 0x50], r9
bt r10d, 0x19
jae 0x140161a2a
cmp r11, r15
jae 0x140164a52
mov ecx, 0xfc00
mov r10d, 0x10000
nop word [rax + rax]
cmp r9, rsi
jae 0x140164adf
movzx edx, word [r11]
mov r8, r11
add r11, 2
test eax, eax
je 0x1401619b3
mov eax, edx
and eax, ecx
cmp eax, 0xd800
jne 0x1401619b3
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 0x140161a09
mov rcx, r9
test rdi, rdi
je 0x1401619e1
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 0x1401619e1
cmp dword [rdi + 0xc], 0xff
je 0x1401619fb
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 0x140161970
movzx r8d, r14w
jmp 0x140164a4f
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 0x140161ac2
mov r15, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x5c]
jmp 0x140161ac2
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 0x140164a39
mov dword [rbp - 0x3c], ebx
mov r14d, ebx
mov dword [rbp - 0x48], ebx
mov r15d, ebx
cmp r9, rsi
jae 0x140164adf
mov r8, qword [r13]
movzx eax, word [rbp + 0x78]
cmp eax, dword [r8 + 0x3c]
ja 0x140164a2f
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 0x140161b68
mov eax, r13d
and eax, r10d
cmp eax, 0xd800
jne 0x140161b68
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 0x140161c88
mov r15, qword [rbp - 0x80]
cmp edx, 0x5c
jne 0x140161ba4
cmp rdi, r15
jae 0x140161ba4
cmp word [r11], 0x45
jne 0x140161ba4
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 0x140161ab6
cmp dword [rbp - 0x40], 0
jg 0x1401621c7
mov r14d, dword [rsp + 0x5c]
test r14d, r14d
jne 0x140161c62
mov r14d, dword [rbp - 0x44]
mov eax, r14d
dec r14d
mov dword [rbp - 0x44], r14d
test eax, eax
jg 0x140161c54
mov r10, qword [rsp + 0x60]
mov rcx, r9
mov rdx, qword [rbp + 0x88]
test r10, r10
je 0x140161bf8
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 0x140161c03
xor r10d, r10d
jmp 0x140161c48
test r10, r10
je 0x140161c1e
lea rax, [r9 - 0x10]
cmp r10, rax
mov eax, 0xff
jne 0x140161c23
cmp dword [r10 + 0xc], eax
je 0x140161c3d
jmp 0x140161c23
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 0x140161ab6
cmp dword [rsp + 0x5c], 0
je 0x140161e53
mov eax, ecx
and eax, 0x400080
cmp eax, 0x400080
jne 0x140161cf9
mov eax, 0xff
cmp edx, eax
jbe 0x140161cbd
mov eax, edx
or eax, 1
cmp eax, 0x200f
je 0x140161cbd
cmp eax, 0x2029
jne 0x140161d07
cmp edx, 0x100
jae 0x140161e53
cmp edx, 0x23
je 0x140161e90
mov rax, qword [rbp + 0x88]
mov ecx, edx
mov rax, qword [rax + 0x20]
test byte [rcx + rax], 1
mov ecx, dword [rsp + 0x58]
jne 0x140161e53
cmp edx, 0x85
je 0x140161e90
cmp edx, 0x29
je 0x140161ddb
cmp edx, 0x5c
je 0x140161d23
mov r15, qword [rbp - 0x80]
mov dword [r9], r13d
add r9, 4
mov r13, qword [rbp + 0x88]
mov qword [rsp + 0x50], r9
jmp 0x14016484e
mov esi, dword [rsp + 0x58]
xor ebx, ebx
mov r15, qword [rbp - 0x80]
bt esi, 0x16
jae 0x140161da5
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.14015ab30
mov edx, dword [rsp + 0x68]
mov ecx, eax
test edx, edx
jne 0x1401648d5
test eax, eax
je 0x140161d98
sub ecx, 0x19
je 0x140164210
mov r11, qword [rbp + 0x70]
cmp ecx, 1
jne 0x140164869
mov r9, qword [rsp + 0x50]
mov eax, ecx
mov dword [rbp - 0x6c], ecx
jmp 0x140161db8
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 0x140161ac2
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 0x140164873
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 0x140161ac2
mov dword [r9], edx
add r9, 4
mov qword [rsp + 0x50], r9
mov dword [rbp - 0x24], ebx
mov r13, qword [rbp + 0x88]
jmp 0x140161ac2
mov r10, qword [rbp - 0x80]
cmp edx, 0x5c
jne 0x140161e94
cmp rdi, r10
jae 0x140161e94
movzx eax, word [r11]
cmp ax, 0x51
je 0x140161e71
cmp ax, 0x45
jne 0x140161e94
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 0x140164848
mov r10, qword [rbp - 0x80]
test cl, cl
jns 0x140162022
cmp edx, 0x100
jae 0x140161ebf
mov rax, qword [rbp + 0x88]
mov ecx, edx
mov rax, qword [rax + 0x20]
test byte [rcx + rax], 1
mov ecx, dword [rsp + 0x58]
jne 0x140161a9b
cmp edx, 0x85
je 0x140161a9b
mov eax, edx
or eax, 1
cmp eax, 0x200f
je 0x140161a9b
cmp eax, 0x2029
je 0x140161a9b
cmp edx, 0x23
jne 0x140162022
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 0x140161ac2
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 0x140161f6f
cmp r11, rcx
jae 0x140161fa4
mov eax, dword [rbp - 0x68]
lea r9, [r13 + 0x104]
mov r8, rcx
mov dword [rsp + 0x20], eax
mov rcx, r11
call fcn.140167360
mov r11, qword [rbp - 0x78]
test eax, eax
jne 0x14016200b
mov r8d, dword [rbp - 0x68]
jmp 0x140161fa4
mov edx, dword [r13 + 0x104]
imul rax, rdx, 0xfffffffffffffffe
add rax, rcx
cmp r11, rax
ja 0x140161fa4
movzx eax, word [r13 + 0x110]
cmp word [r11], ax
jne 0x140161fa4
cmp edx, 1
je 0x140162012
movzx eax, word [r13 + 0x112]
cmp word [r11 + 2], ax
je 0x140162012
add r11, 2
mov r10d, 0xfc00
mov qword [rbp - 0x78], r11
mov rax, r11
test r8d, r8d
je 0x140161fe0
cmp r11, r15
jae 0x140161fe0
movzx eax, word [r11]
mov ecx, 0xdc00
and ax, r10w
cmp ax, cx
jne 0x140161f30
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 0x140161f30
jmp 0x140161abd
mov edx, dword [r13 + 0x104]
mov r9, qword [rsp + 0x50]
mov eax, edx
lea r11, [r11 + rax*2]
jmp 0x140164844
cmp edx, 0x28
jne 0x14016207f
mov rax, r10
sub rax, r11
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x1401620c6
cmp word [r11], 0x3f
jne 0x1401620c6
cmp word [r11 + 2], 0x23
jne 0x1401620c6
mov r15, qword [rbp - 0x80]
add r11, 2
cmp r11, r15
jae 0x140164881
cmp word [r11], 0x29
jne 0x140162052
cmp r11, r15
jae 0x140164881
mov r13, qword [rbp + 0x88]
add r11, 2
jmp 0x140164848
lea eax, [rdx - 0x2a]
cmp eax, 1
jbe 0x14016216a
cmp edx, 0x3f
je 0x14016216a
cmp edx, 0x7b
jne 0x1401620c6
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.1401668a0
mov r9, qword [rsp + 0x50]
test eax, eax
jne 0x14016216a
mov ecx, dword [rbp - 0x44]
mov eax, ecx
mov r10, qword [rsp + 0x60]
dec ecx
mov dword [rbp - 0x44], ecx
test eax, eax
jg 0x14016216f
mov rdx, qword [rbp + 0x88]
mov rcx, r9
test r10, r10
je 0x1401620fe
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 0x140162116
xor r10d, r10d
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], r10
mov r9, rcx
jmp 0x14016216f
test r10, r10
je 0x140162131
lea rax, [r9 - 0x10]
cmp r10, rax
mov eax, 0xff
jne 0x140162136
cmp dword [r10 + 0xc], eax
je 0x140162150
jmp 0x140162136
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 0x14016216f
mov r10, qword [rsp + 0x60]
mov edx, dword [rbp - 0x40]
test edx, edx
jle 0x140162208
cmp r13d, 0x28
jne 0x1401621c7
mov rax, qword [rbp - 0x80]
mov r11, qword [rbp - 0x78]
sub rax, r11
and rax, 0xfffffffffffffffe
cmp rax, 6
jl 0x1401621c7
movzx eax, word [r11]
cmp ax, 0x3f
je 0x1401621d5
cmp ax, 0x2a
jne 0x1401621c7
movzx eax, word [r11 + 2]
mov ecx, 0xff
cmp ax, cx
ja 0x1401621c7
mov r8, qword [rbp + 0x88]
mov ecx, eax
mov rax, qword [r8 + 0x20]
test byte [rcx + rax], 4
jne 0x140162213
lea r11, [rdi - 2]
mov edx, 0x80
jmp 0x140162dec
movzx ecx, word [r11 + 2]
sub ecx, 0x21
je 0x14016220c
sub ecx, 0x1b
je 0x1401621f5
sub ecx, 1
je 0x14016220c
cmp ecx, 6
jne 0x1401621c7
cmp edx, 2
jne 0x1401621c7
jmp 0x14016220c
movzx eax, word [r11 + 4]
cmp ax, 0x3d
je 0x14016220c
cmp ax, 0x21
jne 0x1401621c7
jmp 0x14016220c
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 0x140162273
cmp edi, 0x3f
je 0x14016223e
cmp edi, 0x2b
jne 0x140162273
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 0x140164839
lea eax, [rdi - 0x24]
cmp eax, 0x58
ja case.0x140162298.37
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x164b40]
mov ecx, dword [rdx + rax*4 + 0x164b0c]
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.14015ab30
mov edx, dword [rsp + 0x68]
mov ebx, eax
test edx, edx
jne 0x140162326
test eax, eax
je 0x140162780
js 0x140162702
lea ecx, [rax - 6]
cmp ecx, 0x16
ja case.0x140162315.13
movsxd rax, ecx
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x164bb4]
mov ecx, dword [rdx + rax*4 + 0x164b9c]
add rcx, rdx
jmp rcx
bt esi, 0x14
jae case.0x140162315.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 0x140162de8
mov r15, qword [rbp - 0x80]
mov r11, r13
cmp r13, r15
jb 0x14016278c
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 0x14016484e
mov eax, 1
mov dword [rsp + 0x78], eax
jmp case.0x140162315.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.140160cd0
test eax, eax
je 0x140162622
cmp dword [rbp - 0x20], r12d
je 0x1401623dc
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 0x140162857
mov rdi, qword [rbp + 0x70]
mov qword [rbp - 0x78], rdi
cmp rdi, r15
jae 0x14016262b
movzx eax, word [rdi]
cmp ax, 0x7b
je 0x140162433
cmp ax, 0x3c
je 0x1401624aa
cmp ax, 0x27
jne 0x14016262b
cmp ax, 0x27
mov r15d, 0x7d
mov eax, 0x27
cmove r15d, eax
mov esi, ebx
cmp ebx, 0x1b
jne 0x140162592
cmp r15d, 0x7d
je 0x140162592
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 0x1401624c1
cmp r8, r12
jae 0x140162596
movzx eax, word [r8]
cmp ax, 0x2b
jne 0x1401624b2
lea edi, [rbx - 0x1a]
sub r10d, r11d
jmp 0x1401624bd
mov r15d, 0x3e
jmp 0x140162446
cmp ax, 0x2d
jne 0x1401624ca
mov edi, 0xffffffff
add r8, 2
cmp r8, r12
jae 0x140162596
movzx eax, word [r8]
sub ax, 0x30
cmp ax, 9
ja 0x140162596
nop dword [rax]
movzx r9d, word [r8]
lea eax, [r9 - 0x30]
cmp ax, 9
ja 0x140162506
lea ecx, [rcx + rcx*4]
add r8, 2
lea ecx, [rcx - 0x18]
lea ecx, [r9 + rcx*2]
cmp ecx, r10d
ja 0x14016251e
cmp r8, r12
jb 0x1401624e0
test r11d, r11d
js 0x140162549
test edi, edi
je 0x140162549
test ecx, ecx
jne 0x140162529
mov edx, 0x7e
mov dword [rsp + 0x68], edx
jmp 0x14016254f
mov edx, 0xa1
mov dword [rsp + 0x68], edx
jmp 0x14016254f
test edi, edi
jle 0x140162532
add ecx, r11d
jmp 0x140162549
cmp ecx, r11d
jle 0x140162542
mov edx, 0x73
mov dword [rsp + 0x68], edx
jmp 0x14016254f
sub r11d, ecx
lea ecx, [r11 + 1]
mov r14d, 1
mov dword [rbp - 0x64], ecx
test r14d, r14d
je 0x140162588
cmp r8, r12
jae 0x140162578
movzx eax, word [r8]
cmp eax, r15d
jne 0x140162578
mov r15, qword [rbp - 0x80]
mov r11, r8
mov r13, qword [rbp + 0x88]
jmp 0x1401643c6
mov eax, 0x9d
mov edx, eax
mov dword [rsp + 0x68], eax
jmp 0x14016232e
test edx, edx
jne 0x14016232e
jmp 0x140162596
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.1401664d0
test eax, eax
je 0x140162622
cmp esi, 0x1c
je 0x1401625ee
mov eax, 0x80210000
cmp r15d, 0x7d
jne 0x1401625f3
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 0x14016482b
mov edx, dword [rsp + 0x68]
jmp 0x140162326
cmp ebx, 0x1b
mov edx, 0xa9
mov eax, 0x9d
cmove edx, eax
mov dword [rsp + 0x68], edx
jmp 0x14016232e
bt esi, 0x11
mov eax, 1
mov dword [rsp + 0x78], eax
jb 0x140162673
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 0x14016483d
lea eax, [rbx - 7]
test eax, 0xfffffff9
jne 0x140162687
mov eax, 0x80180010
cmp ebx, 0xd
jne 0x14016268c
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.0x1401626b5
cdqe
mov ecx, dword [rdx + rax*4 + 0x164bcc]
add rcx, rdx
jmp rcx
mov r11, qword [rbp + 0x70]
mov dword [r9], 0x3000d
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x14016483d
mov r11, qword [rbp + 0x70]
mov dword [r9], 0x70000
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x14016483d
mov r11, qword [rbp + 0x70]
mov dword [r9], 0x90000
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x14016483d
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 0x14016275b
movsxd rax, ebx
cmp qword [r13 + rax*8 + 0x58], 0xffffffffffffffff
jne 0x140162772
mov qword [r13 + rax*8 + 0x58], rcx
mov eax, 1
mov dword [rsp + 0x78], eax
jmp 0x140164844
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 0x140164844
mov r11, qword [rbp + 0x70]
mov ecx, dword [rbp - 0x70]
jmp 0x14016234d
cmp dword [rbp - 0x68], 0
lea r11, [r13 + 2]
movzx ecx, word [r13]
je 0x14016234d
mov eax, ecx
mov r10d, 0xfc00
and eax, r10d
cmp eax, 0xd800
jne 0x140162353
movzx eax, word [r11]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add r11, 2
jmp 0x140162353
mov dword [r9], 0x80090000
add r9, 4
jmp 0x140164834
mov dword [r9], 0x80160000
add r9, 4
jmp 0x140164834
mov dword [r9], 0x80170000
jmp 0x140164827
mov edx, 0x80340000
jmp 0x14016287f
mov edx, 0x80370000
jmp 0x14016287f
mov edx, 0x803a0000
jmp 0x14016287f
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.1401668a0
test eax, eax
jne 0x14016286e
mov edx, dword [rsp + 0x68]
test edx, edx
jne 0x1401648d5
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 0x14016483d
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 0x14016488b
mov r9, qword [rsp + 0x50]
cmp dword [r9 - 4], 0x802a0000
lea rcx, [r9 - 4]
jne 0x1401628d0
mov rsi, qword [rbp - 8]
cmp rcx, rsi
jb 0x1401628be
nop word [rax + rax]
mov eax, dword [rcx]
mov dword [rcx + 4], eax
sub rcx, 4
cmp rcx, rsi
jae 0x1401628b0
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 0x140161a90
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 0x140161ac2
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 0x140162a0e
lea r8d, [r14 + 5]
mov rcx, r11
lea rdx, [0x1401ec2f0]
call fcn.140166c90
test eax, eax
je 0x14016297e
mov rcx, qword [rbp - 0x78]
lea r8d, [r14 + 5]
lea rdx, str._:_:__
call fcn.140166c90
test eax, eax
jne 0x140162a0a
mov rbx, qword [rsp + 0x50]
mov r11, qword [rbp - 0x78]
mov dword [rbx], 0x80180005
lea rax, [rbx + 8]
cmp word [r11 + 4], 0x3c
jne 0x1401629a4
mov dword [rbx + 4], 0x80230000
xor ebx, ebx
jmp 0x1401629be
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 0x1401629d4
mov dword [rax], 0x8018000b
jmp 0x1401629e5
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 0x140161dc1
mov r11, qword [rbp - 0x78]
cmp r11, r15
jae 0x140162aae
movzx r10d, word [r11]
cmp r10d, 0x3d
ja 0x140162aae
movabs rcx, 0x2400400000000000
bt rcx, r10
jae 0x140162aae
lea rdx, [rsi + 2]
mov r9, r15
sub r9, rdx
mov rax, r9
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x140162aae
nop dword [rax]
movzx r8d, word [rdx]
cmp r8w, 0x5c
jne 0x140162a73
movzx eax, word [rdx + 2]
sub ax, r8w
cmp ax, r14w
ja 0x140162a88
add rdx, 2
sub r9, 2
jmp 0x140162a99
cmp r8w, 0x5b
jne 0x140162a81
cmp word [rdx + 2], r10w
jmp 0x140162a86
cmp r8w, 0x5d
je 0x140162aae
cmp r8w, r10w
jne 0x140162a99
cmp word [rdx + 2], 0x5d
je 0x140164899
sub r9, 2
add rdx, 2
mov rax, r9
and rax, 0xfffffffffffffffe
cmp rax, 4
jge 0x140162a50
xor r12d, r12d
mov edi, r12d
cmp r11, r15
jae 0x140162ba8
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 0x140162b1c
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x140162b1c
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 0x140162b74
cmp rbx, r15
jae 0x140162b3c
cmp word [r11], 0x45
jne 0x140162b3c
mov eax, 2
lea r11, [rax + rbx]
mov qword [rbp + 0x70], r11
jmp 0x140162b91
mov rax, r15
sub rax, rbx
and rax, 0xfffffffffffffffe
cmp rax, 6
jl 0x140162ba3
mov r8d, 3
lea rdx, [0x1401ec300]
mov rcx, r11
call fcn.140166c90
test eax, eax
jne 0x140162b9f
mov eax, 6
lea r11, [rax + rbx]
mov qword [rbp + 0x70], r11
jmp 0x140162b91
bt r12d, 0x18
jae 0x140162b85
cmp ecx, 0x20
je 0x140162b91
cmp ecx, 9
je 0x140162b91
test edi, edi
jne 0x140162ba3
cmp ecx, 0x5e
jne 0x140162ba3
mov edi, r14d
cmp r11, r15
jb 0x140162ac2
xor r12d, r12d
jmp 0x140162bab
mov r11, qword [rbp - 0x78]
xor r12d, r12d
jmp 0x140162bab
mov esi, dword [rbp - 0x2c]
mov r13, qword [rbp + 0x88]
cmp esi, 0x5d
jne 0x140162be5
test byte [r13 + 0xcc], r14b
je 0x140162be5
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 0x140164844
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 0x140162c13
xor r12d, r12d
mov r10d, edx
test ebx, ebx
je 0x140162c46
cmp esi, 0x5c
jne 0x140162d2a
cmp r11, r15
jae 0x140162d2a
cmp word [r11], 0x45
jne 0x140162d2a
mov ebx, r12d
add r11, 2
mov dword [rbp - 0x6c], ebx
jmp 0x140162e9f
mov r14d, dword [rsp + 0x58]
bt r14d, 0x18
jae 0x140162c64
cmp esi, 0x20
je 0x140162e9f
cmp esi, 9
je 0x140162e9f
cmp esi, 0x5b
jne 0x140162f7c
mov rax, r15
sub rax, r11
and rax, 0xfffffffffffffffe
cmp rax, 6
jl 0x140162d2a
movzx r9d, word [r11]
cmp r9d, 0x3d
ja 0x140162d25
movabs rcx, 0x2400400000000000
bt rcx, r9
jae 0x140162d25
lea r13, [r11 + 2]
mov r8, r15
sub r8, r13
mov r12, r13
mov rax, r8
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x140163219
movzx edx, word [r12]
cmp dx, 0x5c
jne 0x140162ce5
movzx eax, word [r12 + 2]
sub ax, dx
cmp ax, 1
ja 0x140162cf9
add r12, 2
sub r8, 2
jmp 0x140162d08
cmp dx, 0x5b
jne 0x140162cf3
cmp word [r12 + 2], r9w
jmp 0x140162cf7
cmp dx, 0x5d
je 0x140162d1d
cmp dx, r9w
jne 0x140162d08
cmp word [r12 + 2], 0x5d
je 0x140162d4e
sub r8, 2
add r12, 2
mov rax, r8
and rax, 0xfffffffffffffffe
cmp rax, 4
jge 0x140162cc1
xor r12d, r12d
mov edx, 1
mov r9, qword [rsp + 0x50]
cmp edi, 1
jne 0x140163253
cmp esi, dword [r9 - 8]
jne 0x140163221
sub r9, 4
mov edi, r12d
mov qword [rsp + 0x50], r9
jmp 0x140162e9f
xor eax, eax
mov r15d, eax
cmp edi, 1
je 0x1401648e2
cmp r9d, 0x3a
jne 0x1401648b0
cmp word [r13], 0x5e
mov qword [rbp - 0x78], r13
jne 0x140162d81
lea rdi, [r13 + 2]
mov qword [rbp - 0x78], rdi
lea r15d, [rax + 1]
mov r13, rdi
mov rbx, r12
lea rdi, [0x1401ec000]
sub rbx, r13
lea rcx, [0x140000000]
sar rbx, 1
mov r14d, eax
mov rsi, rax
nop
movzx eax, byte [rsi + rcx + 0x1ec058]
cmp ebx, eax
jne 0x140162dc5
mov r8d, ebx
mov rdx, rdi
mov rcx, r13
call fcn.140166c90
test eax, eax
je 0x140162e17
lea rcx, [0x140000000]
movzx eax, byte [rsi + rcx + 0x1ec058]
inc rdi
inc rsi
add rdi, rax
inc r14d
cmp byte [rsi + rcx + 0x1ec058], 0
jne 0x140162da0
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 0x140162de3
mov rax, qword [rbp - 0x80]
lea r11, [r12 + 4]
add rax, 0xfffffffffffffffe
cmp r11, rax
jae 0x140162e41
cmp word [r11], 0x2d
jne 0x140162e41
cmp word [r11 + 2], 0x5d
jne 0x1401648e2
xor eax, eax
bt dword [rsp + 0x58], 0x11
mov edi, eax
jae 0x140162f61
lea rcx, [0x140000000]
mov eax, dword [rcx + rsi*8 + 0x28a050]
mov ecx, dword [rcx + rsi*8 + 0x28a054]
test eax, eax
js 0x140162f41
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 0x1401648fa
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 0x140162ef8
mov eax, esi
and eax, r10d
cmp eax, 0xd800
jne 0x140162ef8
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 0x140162c10
test ebx, ebx
jne 0x140162c10
cmp edi, 1
jne 0x140162f1d
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 0x14016484e
test ecx, ecx
je 0x140162f61
mov r9, qword [rsp + 0x50]
xor r15d, 1
sub r15d, 0x7fe7ffee
mov dword [r9], r15d
add r9, 4
jmp 0x140162e8e
mov r9, qword [rsp + 0x50]
lea eax, [r15 + 0x801c]
shl eax, 0x10
mov dword [r9], eax
mov dword [r9 + 4], r14d
jmp 0x140162e8a
cmp esi, 0x2d
jne 0x140162fad
cmp edi, 2
jb 0x140162d2a
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 0x140162e9f
cmp esi, 0x5c
jne 0x140162d2a
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.14015ab30
mov edx, dword [rsp + 0x68]
movsxd rbx, eax
test edx, edx
je 0x140163058
test byte [rbp - 0x30], 2
je 0x1401648d5
mov r11, qword [rbp - 0x78]
cmp r11, r15
jb 0x140163011
mov ebx, dword [rbp - 0x6c]
mov r10d, r12d
jmp 0x140162d20
cmp dword [rbp - 0x68], 0
lea rcx, [r11 + 2]
movzx esi, word [r11]
mov r11, rcx
je 0x140163081
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x140163081
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 0x140162d20
lea r8, [0x140000000]
cmp ebx, 0x1a
ja case.0x140163078.5
movzx eax, byte [r8 + rbx + 0x164bfc]
mov ecx, dword [r8 + rax*4 + 0x164be4]
add rcx, r8
jmp rcx
mov r11, qword [rbp + 0x70]
mov esi, dword [rbp - 0x70]
mov ebx, dword [rbp - 0x6c]
mov r10d, r12d
jmp 0x140162d20
mov r11, qword [rbp + 0x70]
mov esi, 8
mov ebx, dword [rbp - 0x6c]
mov r10d, r12d
jmp 0x140162d20
mov r11, qword [rbp + 0x70]
mov edx, 1
mov r9, qword [rsp + 0x50]
mov ebx, edx
mov dword [rbp - 0x6c], edx
jmp 0x140162e9f
mov r11, qword [rbp + 0x70]
mov r9, qword [rsp + 0x50]
jmp 0x140162e97
cmp edi, 1
je 0x1401648de
lea edx, [rbx - 6]
mov edi, r12d
cmp edx, 0xf
ja case.0x1401630ec.13
movsxd rax, edx
mov ecx, dword [r8 + rax*4 + 0x164c18]
add rcx, r8
jmp rcx
mov r9, qword [rsp + 0x50]
lea eax, [rbx - 0x7fe80000]
mov dword [r9], eax
add r9, 4
jmp 0x1401631e7
bt r14d, 0x11
jae case.0x1401630ec.18
lea eax, [rbx - 7]
test eax, 0xfffffff9
jne 0x140163120
mov eax, 0x80180010
cmp ebx, 0xd
jne 0x140163125
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.0x14016314d
movsxd rax, edx
mov ecx, dword [r8 + rax*4 + 0x164c58]
add rcx, r8
jmp rcx
mov dword [r9], 0x3000d
add r9, 4
jmp 0x1401631e7
mov dword [r9], 0x70000
add r9, 4
jmp 0x1401631e7
mov dword [r9], 0x90000
add r9, 4
jmp 0x1401631e7
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.140160cd0
test eax, eax
je 0x140164953
cmp dword [rbp - 0x1c], 0
je 0x1401631c3
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 0x140162e97
cmp word [r11], 0x2d
jne 0x140162e97
cmp word [r11 + 2], 0x5d
jne 0x1401648e2
jmp 0x140162e97
xor r12d, r12d
jmp 0x140162d25
jb 0x1401648ec
test r10d, r10d
jne 0x14016323f
mov eax, 0x801f0000
cmp dword [r9 - 4], eax
jne 0x14016323f
mov dword [r9 - 4], 0x801e0000
mov dword [r9], esi
mov edi, r12d
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x140162e9f
mov dword [r9], esi
lea edi, [r10 + 2]
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x140162e9f
mov r15, qword [rbp - 0x80]
cmp rsi, r15
jae 0x140164b00
movzx eax, word [r11]
cmp ax, 0x3f
je 0x140163789
cmp ax, 0x2a
je 0x140163301
movzx r8d, word [rbp + 0x78]
mov r13, qword [rbp + 0x88]
inc r8w
test dword [rsp + 0x58], 0x2000
mov word [rbp + 0x78], r8w
jne 0x1401632cd
mov ecx, dword [r13 + 0xd4]
mov eax, 0xffff
cmp ecx, eax
jae 0x1401649e5
inc ecx
mov dword [r13 + 0xd4], ecx
or ecx, 0x80080000
jmp 0x1401632d2
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 0x140161ac2
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 0x140161ab4
movzx eax, word [r11 + 2]
cmp eax, 0x29
je 0x140161ab4
mov ecx, 0xff
cmp ax, cx
ja 0x1401635b4
mov ecx, eax
mov rax, qword [r8 + 0x20]
test byte [rcx + rax], 4
je 0x1401635b4
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, [0x1401ebe90]
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.1401664d0
test eax, eax
je 0x140164953
mov rdi, qword [rbp + 0x70]
mov qword [rbp - 0x78], rdi
cmp rdi, r15
jae 0x14016492b
cmp word [rdi], 0x3a
jne 0x14016492b
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 + 0x1ebf70]
add rsi, rcx
cmp r15d, dword [rsi]
jne 0x14016340e
mov r8, r15
mov rdx, r14
mov rcx, r12
mov edi, ebx
call fcn.140166c90
test eax, eax
je 0x140163421
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 0x1401633e0
cmp edi, 0x11
jge 0x14016492b
movsxd rax, edi
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*8 + 0x1ebf74]
test r13d, r13d
jle 0x140163451
lea eax, [rcx + 0x7fdd0000]
cmp eax, 0x30000
ja 0x140164904
cmp ecx, 0x80250000
ja 0x1401634af
je 0x1401635a3
cmp ecx, 0x80020000
je 0x140163f3a
cmp ecx, 0x80220000
je 0x1401634e0
cmp ecx, 0x80230000
je 0x140163f66
cmp ecx, 0x80240000
jne 0x140164921
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 0x140164037
mov eax, 0x80260000
cmp ecx, eax
je 0x1401635a3
cmp ecx, 0x80270000
je 0x140163f8a
cmp ecx, 0x80280000
je 0x1401635a3
cmp ecx, 0x8fff0000
jne 0x140164921
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 0x140161e47
mov r14, qword [rbp - 0x50]
mov dword [r9], 0x80020000
add r9, 4
mov qword [rsp + 0x50], r9
test r14, r14
jne 0x140163563
mov r13, qword [rbp + 0x88]
mov r14, qword [r13 + 0x28]
mov qword [rbp - 0x50], r14
jmp 0x14016357c
add r14, 0xc
mov qword [rbp - 0x50], r14
cmp r14, qword [rbp - 0x10]
jae 0x140164a17
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 0x140161ac2
mov r11, qword [rbp - 0x78]
mov r15, qword [rbp - 0x80]
sub r11, 2
jmp 0x140163ff4
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, [0x1401ebdb8]
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.1401664d0
test eax, eax
je 0x140164953
mov r11, qword [rbp + 0x70]
mov qword [rbp - 0x78], r11
cmp r11, r15
jae 0x140164a3e
movzx eax, word [r11]
cmp ax, 0x3a
je 0x14016362c
cmp ax, 0x29
jne 0x140164a3e
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 + 0x1ebdf0]
cmp r15d, dword [rsi + r13]
jne 0x140163679
mov r8, r15
mov rdx, r14
mov rcx, r12
mov edi, ebx
call fcn.140166c90
test eax, eax
je 0x14016368e
mov eax, dword [rsi + r13]
inc eax
add r14, rax
inc ebx
mov dword [rbp - 0x64], ebx
mov edi, ebx
cmp ebx, 9
jl 0x140163650
mov r13, qword [rbp + 0x88]
mov r11, qword [rbp - 0x78]
cmp edi, 9
jge 0x140164a3e
cmp word [r11], 0x3a
mov r15, qword [rbp - 0x80]
jne 0x1401636be
lea rax, [r11 + 2]
cmp rax, r15
jae 0x1401636be
cmp word [rax], 0x29
cmove r11, rax
movsxd rax, edi
lea r8, [0x140000000]
lea rcx, [rax + rax*2]
mov edx, dword [r8 + rcx*4 + 0x1ebdf8]
test edx, edx
jle 0x1401636e3
cmp word [r11], 0x3a
jne 0x140164935
mov ecx, dword [r8 + rcx*4 + 0x1ebdf4]
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 0x14016377a
test edx, edx
jns 0x140163728
mov dword [rbp - 0x24], ecx
mov eax, 0x80290000
jmp 0x14016373b
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 0x140161ac2
mov dword [rbx], ecx
mov r9, r8
mov qword [rsp + 0x50], r8
jmp 0x140164844
lea rdx, [rsi + 2]
mov qword [rbp - 0x78], rdx
mov r11, rdx
mov qword [rbp + 0x70], rdx
cmp rdx, r15
jae 0x140164b00
movzx r8d, word [rdx]
lea eax, [r8 - 0x21]
cmp eax, 0x31
ja case.0x1401637cd.46
lea rsi, [0x140000000]
cdqe
movzx eax, byte [rsi + rax + 0x164ca8]
mov ecx, dword [rsi + rax*4 + 0x164c70]
add rcx, rsi
jmp rcx
lea r11, [rdx + 2]
mov qword [rbp + 0x70], r11
cmp r11, r15
jae 0x140164b00
movzx eax, word [r11]
cmp ax, 0x3c
jne 0x1401637f5
mov r9d, 0x3e
jmp 0x1401640a5
cmp ax, 0x3e
je case.0x1401637cd.34
cmp ax, 0x3d
jne 0x14016493f
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.1401664d0
test eax, eax
je 0x140164953
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 0x140164844
xor ebx, ebx
lea r11, [rdx + 2]
mov dword [rbp - 0x64], ebx
mov ecx, ebx
cmp r11, r15
jae 0x140164949
cmp word [r11], 0x29
jne 0x140164949
mov r13, qword [rbp + 0x88]
jmp 0x1401643cd
mov rax, r15
sub rax, rdx
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x1401638e6
movzx eax, word [rdx + 2]
sub ax, 0x30
cmp ax, 9
jbe case.0x1401637cd.39
mov edx, 0x81
jmp 0x140162dec
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.1401664d0
test eax, eax
je 0x140164953
mov r9, qword [rsp + 0x50]
mov dword [r9], 0x80210000
jmp 0x140163864
lea r9, [rdx + 2]
mov r11, r9
cmp r9, r15
jae 0x140164b00
mov rbx, qword [rsp + 0x50]
lea eax, [r13 - 1]
mov dword [rbp - 0x40], eax
mov r8d, 0xff
test r10, r10
je 0x140163993
mov r12d, dword [rsp + 0x58]
test r12b, 4
je 0x140163993
lea rax, [rbx - 0x10]
cmp r10, rax
jne 0x140163993
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 0x140163a79
lea eax, [rdx - 0x30]
cmp ax, 9
jbe 0x140163a79
xor eax, eax
cmp dword [0x1401ec520], eax
mov dword [rbp - 0x64], eax
je 0x1401639eb
mov ecx, eax
nop dword [rax + rax]
movsxd rax, ecx
cmp edx, dword [rsi + rax*4 + 0x1ec520]
je 0x1401639f5
inc ecx
cmp dword [rsi + rax*4 + 0x1ec524], 0
mov dword [rbp - 0x64], ecx
jne 0x1401639d0
mov edx, UnRegisterTypeLib
jmp 0x140162dec
mov ecx, dword [rsi + rax*4 + 0x1ec4f8]
test ecx, ecx
je 0x1401639eb
mov dword [rbx], 0x80070000
nop word [rax + rax]
add r11, 2
cmp r11, r15
jae 0x14016496a
movzx eax, word [r11]
cmp eax, ecx
jne 0x140163a10
add r11, 2
cmp r11, r15
jae 0x140163a36
movzx eax, word [r11]
cmp eax, ecx
je 0x140163a10
mov rax, r11
mov ecx, 0xffffffff
sub rax, r9
sar rax, 1
cmp rax, rcx
ja 0x140164960
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 0x140163ac3
xor eax, eax
mov dword [rbx], 0x80060000
mov edx, eax
movzx eax, word [r11]
mov rcx, r9
cmp eax, 0x30
jb 0x140163ab5
cmp eax, 0x39
ja 0x140163ab5
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 0x140164977
mov r9, r11
cmp r11, r15
jb 0x140163a83
mov r13, qword [rbp + 0x88]
lea r9, [rbx + 0xc]
mov dword [rbx + 0xc], edx
cmp rcx, r15
jae 0x140164981
cmp word [r11], 0x29
jne 0x140164981
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 0x140161dbd
lea r11, [rdx + 2]
mov qword [rbp + 0x70], r11
cmp r11, r15
jae 0x140164b00
movzx r8d, word [rbp + 0x78]
movzx eax, word [r11]
inc r8w
mov word [rbp + 0x78], r8w
cmp ax, 0x3f
je 0x140163ef9
cmp ax, 0x2a
je 0x140163ef9
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.140166760
test eax, eax
je 0x140163bba
mov edx, dword [rbp - 0x64]
mov r11, qword [rbp + 0x70]
test edx, edx
jle 0x14016498b
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 0x140163ed3
mov edx, dword [rsp + 0x68]
test edx, edx
jne 0x1401648d5
mov rbx, qword [rbp + 0x70]
mov rdi, r15
sub rdi, rbx
sar rdi, 1
cmp rdi, 0xa
jl 0x140163d32
lea r8d, [rdx + 7]
mov rcx, rbx
lea rdx, str.VERSION
call fcn.140166c90
test eax, eax
jne 0x140163d32
cmp word [rbx + 0xe], 0x29
lea r11, [rbx + 0xe]
je 0x140163d32
xor ecx, ecx
mov rax, r11
cmp word [r11], 0x3e
mov r10d, ecx
mov r9d, ecx
jne 0x140163c24
add r11, 2
lea r10d, [rcx + 1]
mov rax, r11
cmp word [r11], 0x3d
jne 0x140164995
lea r11, [rax + 2]
movzx eax, word [rax + 2]
sub ax, 0x30
cmp ax, 9
ja 0x140164995
mov dword [rsp + 0x68], ecx
mov r8d, ecx
mov edx, ecx
cmp r11, r15
jae 0x140162dec
movzx eax, word [r11]
sub ax, 0x30
cmp ax, 9
ja 0x140162dec
nop dword [rax]
movzx edx, word [r11]
lea eax, [rdx - 0x30]
cmp ax, 9
ja 0x140163c9f
lea r8d, [r8 + r8*4]
add r11, 2
lea r8d, [r8 - 0x18]
lea r8d, [rdx + r8*2]
cmp r8d, 0x3e8
ja 0x140164995
cmp r11, r15
jb 0x140163c70
cmp r11, r15
jae 0x140164995
cmp word [r11], 0x2e
jne 0x140163d12
add r11, 2
cmp r11, r15
jae 0x140164995
movzx ecx, word [r11]
lea eax, [rcx - 0x30]
cmp ax, 9
ja 0x140164995
lea rdx, [r11 + 2]
lea eax, [rcx - 0x30]
mov r11, rdx
lea r9d, [rax + rax*4]
add r9d, r9d
cmp rdx, r15
jae 0x140164995
movzx ecx, word [rdx]
lea eax, [rcx - 0x30]
cmp ax, 9
ja 0x140163d07
add r9d, 0xffffffd0
lea r11, [rdx + 2]
add r9d, ecx
cmp r11, r15
jae 0x140164995
cmp word [r11], 0x29
jne 0x140164995
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 0x140163ed3
xor eax, eax
mov esi, eax
movzx eax, word [rbx]
cmp ax, 0x52
jne 0x140163d5f
cmp rdi, 1
jle 0x140163d81
cmp word [rbx + 2], 0x26
lea rax, [rbx + 2]
jne 0x140163d81
mov r12d, 1
mov qword [rbp + 0x70], rax
mov esi, r12d
jmp 0x140163d8f
cmp ax, 0x3c
jne 0x140163d70
mov edi, 0x3e
lea r12d, [rdi - 0x3d]
jmp 0x140163d94
cmp ax, 0x27
jne 0x140163d81
mov edi, 0x27
lea r12d, [rdi - 0x26]
jmp 0x140163d94
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.1401664d0
test eax, eax
je 0x140164953
mov r14d, dword [rbp - 0x60]
test esi, esi
je 0x140163dfa
mov r9, qword [rsp + 0x50]
mov r11, qword [rbp + 0x70]
sub r11, 2
mov dword [r9], 0x80130000
jmp 0x140163ea9
cmp edi, 0x29
jne 0x140163e99
mov rbx, qword [rbp - 0x38]
cmp r14d, 6
jne 0x140163e3a
mov r8d, r14d
lea rdx, str.DEFINE
mov rcx, rbx
call fcn.140166c90
test eax, eax
jne 0x140163e3a
mov r9, qword [rsp + 0x50]
mov eax, 0x80100000
mov dword [r9], eax
mov r11, qword [rbp + 0x70]
sub r11, 2
jmp 0x140163ea9
mov dword [rbp - 0x64], r12d
mov eax, r12d
cmp r14d, 1
jle 0x140163e72
mov ecx, r12d
nop word [rax + rax]
movsxd rax, ecx
movzx edx, word [rbx + rax*2]
mov eax, ecx
cmp dx, 0x30
jb 0x140163e72
cmp dx, 0x39
ja 0x140163e72
lea eax, [rcx + 1]
mov dword [rbp - 0x64], eax
mov ecx, eax
cmp eax, r14d
jl 0x140163e50
cmp word [rbx], 0x52
jne 0x140163e82
cmp eax, r14d
mov eax, 0x80140000
jge 0x140163e87
mov eax, 0x80110000
mov r9, qword [rsp + 0x50]
mov dword [r9], eax
mov r11, qword [rbp + 0x70]
sub r11, 2
jmp 0x140163ea9
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 0x140163ebe
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 0x14016499f
cmp word [r11], 0x29
jne 0x14016499f
add r11, 2
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x140164844
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 0x140161ac2
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 0x140163f0e
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 0x140164037
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 0x140164037
mov rax, r15
sub rax, rdx
and rax, 0xfffffffffffffffe
cmp rax, 2
jle 0x1401637ea
movzx eax, word [rdx + 2]
cmp ax, 0x3d
je 0x140163fef
cmp ax, 0x21
je 0x140163fdc
cmp ax, 0x2a
jne 0x1401637ea
cmp ax, 0x21
mov ecx, 0x80280000
mov eax, 0x80260000
cmove ecx, eax
jmp 0x140163ff4
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 0x140164095
mov r14, qword [rbp - 0x50]
test r14, r14
jne 0x14016405c
mov r14, qword [r8 + 0x28]
mov qword [rbp - 0x50], r14
jmp 0x14016406e
add r14, 0xc
mov qword [rbp - 0x50], r14
cmp r14, qword [rbp - 0x10]
jae 0x140164a17
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 0x140163f17
movzx r8d, word [rbp + 0x78]
jmp 0x140163f13
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.1401664d0
test eax, eax
je 0x140164953
mov eax, dword [r13 + 0xd4]
mov ecx, 0xffff
cmp eax, ecx
jae 0x1401649e1
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 0x1401649d3
mov r14d, dword [rbp - 0x60]
movzx eax, word [r13 + 0xb2]
lea ecx, [r14 + 2]
cmp ecx, eax
jbe 0x14016415b
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 0x1401641ea
movzx eax, word [rbx + 0xc]
cmp r14d, eax
jne 0x1401641be
mov rdx, qword [rbx]
mov r8, r14
mov rcx, r12
call fcn.140166c50
test eax, eax
jne 0x1401641be
mov eax, dword [r13 + 0xd4]
cmp dword [rbx + 8], eax
je 0x1401641e5
test byte [rsp + 0x58], 0x40
je 0x1401649a9
mov eax, 1
mov word [rbx + 0xe], ax
mov r15d, eax
mov dword [r13 + 0x12c], eax
jmp 0x1401641ce
mov eax, dword [r13 + 0xd4]
cmp dword [rbx + 8], eax
je 0x1401649b7
movzx eax, word [r13 + 0xb0]
inc esi
add rbx, 0x10
mov dword [rbp - 0x64], esi
mov edi, esi
cmp esi, eax
jl 0x140164177
mov r9, qword [rsp + 0x50]
movzx eax, word [r13 + 0xb0]
cmp edi, eax
jge 0x140164230
mov r15, qword [rbp - 0x80]
xor ebx, ebx
mov r11, qword [rbp + 0x70]
jmp 0x140161db8
mov r9, qword [rsp + 0x50]
mov r11, qword [rbp + 0x70]
jmp 0x140161db8
mov r13, qword [rbp + 0x88]
xor ebx, ebx
mov r11, qword [rbp + 0x70]
jmp 0x140161db8
mov ecx, dword [r13 + 0xc8]
cmp eax, ecx
jb 0x1401642a6
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 0x1401649c5
mov r8d, dword [r13 + 0xc8]
mov rcx, rax
mov rdx, qword [r13 + 0xc0]
shl r8, 4
call fcn.1401ae830
cmp dword [r13 + 0xc8], 0x14
jbe 0x140164290
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 0x140164844
cmp r8d, 0x2d
jne 0x140164409
mov rax, r15
sub rax, rdx
and rax, 0xfffffffffffffffe
cmp rax, 2
jle 0x140164409
movzx eax, word [rdx + 2]
sub ax, 0x30
cmp ax, 9
ja 0x140164409
mov r13, qword [rbp + 0x88]
sub r8w, 0x30
cmp r8w, 9
mov r8d, 0xffffffff
jbe 0x14016436e
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.140166760
test eax, eax
je 0x140164953
mov ecx, dword [rbp - 0x64]
mov r11, qword [rbp + 0x70]
test ecx, ecx
js 0x1401649ef
cmp r11, r15
jae 0x140164b00
cmp word [r11], 0x29
jne 0x140164b00
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 0x140161db3
movzx r8d, word [rbp + 0x78]
mov r14, qword [rbp - 0x50]
inc r8w
mov word [rbp + 0x78], r8w
test r14, r14
jne 0x140164431
mov r13, qword [rbp + 0x88]
mov r14, qword [r13 + 0x28]
mov qword [rbp - 0x50], r14
jmp 0x14016444a
add r14, 0xc
mov qword [rbp - 0x50], r14
cmp r14, qword [rbp - 0x10]
jae 0x140164a17
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 0x1401644c9
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 0x140161ac2
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 0x140164502
lea rdi, [rdx + 2]
and esi, 0xfeffdb57
mov qword [rbp - 0x78], rdi
mov rdx, rdi
mov r10d, ebx
cmp rdx, r15
jae 0x1401645f5
mov r8, rdx
nop
movzx eax, word [rdi]
mov rdx, r8
cmp eax, 0x29
je 0x1401645ee
cmp eax, 0x3a
je 0x1401645ee
sub eax, 0x2d
lea rdi, [r8 + 2]
mov qword [rbp - 0x78], rdi
cmp eax, 0x4b
ja case.0x140164557.53
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x164d00]
mov ecx, dword [rdx + rax*4 + 0x164cdc]
add rcx, rdx
jmp rcx
test r10d, r10d
je 0x1401649fd
lea r9, [rbp - 0x3c]
mov r10d, ebx
mov rdx, rdi
jmp 0x1401645e2
or dword [r9], 0x40
mov rdx, rdi
or dword [r13 + 0xd0], 0x400
jmp 0x1401645e2
or dword [r9], 8
mov rdx, rdi
jmp 0x1401645e2
or dword [r9], 0x400
mov rdx, rdi
jmp 0x1401645e2
or dword [r9], 0x2000
mov rdx, rdi
jmp 0x1401645e2
or dword [r9], 0x20
mov rdx, rdi
jmp 0x1401645e2
or dword [r9], 0x40000
mov rdx, rdi
jmp 0x1401645e2
mov eax, dword [r9]
mov rdx, rdi
bts eax, 7
mov dword [r9], eax
cmp rdi, r15
jae 0x1401645e2
cmp word [rdi], 0x78
jne 0x1401645e2
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 0x140164510
mov r8d, dword [rbp - 0x48]
mov ecx, dword [rbp - 0x3c]
mov eax, r8d
and eax, 0x1000080
cmp eax, 0x80
je 0x140164608
test cl, cl
jns 0x14016460c
bts ecx, 0x18
or esi, r8d
not ecx
and esi, ecx
mov dword [rsp + 0x58], esi
cmp rdx, r15
jae 0x140164afc
cmp word [rdi], 0x29
jne 0x140164656
movzx r8d, r12w
mov word [rbp + 0x78], r12w
cmp r14, qword [r13 + 0x28]
jbe 0x14016464b
cmp word [r14 - 0xc], r12w
lea rax, [r14 - 0xc]
jne 0x14016464b
mov r9, qword [rsp + 0x50]
mov qword [rbp - 0x50], rax
jmp 0x140164670
mov r9, qword [rsp + 0x50]
mov word [r14], r12w
jmp 0x140164670
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 0x14016469d
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 0x140161ac2
mov r14, qword [rbp - 0x50]
movzx r8d, word [rbp + 0x78]
mov r13, qword [rbp + 0x88]
test r14, r14
je 0x1401646ee
cmp word [r14], r8w
jne 0x1401646ee
test byte [r14 + 6], 1
je 0x1401646ee
movzx eax, word [r14 + 4]
mov ecx, dword [r13 + 0xd4]
cmp ecx, eax
jbe 0x1401646e2
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 0x140161ac2
mov r14, qword [rbp - 0x50]
mov eax, 1
movzx r8d, word [rbp + 0x78]
mov dword [rsp + 0x78], eax
test r14, r14
je 0x1401647cc
cmp word [r14], r8w
jne 0x1401647cc
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 0x140164783
movzx ecx, word [r14 + 4]
cmp ecx, dword [r13 + 0xd4]
jbe 0x140164783
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 0x1401647af
mov rbx, qword [rsp + 0x50]
mov dword [rbx], 0x80190000
add rbx, 4
mov qword [rsp + 0x50], rbx
cmp r14, qword [r13 + 0x28]
jne 0x1401647bd
xor ebx, ebx
mov qword [rbp - 0x50], rbx
jmp 0x1401647d5
sub r14, 0xc
mov dword [rsp + 0x78], r9d
mov qword [rbp - 0x50], r14
jmp 0x1401647d3
mov r13, qword [rbp + 0x88]
xor ebx, ebx
test r8w, r8w
je 0x140164a21
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 0x140161ac2
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 0x140161ac2
mov edx, 0x8c
jmp 0x140162dec
lea r11, [rdi - 2]
mov edx, 0xb0
jmp 0x140162dec
mov edx, 0x76
jmp 0x140162dec
mov edx, 0x6d
sub r11, 2
jmp 0x140162dec
xor eax, eax
sub r11, 2
cmp r10d, 0x3a
mov edx, eax
setne dl
add edx, 0x70
jmp 0x140162dec
mov edx, 0x71
sub r11, 2
jmp 0x140162dec
mov r11, qword [rbp + 0x70]
mov edx, 0x6b
sub r11, 2
jmp 0x140162dec
mov edx, 0xab
mov r11, qword [rbp + 0x70]
jmp 0x140162dec
mov r11, qword [rbp + 0x70]
mov edx, 0x96
jmp 0x140162dec
mov edx, 0x6c
sub r11, 2
jmp 0x140162dec
mov edx, 0x6a
jmp 0x140162dec
lea eax, [rcx + 0x7fd90000]
mov edx, SetErrorInfo
test eax, 0xfffeffff
mov eax, 0x80
cmovne edx, eax
jmp 0x140162de8
mov edx, 0xbd
jmp 0x140162de8
mov edx, 0xc3
jmp 0x140162de8
mov edx, 0xa6
jmp 0x140162dec
mov edx, 0x8d
jmp 0x140162dec
mov edx, 0x9e
jmp 0x140162dec
mov r11, qword [rbp + 0x70]
mov edx, dword [rsp + 0x68]
jmp 0x140162dec
mov edx, 0xac
jmp 0x140162dec
mov edx, UnRegisterTypeLib
mov r11, r9
jmp 0x140162dec
mov edx, 0x8a
jmp 0x140162dec
mov edx, 0x8b
jmp 0x140162dec
mov edx, 0x73
jmp 0x140162dec
mov edx, 0xb3
jmp 0x140162dec
mov edx, 0x7c
jmp 0x140162dec
mov r11, qword [rbp + 0x70]
mov edx, 0x8f
jmp 0x140162dec
mov r11, qword [rbp + 0x70]
mov edx, 0xa5
jmp 0x140162dec
mov r11, qword [rbp + 0x70]
mov edx, 0x79
jmp 0x140162dec
mov r11, qword [rbp + 0x70]
mov edx, 0x95
jmp 0x140162dec
mov r11, qword [rbp + 0x70]
mov edx, SetErrorInfo
jmp 0x140162dec
mov edx, 0x73
sub r11, 2
jmp 0x140162dec
mov edx, 0xc2
mov r11, r8
jmp 0x140162dec
mov edx, 0x6f
mov r11, r8
jmp 0x140162dec
mov edx, UnRegisterTypeLib
jmp 0x140162dec
mov edx, 0x7a
sub r11, 2
jmp 0x140162dec
mov edx, 0x77
jmp 0x140162dec
test r14d, r14d
je 0x140164a48
mov edx, 0xa0
jmp 0x140162dec
mov ebx, dword [rbp - 0x28]
mov r12d, dword [rbp - 0x18]
mov edx, dword [rbp - 0x30]
mov rcx, r9
test rdi, rdi
je 0x140164a6a
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 0x140164ab0
test rdi, rdi
je 0x140164a86
lea rax, [r9 - 0x10]
cmp rdi, rax
jne 0x140164a86
mov eax, 0xff
cmp dword [rdi + 0xc], eax
je 0x140164aa3
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 0x140164ac4
mov dword [rcx], 0x80190000
mov dword [rcx + 4], 0x80160000
jmp 0x140164ad6
test dl, 4
je 0x140164ada
mov dword [rcx], 0x80190000
mov dword [rcx + 4], 0x80180005
add rcx, 8
cmp rcx, rsi
jb 0x140164ae9
mov edx, 0xa3
jmp 0x140162dec
mov dword [rcx], 0x80000000
test r8w, r8w
jne 0x140164b00
xor eax, eax
jmp 0x140162e03
mov r11, qword [rbp - 0x78]
mov edx, 0x72
jmp 0x140162dec