Function at 0x1401590f0
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 0x1401591ae
mov dword [r9], 0x80090000
jmp 0x1401591ba
test dl, 4
je 0x1401591cb
mov dword [r9], 0x80180005
mov dword [r9 + 4], 0x801a0000
add r9, 8
mov qword [rsp + 0x50], r9
bt r10d, 0x19
jae 0x1401592aa
cmp r11, r15
jae 0x14015c2d2
mov ecx, 0xfc00
mov r10d, 0x10000
nop word [rax + rax]
cmp r9, rsi
jae 0x14015c35f
movzx edx, word [r11]
mov r8, r11
add r11, 2
test eax, eax
je 0x140159233
mov eax, edx
and eax, ecx
cmp eax, 0xd800
jne 0x140159233
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 0x140159289
mov rcx, r9
test rdi, rdi
je 0x140159261
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 0x140159261
cmp dword [rdi + 0xc], 0xff
je 0x14015927b
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 0x1401591f0
movzx r8d, r14w
jmp 0x14015c2cf
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 0x140159342
mov r15, qword [rbp - 0x80]
mov r14d, dword [rsp + 0x5c]
jmp 0x140159342
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 0x14015c2b9
mov dword [rbp - 0x3c], ebx
mov r14d, ebx
mov dword [rbp - 0x48], ebx
mov r15d, ebx
cmp r9, rsi
jae 0x14015c35f
mov r8, qword [r13]
movzx eax, word [rbp + 0x78]
cmp eax, dword [r8 + 0x3c]
ja 0x14015c2af
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 0x1401593e8
mov eax, r13d
and eax, r10d
cmp eax, 0xd800
jne 0x1401593e8
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 0x140159508
mov r15, qword [rbp - 0x80]
cmp edx, 0x5c
jne 0x140159424
cmp rdi, r15
jae 0x140159424
cmp word [r11], 0x45
jne 0x140159424
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 0x140159336
cmp dword [rbp - 0x40], 0
jg 0x140159a47
mov r14d, dword [rsp + 0x5c]
test r14d, r14d
jne 0x1401594e2
mov r14d, dword [rbp - 0x44]
mov eax, r14d
dec r14d
mov dword [rbp - 0x44], r14d
test eax, eax
jg 0x1401594d4
mov r10, qword [rsp + 0x60]
mov rcx, r9
mov rdx, qword [rbp + 0x88]
test r10, r10
je 0x140159478
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 0x140159483
xor r10d, r10d
jmp 0x1401594c8
test r10, r10
je 0x14015949e
lea rax, [r9 - 0x10]
cmp r10, rax
mov eax, 0xff
jne 0x1401594a3
cmp dword [r10 + 0xc], eax
je 0x1401594bd
jmp 0x1401594a3
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 0x140159336
cmp dword [rsp + 0x5c], 0
je 0x1401596d3
mov eax, ecx
and eax, 0x400080
cmp eax, 0x400080
jne 0x140159579
mov eax, 0xff
cmp edx, eax
jbe 0x14015953d
mov eax, edx
or eax, 1
cmp eax, 0x200f
je 0x14015953d
cmp eax, 0x2029
jne 0x140159587
cmp edx, 0x100
jae 0x1401596d3
cmp edx, 0x23
je 0x140159710
mov rax, qword [rbp + 0x88]
mov ecx, edx
mov rax, qword [rax + 0x20]
test byte [rcx + rax], 1
mov ecx, dword [rsp + 0x58]
jne 0x1401596d3
cmp edx, 0x85
je 0x140159710
cmp edx, 0x29
je 0x14015965b
cmp edx, 0x5c
je 0x1401595a3
mov r15, qword [rbp - 0x80]
mov dword [r9], r13d
add r9, 4
mov r13, qword [rbp + 0x88]
mov qword [rsp + 0x50], r9
jmp 0x14015c0ce
mov esi, dword [rsp + 0x58]
xor ebx, ebx
mov r15, qword [rbp - 0x80]
bt esi, 0x16
jae 0x140159625
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.1401523b0
mov edx, dword [rsp + 0x68]
mov ecx, eax
test edx, edx
jne 0x14015c155
test eax, eax
je 0x140159618
sub ecx, 0x19
je 0x14015ba90
mov r11, qword [rbp + 0x70]
cmp ecx, 1
jne 0x14015c0e9
mov r9, qword [rsp + 0x50]
mov eax, ecx
mov dword [rbp - 0x6c], ecx
jmp 0x140159638
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 0x140159342
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 0x14015c0f3
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 0x140159342
mov dword [r9], edx
add r9, 4
mov qword [rsp + 0x50], r9
mov dword [rbp - 0x24], ebx
mov r13, qword [rbp + 0x88]
jmp 0x140159342
mov r10, qword [rbp - 0x80]
cmp edx, 0x5c
jne 0x140159714
cmp rdi, r10
jae 0x140159714
movzx eax, word [r11]
cmp ax, 0x51
je 0x1401596f1
cmp ax, 0x45
jne 0x140159714
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 0x14015c0c8
mov r10, qword [rbp - 0x80]
test cl, cl
jns 0x1401598a2
cmp edx, 0x100
jae 0x14015973f
mov rax, qword [rbp + 0x88]
mov ecx, edx
mov rax, qword [rax + 0x20]
test byte [rcx + rax], 1
mov ecx, dword [rsp + 0x58]
jne 0x14015931b
cmp edx, 0x85
je 0x14015931b
mov eax, edx
or eax, 1
cmp eax, 0x200f
je 0x14015931b
cmp eax, 0x2029
je 0x14015931b
cmp edx, 0x23
jne 0x1401598a2
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 0x140159342
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 0x1401597ef
cmp r11, rcx
jae 0x140159824
mov eax, dword [rbp - 0x68]
lea r9, [r13 + 0x104]
mov r8, rcx
mov dword [rsp + 0x20], eax
mov rcx, r11
call fcn.14015ebe0
mov r11, qword [rbp - 0x78]
test eax, eax
jne 0x14015988b
mov r8d, dword [rbp - 0x68]
jmp 0x140159824
mov edx, dword [r13 + 0x104]
imul rax, rdx, 0xfffffffffffffffe
add rax, rcx
cmp r11, rax
ja 0x140159824
movzx eax, word [r13 + 0x110]
cmp word [r11], ax
jne 0x140159824
cmp edx, 1
je 0x140159892
movzx eax, word [r13 + 0x112]
cmp word [r11 + 2], ax
je 0x140159892
add r11, 2
mov r10d, 0xfc00
mov qword [rbp - 0x78], r11
mov rax, r11
test r8d, r8d
je 0x140159860
cmp r11, r15
jae 0x140159860
movzx eax, word [r11]
mov ecx, 0xdc00
and ax, r10w
cmp ax, cx
jne 0x1401597b0
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 0x1401597b0
jmp 0x14015933d
mov edx, dword [r13 + 0x104]
mov r9, qword [rsp + 0x50]
mov eax, edx
lea r11, [r11 + rax*2]
jmp 0x14015c0c4
cmp edx, 0x28
jne 0x1401598ff
mov rax, r10
sub rax, r11
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x140159946
cmp word [r11], 0x3f
jne 0x140159946
cmp word [r11 + 2], 0x23
jne 0x140159946
mov r15, qword [rbp - 0x80]
add r11, 2
cmp r11, r15
jae 0x14015c101
cmp word [r11], 0x29
jne 0x1401598d2
cmp r11, r15
jae 0x14015c101
mov r13, qword [rbp + 0x88]
add r11, 2
jmp 0x14015c0c8
lea eax, [rdx - 0x2a]
cmp eax, 1
jbe 0x1401599ea
cmp edx, 0x3f
je 0x1401599ea
cmp edx, 0x7b
jne 0x140159946
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.14015e120
mov r9, qword [rsp + 0x50]
test eax, eax
jne 0x1401599ea
mov ecx, dword [rbp - 0x44]
mov eax, ecx
mov r10, qword [rsp + 0x60]
dec ecx
mov dword [rbp - 0x44], ecx
test eax, eax
jg 0x1401599ef
mov rdx, qword [rbp + 0x88]
mov rcx, r9
test r10, r10
je 0x14015997e
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 0x140159996
xor r10d, r10d
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], r10
mov r9, rcx
jmp 0x1401599ef
test r10, r10
je 0x1401599b1
lea rax, [r9 - 0x10]
cmp r10, rax
mov eax, 0xff
jne 0x1401599b6
cmp dword [r10 + 0xc], eax
je 0x1401599d0
jmp 0x1401599b6
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 0x1401599ef
mov r10, qword [rsp + 0x60]
mov edx, dword [rbp - 0x40]
test edx, edx
jle 0x140159a88
cmp r13d, 0x28
jne 0x140159a47
mov rax, qword [rbp - 0x80]
mov r11, qword [rbp - 0x78]
sub rax, r11
and rax, 0xfffffffffffffffe
cmp rax, 6
jl 0x140159a47
movzx eax, word [r11]
cmp ax, 0x3f
je 0x140159a55
cmp ax, 0x2a
jne 0x140159a47
movzx eax, word [r11 + 2]
mov ecx, 0xff
cmp ax, cx
ja 0x140159a47
mov r8, qword [rbp + 0x88]
mov ecx, eax
mov rax, qword [r8 + 0x20]
test byte [rcx + rax], 4
jne 0x140159a93
lea r11, [rdi - 2]
mov edx, 0x80
jmp 0x14015a66c
movzx ecx, word [r11 + 2]
sub ecx, 0x21
je 0x140159a8c
sub ecx, 0x1b
je 0x140159a75
sub ecx, 1
je 0x140159a8c
cmp ecx, 6
jne 0x140159a47
cmp edx, 2
jne 0x140159a47
jmp 0x140159a8c
movzx eax, word [r11 + 4]
cmp ax, 0x3d
je 0x140159a8c
cmp ax, 0x21
jne 0x140159a47
jmp 0x140159a8c
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 0x140159af3
cmp edi, 0x3f
je 0x140159abe
cmp edi, 0x2b
jne 0x140159af3
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 0x14015c0b9
lea eax, [rdi - 0x24]
cmp eax, 0x58
ja case.0x140159b18.37
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x15c3c0]
mov ecx, dword [rdx + rax*4 + 0x15c38c]
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.1401523b0
mov edx, dword [rsp + 0x68]
mov ebx, eax
test edx, edx
jne 0x140159ba6
test eax, eax
je 0x14015a000
js 0x140159f82
lea ecx, [rax - 6]
cmp ecx, 0x16
ja case.0x140159b95.13
movsxd rax, ecx
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x15c434]
mov ecx, dword [rdx + rax*4 + 0x15c41c]
add rcx, rdx
jmp rcx
bt esi, 0x14
jae case.0x140159b95.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 0x14015a668
mov r15, qword [rbp - 0x80]
mov r11, r13
cmp r13, r15
jb 0x14015a00c
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 0x14015c0ce
mov eax, 1
mov dword [rsp + 0x78], eax
jmp case.0x140159b95.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.140158550
test eax, eax
je 0x140159ea2
cmp dword [rbp - 0x20], r12d
je 0x140159c5c
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 0x14015a0d7
mov rdi, qword [rbp + 0x70]
mov qword [rbp - 0x78], rdi
cmp rdi, r15
jae 0x140159eab
movzx eax, word [rdi]
cmp ax, 0x7b
je 0x140159cb3
cmp ax, 0x3c
je 0x140159d2a
cmp ax, 0x27
jne 0x140159eab
cmp ax, 0x27
mov r15d, 0x7d
mov eax, 0x27
cmove r15d, eax
mov esi, ebx
cmp ebx, 0x1b
jne 0x140159e12
cmp r15d, 0x7d
je 0x140159e12
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 0x140159d41
cmp r8, r12
jae 0x140159e16
movzx eax, word [r8]
cmp ax, 0x2b
jne 0x140159d32
lea edi, [rbx - 0x1a]
sub r10d, r11d
jmp 0x140159d3d
mov r15d, 0x3e
jmp 0x140159cc6
cmp ax, 0x2d
jne 0x140159d4a
mov edi, 0xffffffff
add r8, 2
cmp r8, r12
jae 0x140159e16
movzx eax, word [r8]
sub ax, 0x30
cmp ax, 9
ja 0x140159e16
nop dword [rax]
movzx r9d, word [r8]
lea eax, [r9 - 0x30]
cmp ax, 9
ja 0x140159d86
lea ecx, [rcx + rcx*4]
add r8, 2
lea ecx, [rcx - 0x18]
lea ecx, [r9 + rcx*2]
cmp ecx, r10d
ja 0x140159d9e
cmp r8, r12
jb 0x140159d60
test r11d, r11d
js 0x140159dc9
test edi, edi
je 0x140159dc9
test ecx, ecx
jne 0x140159da9
mov edx, 0x7e
mov dword [rsp + 0x68], edx
jmp 0x140159dcf
mov edx, 0xa1
mov dword [rsp + 0x68], edx
jmp 0x140159dcf
test edi, edi
jle 0x140159db2
add ecx, r11d
jmp 0x140159dc9
cmp ecx, r11d
jle 0x140159dc2
mov edx, 0x73
mov dword [rsp + 0x68], edx
jmp 0x140159dcf
sub r11d, ecx
lea ecx, [r11 + 1]
mov r14d, 1
mov dword [rbp - 0x64], ecx
test r14d, r14d
je 0x140159e08
cmp r8, r12
jae 0x140159df8
movzx eax, word [r8]
cmp eax, r15d
jne 0x140159df8
mov r15, qword [rbp - 0x80]
mov r11, r8
mov r13, qword [rbp + 0x88]
jmp 0x14015bc46
mov eax, 0x9d
mov edx, eax
mov dword [rsp + 0x68], eax
jmp 0x140159bae
test edx, edx
jne 0x140159bae
jmp 0x140159e16
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.14015dd50
test eax, eax
je 0x140159ea2
cmp esi, 0x1c
je 0x140159e6e
mov eax, 0x80210000
cmp r15d, 0x7d
jne 0x140159e73
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 0x14015c0ab
mov edx, dword [rsp + 0x68]
jmp 0x140159ba6
cmp ebx, 0x1b
mov edx, 0xa9
mov eax, 0x9d
cmove edx, eax
mov dword [rsp + 0x68], edx
jmp 0x140159bae
bt esi, 0x11
mov eax, 1
mov dword [rsp + 0x78], eax
jb 0x140159ef3
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 0x14015c0bd
lea eax, [rbx - 7]
test eax, 0xfffffff9
jne 0x140159f07
mov eax, 0x80180010
cmp ebx, 0xd
jne 0x140159f0c
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.0x140159f35
cdqe
mov ecx, dword [rdx + rax*4 + 0x15c44c]
add rcx, rdx
jmp rcx
mov r11, qword [rbp + 0x70]
mov dword [r9], 0x3000d
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x14015c0bd
mov r11, qword [rbp + 0x70]
mov dword [r9], 0x70000
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x14015c0bd
mov r11, qword [rbp + 0x70]
mov dword [r9], 0x90000
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x14015c0bd
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 0x140159fdb
movsxd rax, ebx
cmp qword [r13 + rax*8 + 0x58], 0xffffffffffffffff
jne 0x140159ff2
mov qword [r13 + rax*8 + 0x58], rcx
mov eax, 1
mov dword [rsp + 0x78], eax
jmp 0x14015c0c4
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 0x14015c0c4
mov r11, qword [rbp + 0x70]
mov ecx, dword [rbp - 0x70]
jmp 0x140159bcd
cmp dword [rbp - 0x68], 0
lea r11, [r13 + 2]
movzx ecx, word [r13]
je 0x140159bcd
mov eax, ecx
mov r10d, 0xfc00
and eax, r10d
cmp eax, 0xd800
jne 0x140159bd3
movzx eax, word [r11]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add r11, 2
jmp 0x140159bd3
mov dword [r9], 0x80090000
add r9, 4
jmp 0x14015c0b4
mov dword [r9], 0x80160000
add r9, 4
jmp 0x14015c0b4
mov dword [r9], 0x80170000
jmp 0x14015c0a7
mov edx, 0x80340000
jmp 0x14015a0ff
mov edx, 0x80370000
jmp 0x14015a0ff
mov edx, 0x803a0000
jmp 0x14015a0ff
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.14015e120
test eax, eax
jne 0x14015a0ee
mov edx, dword [rsp + 0x68]
test edx, edx
jne 0x14015c155
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 0x14015c0bd
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 0x14015c10b
mov r9, qword [rsp + 0x50]
cmp dword [r9 - 4], 0x802a0000
lea rcx, [r9 - 4]
jne 0x14015a150
mov rsi, qword [rbp - 8]
cmp rcx, rsi
jb 0x14015a13e
nop word [rax + rax]
mov eax, dword [rcx]
mov dword [rcx + 4], eax
sub rcx, 4
cmp rcx, rsi
jae 0x14015a130
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 0x140159310
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 0x140159342
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 0x14015a28e
lea r8d, [r14 + 5]
mov rcx, r11
lea rdx, [0x1401e32b0]
call fcn.14015e510
test eax, eax
je 0x14015a1fe
mov rcx, qword [rbp - 0x78]
lea r8d, [r14 + 5]
lea rdx, str._:_:__
call fcn.14015e510
test eax, eax
jne 0x14015a28a
mov rbx, qword [rsp + 0x50]
mov r11, qword [rbp - 0x78]
mov dword [rbx], 0x80180005
lea rax, [rbx + 8]
cmp word [r11 + 4], 0x3c
jne 0x14015a224
mov dword [rbx + 4], 0x80230000
xor ebx, ebx
jmp 0x14015a23e
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 0x14015a254
mov dword [rax], 0x8018000b
jmp 0x14015a265
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 0x140159641
mov r11, qword [rbp - 0x78]
cmp r11, r15
jae 0x14015a32e
movzx r10d, word [r11]
cmp r10d, 0x3d
ja 0x14015a32e
movabs rcx, 0x2400400000000000
bt rcx, r10
jae 0x14015a32e
lea rdx, [rsi + 2]
mov r9, r15
sub r9, rdx
mov rax, r9
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x14015a32e
nop dword [rax]
movzx r8d, word [rdx]
cmp r8w, 0x5c
jne 0x14015a2f3
movzx eax, word [rdx + 2]
sub ax, r8w
cmp ax, r14w
ja 0x14015a308
add rdx, 2
sub r9, 2
jmp 0x14015a319
cmp r8w, 0x5b
jne 0x14015a301
cmp word [rdx + 2], r10w
jmp 0x14015a306
cmp r8w, 0x5d
je 0x14015a32e
cmp r8w, r10w
jne 0x14015a319
cmp word [rdx + 2], 0x5d
je 0x14015c119
sub r9, 2
add rdx, 2
mov rax, r9
and rax, 0xfffffffffffffffe
cmp rax, 4
jge 0x14015a2d0
xor r12d, r12d
mov edi, r12d
cmp r11, r15
jae 0x14015a428
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 0x14015a39c
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x14015a39c
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 0x14015a3f4
cmp rbx, r15
jae 0x14015a3bc
cmp word [r11], 0x45
jne 0x14015a3bc
mov eax, 2
lea r11, [rax + rbx]
mov qword [rbp + 0x70], r11
jmp 0x14015a411
mov rax, r15
sub rax, rbx
and rax, 0xfffffffffffffffe
cmp rax, 6
jl 0x14015a423
mov r8d, 3
lea rdx, [0x1401e32c0]
mov rcx, r11
call fcn.14015e510
test eax, eax
jne 0x14015a41f
mov eax, 6
lea r11, [rax + rbx]
mov qword [rbp + 0x70], r11
jmp 0x14015a411
bt r12d, 0x18
jae 0x14015a405
cmp ecx, 0x20
je 0x14015a411
cmp ecx, 9
je 0x14015a411
test edi, edi
jne 0x14015a423
cmp ecx, 0x5e
jne 0x14015a423
mov edi, r14d
cmp r11, r15
jb 0x14015a342
xor r12d, r12d
jmp 0x14015a42b
mov r11, qword [rbp - 0x78]
xor r12d, r12d
jmp 0x14015a42b
mov esi, dword [rbp - 0x2c]
mov r13, qword [rbp + 0x88]
cmp esi, 0x5d
jne 0x14015a465
test byte [r13 + 0xcc], r14b
je 0x14015a465
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 0x14015c0c4
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 0x14015a493
xor r12d, r12d
mov r10d, edx
test ebx, ebx
je 0x14015a4c6
cmp esi, 0x5c
jne 0x14015a5aa
cmp r11, r15
jae 0x14015a5aa
cmp word [r11], 0x45
jne 0x14015a5aa
mov ebx, r12d
add r11, 2
mov dword [rbp - 0x6c], ebx
jmp 0x14015a71f
mov r14d, dword [rsp + 0x58]
bt r14d, 0x18
jae 0x14015a4e4
cmp esi, 0x20
je 0x14015a71f
cmp esi, 9
je 0x14015a71f
cmp esi, 0x5b
jne 0x14015a7fc
mov rax, r15
sub rax, r11
and rax, 0xfffffffffffffffe
cmp rax, 6
jl 0x14015a5aa
movzx r9d, word [r11]
cmp r9d, 0x3d
ja 0x14015a5a5
movabs rcx, 0x2400400000000000
bt rcx, r9
jae 0x14015a5a5
lea r13, [r11 + 2]
mov r8, r15
sub r8, r13
mov r12, r13
mov rax, r8
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x14015aa99
movzx edx, word [r12]
cmp dx, 0x5c
jne 0x14015a565
movzx eax, word [r12 + 2]
sub ax, dx
cmp ax, 1
ja 0x14015a579
add r12, 2
sub r8, 2
jmp 0x14015a588
cmp dx, 0x5b
jne 0x14015a573
cmp word [r12 + 2], r9w
jmp 0x14015a577
cmp dx, 0x5d
je 0x14015a59d
cmp dx, r9w
jne 0x14015a588
cmp word [r12 + 2], 0x5d
je 0x14015a5ce
sub r8, 2
add r12, 2
mov rax, r8
and rax, 0xfffffffffffffffe
cmp rax, 4
jge 0x14015a541
xor r12d, r12d
mov edx, 1
mov r9, qword [rsp + 0x50]
cmp edi, 1
jne 0x14015aad3
cmp esi, dword [r9 - 8]
jne 0x14015aaa1
sub r9, 4
mov edi, r12d
mov qword [rsp + 0x50], r9
jmp 0x14015a71f
xor eax, eax
mov r15d, eax
cmp edi, 1
je 0x14015c162
cmp r9d, 0x3a
jne 0x14015c130
cmp word [r13], 0x5e
mov qword [rbp - 0x78], r13
jne 0x14015a601
lea rdi, [r13 + 2]
mov qword [rbp - 0x78], rdi
lea r15d, [rax + 1]
mov r13, rdi
mov rbx, r12
lea rdi, [0x1401e2fc0]
sub rbx, r13
lea rcx, [0x140000000]
sar rbx, 1
mov r14d, eax
mov rsi, rax
nop
movzx eax, byte [rsi + rcx + 0x1e3018]
cmp ebx, eax
jne 0x14015a645
mov r8d, ebx
mov rdx, rdi
mov rcx, r13
call fcn.14015e510
test eax, eax
je 0x14015a697
lea rcx, [0x140000000]
movzx eax, byte [rsi + rcx + 0x1e3018]
inc rdi
inc rsi
add rdi, rax
inc r14d
cmp byte [rsi + rcx + 0x1e3018], 0
jne 0x14015a620
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 0x14015a663
mov rax, qword [rbp - 0x80]
lea r11, [r12 + 4]
add rax, 0xfffffffffffffffe
cmp r11, rax
jae 0x14015a6c1
cmp word [r11], 0x2d
jne 0x14015a6c1
cmp word [r11 + 2], 0x5d
jne 0x14015c162
xor eax, eax
bt dword [rsp + 0x58], 0x11
mov edi, eax
jae 0x14015a7e1
lea rcx, [0x140000000]
mov eax, dword [rcx + rsi*8 + 0x27e050]
mov ecx, dword [rcx + rsi*8 + 0x27e054]
test eax, eax
js 0x14015a7c1
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 0x14015c17a
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 0x14015a778
mov eax, esi
and eax, r10d
cmp eax, 0xd800
jne 0x14015a778
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 0x14015a490
test ebx, ebx
jne 0x14015a490
cmp edi, 1
jne 0x14015a79d
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 0x14015c0ce
test ecx, ecx
je 0x14015a7e1
mov r9, qword [rsp + 0x50]
xor r15d, 1
sub r15d, 0x7fe7ffee
mov dword [r9], r15d
add r9, 4
jmp 0x14015a70e
mov r9, qword [rsp + 0x50]
lea eax, [r15 + 0x801c]
shl eax, 0x10
mov dword [r9], eax
mov dword [r9 + 4], r14d
jmp 0x14015a70a
cmp esi, 0x2d
jne 0x14015a82d
cmp edi, 2
jb 0x14015a5aa
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 0x14015a71f
cmp esi, 0x5c
jne 0x14015a5aa
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.1401523b0
mov edx, dword [rsp + 0x68]
movsxd rbx, eax
test edx, edx
je 0x14015a8d8
test byte [rbp - 0x30], 2
je 0x14015c155
mov r11, qword [rbp - 0x78]
cmp r11, r15
jb 0x14015a891
mov ebx, dword [rbp - 0x6c]
mov r10d, r12d
jmp 0x14015a5a0
cmp dword [rbp - 0x68], 0
lea rcx, [r11 + 2]
movzx esi, word [r11]
mov r11, rcx
je 0x14015a901
mov eax, esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x14015a901
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 0x14015a5a0
lea r8, [0x140000000]
cmp ebx, 0x1a
ja case.0x14015a8f8.5
movzx eax, byte [r8 + rbx + 0x15c47c]
mov ecx, dword [r8 + rax*4 + 0x15c464]
add rcx, r8
jmp rcx
mov r11, qword [rbp + 0x70]
mov esi, dword [rbp - 0x70]
mov ebx, dword [rbp - 0x6c]
mov r10d, r12d
jmp 0x14015a5a0
mov r11, qword [rbp + 0x70]
mov esi, 8
mov ebx, dword [rbp - 0x6c]
mov r10d, r12d
jmp 0x14015a5a0
mov r11, qword [rbp + 0x70]
mov edx, 1
mov r9, qword [rsp + 0x50]
mov ebx, edx
mov dword [rbp - 0x6c], edx
jmp 0x14015a71f
mov r11, qword [rbp + 0x70]
mov r9, qword [rsp + 0x50]
jmp 0x14015a717
cmp edi, 1
je 0x14015c15e
lea edx, [rbx - 6]
mov edi, r12d
cmp edx, 0xf
ja case.0x14015a96c.13
movsxd rax, edx
mov ecx, dword [r8 + rax*4 + 0x15c498]
add rcx, r8
jmp rcx
mov r9, qword [rsp + 0x50]
lea eax, [rbx - 0x7fe80000]
mov dword [r9], eax
add r9, 4
jmp 0x14015aa67
bt r14d, 0x11
jae case.0x14015a96c.18
lea eax, [rbx - 7]
test eax, 0xfffffff9
jne 0x14015a9a0
mov eax, 0x80180010
cmp ebx, 0xd
jne 0x14015a9a5
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.0x14015a9cd
movsxd rax, edx
mov ecx, dword [r8 + rax*4 + 0x15c4d8]
add rcx, r8
jmp rcx
mov dword [r9], 0x3000d
add r9, 4
jmp 0x14015aa67
mov dword [r9], 0x70000
add r9, 4
jmp 0x14015aa67
mov dword [r9], 0x90000
add r9, 4
jmp 0x14015aa67
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.140158550
test eax, eax
je 0x14015c1d3
cmp dword [rbp - 0x1c], 0
je 0x14015aa43
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 0x14015a717
cmp word [r11], 0x2d
jne 0x14015a717
cmp word [r11 + 2], 0x5d
jne 0x14015c162
jmp 0x14015a717
xor r12d, r12d
jmp 0x14015a5a5
jb 0x14015c16c
test r10d, r10d
jne 0x14015aabf
mov eax, 0x801f0000
cmp dword [r9 - 4], eax
jne 0x14015aabf
mov dword [r9 - 4], 0x801e0000
mov dword [r9], esi
mov edi, r12d
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x14015a71f
mov dword [r9], esi
lea edi, [r10 + 2]
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x14015a71f
mov r15, qword [rbp - 0x80]
cmp rsi, r15
jae 0x14015c380
movzx eax, word [r11]
cmp ax, 0x3f
je 0x14015b009
cmp ax, 0x2a
je 0x14015ab81
movzx r8d, word [rbp + 0x78]
mov r13, qword [rbp + 0x88]
inc r8w
test dword [rsp + 0x58], 0x2000
mov word [rbp + 0x78], r8w
jne 0x14015ab4d
mov ecx, dword [r13 + 0xd4]
mov eax, 0xffff
cmp ecx, eax
jae 0x14015c265
inc ecx
mov dword [r13 + 0xd4], ecx
or ecx, 0x80080000
jmp 0x14015ab52
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 0x140159342
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 0x140159334
movzx eax, word [r11 + 2]
cmp eax, 0x29
je 0x140159334
mov ecx, 0xff
cmp ax, cx
ja 0x14015ae34
mov ecx, eax
mov rax, qword [r8 + 0x20]
test byte [rcx + rax], 4
je 0x14015ae34
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, [0x1401e2e50]
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.14015dd50
test eax, eax
je 0x14015c1d3
mov rdi, qword [rbp + 0x70]
mov qword [rbp - 0x78], rdi
cmp rdi, r15
jae 0x14015c1ab
cmp word [rdi], 0x3a
jne 0x14015c1ab
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 + 0x1e2f30]
add rsi, rcx
cmp r15d, dword [rsi]
jne 0x14015ac8e
mov r8, r15
mov rdx, r14
mov rcx, r12
mov edi, ebx
call fcn.14015e510
test eax, eax
je 0x14015aca1
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 0x14015ac60
cmp edi, 0x11
jge 0x14015c1ab
movsxd rax, edi
lea rcx, [0x140000000]
mov ecx, dword [rcx + rax*8 + 0x1e2f34]
test r13d, r13d
jle 0x14015acd1
lea eax, [rcx + 0x7fdd0000]
cmp eax, 0x30000
ja 0x14015c184
cmp ecx, 0x80250000
ja 0x14015ad2f
je 0x14015ae23
cmp ecx, 0x80020000
je 0x14015b7ba
cmp ecx, 0x80220000
je 0x14015ad60
cmp ecx, 0x80230000
je 0x14015b7e6
cmp ecx, 0x80240000
jne 0x14015c1a1
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 0x14015b8b7
mov eax, 0x80260000
cmp ecx, eax
je 0x14015ae23
cmp ecx, 0x80270000
je 0x14015b80a
cmp ecx, 0x80280000
je 0x14015ae23
cmp ecx, 0x8fff0000
jne 0x14015c1a1
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 0x1401596c7
mov r14, qword [rbp - 0x50]
mov dword [r9], 0x80020000
add r9, 4
mov qword [rsp + 0x50], r9
test r14, r14
jne 0x14015ade3
mov r13, qword [rbp + 0x88]
mov r14, qword [r13 + 0x28]
mov qword [rbp - 0x50], r14
jmp 0x14015adfc
add r14, 0xc
mov qword [rbp - 0x50], r14
cmp r14, qword [rbp - 0x10]
jae 0x14015c297
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 0x140159342
mov r11, qword [rbp - 0x78]
mov r15, qword [rbp - 0x80]
sub r11, 2
jmp 0x14015b874
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, [0x1401e2d78]
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.14015dd50
test eax, eax
je 0x14015c1d3
mov r11, qword [rbp + 0x70]
mov qword [rbp - 0x78], r11
cmp r11, r15
jae 0x14015c2be
movzx eax, word [r11]
cmp ax, 0x3a
je 0x14015aeac
cmp ax, 0x29
jne 0x14015c2be
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 + 0x1e2db0]
cmp r15d, dword [rsi + r13]
jne 0x14015aef9
mov r8, r15
mov rdx, r14
mov rcx, r12
mov edi, ebx
call fcn.14015e510
test eax, eax
je 0x14015af0e
mov eax, dword [rsi + r13]
inc eax
add r14, rax
inc ebx
mov dword [rbp - 0x64], ebx
mov edi, ebx
cmp ebx, 9
jl 0x14015aed0
mov r13, qword [rbp + 0x88]
mov r11, qword [rbp - 0x78]
cmp edi, 9
jge 0x14015c2be
cmp word [r11], 0x3a
mov r15, qword [rbp - 0x80]
jne 0x14015af3e
lea rax, [r11 + 2]
cmp rax, r15
jae 0x14015af3e
cmp word [rax], 0x29
cmove r11, rax
movsxd rax, edi
lea r8, [0x140000000]
lea rcx, [rax + rax*2]
mov edx, dword [r8 + rcx*4 + 0x1e2db8]
test edx, edx
jle 0x14015af63
cmp word [r11], 0x3a
jne 0x14015c1b5
mov ecx, dword [r8 + rcx*4 + 0x1e2db4]
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 0x14015affa
test edx, edx
jns 0x14015afa8
mov dword [rbp - 0x24], ecx
mov eax, 0x80290000
jmp 0x14015afbb
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 0x140159342
mov dword [rbx], ecx
mov r9, r8
mov qword [rsp + 0x50], r8
jmp 0x14015c0c4
lea rdx, [rsi + 2]
mov qword [rbp - 0x78], rdx
mov r11, rdx
mov qword [rbp + 0x70], rdx
cmp rdx, r15
jae 0x14015c380
movzx r8d, word [rdx]
lea eax, [r8 - 0x21]
cmp eax, 0x31
ja case.0x14015b04d.46
lea rsi, [0x140000000]
cdqe
movzx eax, byte [rsi + rax + 0x15c528]
mov ecx, dword [rsi + rax*4 + 0x15c4f0]
add rcx, rsi
jmp rcx
lea r11, [rdx + 2]
mov qword [rbp + 0x70], r11
cmp r11, r15
jae 0x14015c380
movzx eax, word [r11]
cmp ax, 0x3c
jne 0x14015b075
mov r9d, 0x3e
jmp 0x14015b925
cmp ax, 0x3e
je case.0x14015b04d.34
cmp ax, 0x3d
jne 0x14015c1bf
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.14015dd50
test eax, eax
je 0x14015c1d3
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 0x14015c0c4
xor ebx, ebx
lea r11, [rdx + 2]
mov dword [rbp - 0x64], ebx
mov ecx, ebx
cmp r11, r15
jae 0x14015c1c9
cmp word [r11], 0x29
jne 0x14015c1c9
mov r13, qword [rbp + 0x88]
jmp 0x14015bc4d
mov rax, r15
sub rax, rdx
and rax, 0xfffffffffffffffe
cmp rax, 4
jl 0x14015b166
movzx eax, word [rdx + 2]
sub ax, 0x30
cmp ax, 9
jbe case.0x14015b04d.39
mov edx, 0x81
jmp 0x14015a66c
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.14015dd50
test eax, eax
je 0x14015c1d3
mov r9, qword [rsp + 0x50]
mov dword [r9], 0x80210000
jmp 0x14015b0e4
lea r9, [rdx + 2]
mov r11, r9
cmp r9, r15
jae 0x14015c380
mov rbx, qword [rsp + 0x50]
lea eax, [r13 - 1]
mov dword [rbp - 0x40], eax
mov r8d, 0xff
test r10, r10
je 0x14015b213
mov r12d, dword [rsp + 0x58]
test r12b, 4
je 0x14015b213
lea rax, [rbx - 0x10]
cmp r10, rax
jne 0x14015b213
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 0x14015b2f9
lea eax, [rdx - 0x30]
cmp ax, 9
jbe 0x14015b2f9
xor eax, eax
cmp dword [0x1401e34e0], eax
mov dword [rbp - 0x64], eax
je 0x14015b26b
mov ecx, eax
nop dword [rax + rax]
movsxd rax, ecx
cmp edx, dword [rsi + rax*4 + 0x1e34e0]
je 0x14015b275
inc ecx
cmp dword [rsi + rax*4 + 0x1e34e4], 0
mov dword [rbp - 0x64], ecx
jne 0x14015b250
mov edx, UnRegisterTypeLib
jmp 0x14015a66c
mov ecx, dword [rsi + rax*4 + 0x1e34b8]
test ecx, ecx
je 0x14015b26b
mov dword [rbx], 0x80070000
nop word [rax + rax]
add r11, 2
cmp r11, r15
jae 0x14015c1ea
movzx eax, word [r11]
cmp eax, ecx
jne 0x14015b290
add r11, 2
cmp r11, r15
jae 0x14015b2b6
movzx eax, word [r11]
cmp eax, ecx
je 0x14015b290
mov rax, r11
mov ecx, 0xffffffff
sub rax, r9
sar rax, 1
cmp rax, rcx
ja 0x14015c1e0
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 0x14015b343
xor eax, eax
mov dword [rbx], 0x80060000
mov edx, eax
movzx eax, word [r11]
mov rcx, r9
cmp eax, 0x30
jb 0x14015b335
cmp eax, 0x39
ja 0x14015b335
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 0x14015c1f7
mov r9, r11
cmp r11, r15
jb 0x14015b303
mov r13, qword [rbp + 0x88]
lea r9, [rbx + 0xc]
mov dword [rbx + 0xc], edx
cmp rcx, r15
jae 0x14015c201
cmp word [r11], 0x29
jne 0x14015c201
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 0x14015963d
lea r11, [rdx + 2]
mov qword [rbp + 0x70], r11
cmp r11, r15
jae 0x14015c380
movzx r8d, word [rbp + 0x78]
movzx eax, word [r11]
inc r8w
mov word [rbp + 0x78], r8w
cmp ax, 0x3f
je 0x14015b779
cmp ax, 0x2a
je 0x14015b779
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.14015dfe0
test eax, eax
je 0x14015b43a
mov edx, dword [rbp - 0x64]
mov r11, qword [rbp + 0x70]
test edx, edx
jle 0x14015c20b
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 0x14015b753
mov edx, dword [rsp + 0x68]
test edx, edx
jne 0x14015c155
mov rbx, qword [rbp + 0x70]
mov rdi, r15
sub rdi, rbx
sar rdi, 1
cmp rdi, 0xa
jl 0x14015b5b2
lea r8d, [rdx + 7]
mov rcx, rbx
lea rdx, str.VERSION
call fcn.14015e510
test eax, eax
jne 0x14015b5b2
cmp word [rbx + 0xe], 0x29
lea r11, [rbx + 0xe]
je 0x14015b5b2
xor ecx, ecx
mov rax, r11
cmp word [r11], 0x3e
mov r10d, ecx
mov r9d, ecx
jne 0x14015b4a4
add r11, 2
lea r10d, [rcx + 1]
mov rax, r11
cmp word [r11], 0x3d
jne 0x14015c215
lea r11, [rax + 2]
movzx eax, word [rax + 2]
sub ax, 0x30
cmp ax, 9
ja 0x14015c215
mov dword [rsp + 0x68], ecx
mov r8d, ecx
mov edx, ecx
cmp r11, r15
jae 0x14015a66c
movzx eax, word [r11]
sub ax, 0x30
cmp ax, 9
ja 0x14015a66c
nop dword [rax]
movzx edx, word [r11]
lea eax, [rdx - 0x30]
cmp ax, 9
ja 0x14015b51f
lea r8d, [r8 + r8*4]
add r11, 2
lea r8d, [r8 - 0x18]
lea r8d, [rdx + r8*2]
cmp r8d, 0x3e8
ja 0x14015c215
cmp r11, r15
jb 0x14015b4f0
cmp r11, r15
jae 0x14015c215
cmp word [r11], 0x2e
jne 0x14015b592
add r11, 2
cmp r11, r15
jae 0x14015c215
movzx ecx, word [r11]
lea eax, [rcx - 0x30]
cmp ax, 9
ja 0x14015c215
lea rdx, [r11 + 2]
lea eax, [rcx - 0x30]
mov r11, rdx
lea r9d, [rax + rax*4]
add r9d, r9d
cmp rdx, r15
jae 0x14015c215
movzx ecx, word [rdx]
lea eax, [rcx - 0x30]
cmp ax, 9
ja 0x14015b587
add r9d, 0xffffffd0
lea r11, [rdx + 2]
add r9d, ecx
cmp r11, r15
jae 0x14015c215
cmp word [r11], 0x29
jne 0x14015c215
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 0x14015b753
xor eax, eax
mov esi, eax
movzx eax, word [rbx]
cmp ax, 0x52
jne 0x14015b5df
cmp rdi, 1
jle 0x14015b601
cmp word [rbx + 2], 0x26
lea rax, [rbx + 2]
jne 0x14015b601
mov r12d, 1
mov qword [rbp + 0x70], rax
mov esi, r12d
jmp 0x14015b60f
cmp ax, 0x3c
jne 0x14015b5f0
mov edi, 0x3e
lea r12d, [rdi - 0x3d]
jmp 0x14015b614
cmp ax, 0x27
jne 0x14015b601
mov edi, 0x27
lea r12d, [rdi - 0x26]
jmp 0x14015b614
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.14015dd50
test eax, eax
je 0x14015c1d3
mov r14d, dword [rbp - 0x60]
test esi, esi
je 0x14015b67a
mov r9, qword [rsp + 0x50]
mov r11, qword [rbp + 0x70]
sub r11, 2
mov dword [r9], 0x80130000
jmp 0x14015b729
cmp edi, 0x29
jne 0x14015b719
mov rbx, qword [rbp - 0x38]
cmp r14d, 6
jne 0x14015b6ba
mov r8d, r14d
lea rdx, str.DEFINE
mov rcx, rbx
call fcn.14015e510
test eax, eax
jne 0x14015b6ba
mov r9, qword [rsp + 0x50]
mov eax, 0x80100000
mov dword [r9], eax
mov r11, qword [rbp + 0x70]
sub r11, 2
jmp 0x14015b729
mov dword [rbp - 0x64], r12d
mov eax, r12d
cmp r14d, 1
jle 0x14015b6f2
mov ecx, r12d
nop word [rax + rax]
movsxd rax, ecx
movzx edx, word [rbx + rax*2]
mov eax, ecx
cmp dx, 0x30
jb 0x14015b6f2
cmp dx, 0x39
ja 0x14015b6f2
lea eax, [rcx + 1]
mov dword [rbp - 0x64], eax
mov ecx, eax
cmp eax, r14d
jl 0x14015b6d0
cmp word [rbx], 0x52
jne 0x14015b702
cmp eax, r14d
mov eax, 0x80140000
jge 0x14015b707
mov eax, 0x80110000
mov r9, qword [rsp + 0x50]
mov dword [r9], eax
mov r11, qword [rbp + 0x70]
sub r11, 2
jmp 0x14015b729
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 0x14015b73e
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 0x14015c21f
cmp word [r11], 0x29
jne 0x14015c21f
add r11, 2
add r9, 4
mov qword [rsp + 0x50], r9
jmp 0x14015c0c4
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 0x140159342
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 0x14015b78e
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 0x14015b8b7
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 0x14015b8b7
mov rax, r15
sub rax, rdx
and rax, 0xfffffffffffffffe
cmp rax, 2
jle 0x14015b06a
movzx eax, word [rdx + 2]
cmp ax, 0x3d
je 0x14015b86f
cmp ax, 0x21
je 0x14015b85c
cmp ax, 0x2a
jne 0x14015b06a
cmp ax, 0x21
mov ecx, 0x80280000
mov eax, 0x80260000
cmove ecx, eax
jmp 0x14015b874
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 0x14015b915
mov r14, qword [rbp - 0x50]
test r14, r14
jne 0x14015b8dc
mov r14, qword [r8 + 0x28]
mov qword [rbp - 0x50], r14
jmp 0x14015b8ee
add r14, 0xc
mov qword [rbp - 0x50], r14
cmp r14, qword [rbp - 0x10]
jae 0x14015c297
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 0x14015b797
movzx r8d, word [rbp + 0x78]
jmp 0x14015b793
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.14015dd50
test eax, eax
je 0x14015c1d3
mov eax, dword [r13 + 0xd4]
mov ecx, 0xffff
cmp eax, ecx
jae 0x14015c261
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 0x14015c253
mov r14d, dword [rbp - 0x60]
movzx eax, word [r13 + 0xb2]
lea ecx, [r14 + 2]
cmp ecx, eax
jbe 0x14015b9db
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 0x14015ba6a
movzx eax, word [rbx + 0xc]
cmp r14d, eax
jne 0x14015ba3e
mov rdx, qword [rbx]
mov r8, r14
mov rcx, r12
call fcn.14015e4d0
test eax, eax
jne 0x14015ba3e
mov eax, dword [r13 + 0xd4]
cmp dword [rbx + 8], eax
je 0x14015ba65
test byte [rsp + 0x58], 0x40
je 0x14015c229
mov eax, 1
mov word [rbx + 0xe], ax
mov r15d, eax
mov dword [r13 + 0x12c], eax
jmp 0x14015ba4e
mov eax, dword [r13 + 0xd4]
cmp dword [rbx + 8], eax
je 0x14015c237
movzx eax, word [r13 + 0xb0]
inc esi
add rbx, 0x10
mov dword [rbp - 0x64], esi
mov edi, esi
cmp esi, eax
jl 0x14015b9f7
mov r9, qword [rsp + 0x50]
movzx eax, word [r13 + 0xb0]
cmp edi, eax
jge 0x14015bab0
mov r15, qword [rbp - 0x80]
xor ebx, ebx
mov r11, qword [rbp + 0x70]
jmp 0x140159638
mov r9, qword [rsp + 0x50]
mov r11, qword [rbp + 0x70]
jmp 0x140159638
mov r13, qword [rbp + 0x88]
xor ebx, ebx
mov r11, qword [rbp + 0x70]
jmp 0x140159638
mov ecx, dword [r13 + 0xc8]
cmp eax, ecx
jb 0x14015bb26
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 0x14015c245
mov r8d, dword [r13 + 0xc8]
mov rcx, rax
mov rdx, qword [r13 + 0xc0]
shl r8, 4
call fcn.1401a60f0
cmp dword [r13 + 0xc8], 0x14
jbe 0x14015bb10
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 0x14015c0c4
cmp r8d, 0x2d
jne 0x14015bc89
mov rax, r15
sub rax, rdx
and rax, 0xfffffffffffffffe
cmp rax, 2
jle 0x14015bc89
movzx eax, word [rdx + 2]
sub ax, 0x30
cmp ax, 9
ja 0x14015bc89
mov r13, qword [rbp + 0x88]
sub r8w, 0x30
cmp r8w, 9
mov r8d, 0xffffffff
jbe 0x14015bbee
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.14015dfe0
test eax, eax
je 0x14015c1d3
mov ecx, dword [rbp - 0x64]
mov r11, qword [rbp + 0x70]
test ecx, ecx
js 0x14015c26f
cmp r11, r15
jae 0x14015c380
cmp word [r11], 0x29
jne 0x14015c380
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 0x140159633
movzx r8d, word [rbp + 0x78]
mov r14, qword [rbp - 0x50]
inc r8w
mov word [rbp + 0x78], r8w
test r14, r14
jne 0x14015bcb1
mov r13, qword [rbp + 0x88]
mov r14, qword [r13 + 0x28]
mov qword [rbp - 0x50], r14
jmp 0x14015bcca
add r14, 0xc
mov qword [rbp - 0x50], r14
cmp r14, qword [rbp - 0x10]
jae 0x14015c297
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 0x14015bd49
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 0x140159342
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 0x14015bd82
lea rdi, [rdx + 2]
and esi, 0xfeffdb57
mov qword [rbp - 0x78], rdi
mov rdx, rdi
mov r10d, ebx
cmp rdx, r15
jae 0x14015be75
mov r8, rdx
nop
movzx eax, word [rdi]
mov rdx, r8
cmp eax, 0x29
je 0x14015be6e
cmp eax, 0x3a
je 0x14015be6e
sub eax, 0x2d
lea rdi, [r8 + 2]
mov qword [rbp - 0x78], rdi
cmp eax, 0x4b
ja case.0x14015bdd7.53
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x15c580]
mov ecx, dword [rdx + rax*4 + 0x15c55c]
add rcx, rdx
jmp rcx
test r10d, r10d
je 0x14015c27d
lea r9, [rbp - 0x3c]
mov r10d, ebx
mov rdx, rdi
jmp 0x14015be62
or dword [r9], 0x40
mov rdx, rdi
or dword [r13 + 0xd0], 0x400
jmp 0x14015be62
or dword [r9], 8
mov rdx, rdi
jmp 0x14015be62
or dword [r9], 0x400
mov rdx, rdi
jmp 0x14015be62
or dword [r9], 0x2000
mov rdx, rdi
jmp 0x14015be62
or dword [r9], 0x20
mov rdx, rdi
jmp 0x14015be62
or dword [r9], 0x40000
mov rdx, rdi
jmp 0x14015be62
mov eax, dword [r9]
mov rdx, rdi
bts eax, 7
mov dword [r9], eax
cmp rdi, r15
jae 0x14015be62
cmp word [rdi], 0x78
jne 0x14015be62
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 0x14015bd90
mov r8d, dword [rbp - 0x48]
mov ecx, dword [rbp - 0x3c]
mov eax, r8d
and eax, 0x1000080
cmp eax, 0x80
je 0x14015be88
test cl, cl
jns 0x14015be8c
bts ecx, 0x18
or esi, r8d
not ecx
and esi, ecx
mov dword [rsp + 0x58], esi
cmp rdx, r15
jae 0x14015c37c
cmp word [rdi], 0x29
jne 0x14015bed6
movzx r8d, r12w
mov word [rbp + 0x78], r12w
cmp r14, qword [r13 + 0x28]
jbe 0x14015becb
cmp word [r14 - 0xc], r12w
lea rax, [r14 - 0xc]
jne 0x14015becb
mov r9, qword [rsp + 0x50]
mov qword [rbp - 0x50], rax
jmp 0x14015bef0
mov r9, qword [rsp + 0x50]
mov word [r14], r12w
jmp 0x14015bef0
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 0x14015bf1d
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 0x140159342
mov r14, qword [rbp - 0x50]
movzx r8d, word [rbp + 0x78]
mov r13, qword [rbp + 0x88]
test r14, r14
je 0x14015bf6e
cmp word [r14], r8w
jne 0x14015bf6e
test byte [r14 + 6], 1
je 0x14015bf6e
movzx eax, word [r14 + 4]
mov ecx, dword [r13 + 0xd4]
cmp ecx, eax
jbe 0x14015bf62
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 0x140159342
mov r14, qword [rbp - 0x50]
mov eax, 1
movzx r8d, word [rbp + 0x78]
mov dword [rsp + 0x78], eax
test r14, r14
je 0x14015c04c
cmp word [r14], r8w
jne 0x14015c04c
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 0x14015c003
movzx ecx, word [r14 + 4]
cmp ecx, dword [r13 + 0xd4]
jbe 0x14015c003
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 0x14015c02f
mov rbx, qword [rsp + 0x50]
mov dword [rbx], 0x80190000
add rbx, 4
mov qword [rsp + 0x50], rbx
cmp r14, qword [r13 + 0x28]
jne 0x14015c03d
xor ebx, ebx
mov qword [rbp - 0x50], rbx
jmp 0x14015c055
sub r14, 0xc
mov dword [rsp + 0x78], r9d
mov qword [rbp - 0x50], r14
jmp 0x14015c053
mov r13, qword [rbp + 0x88]
xor ebx, ebx
test r8w, r8w
je 0x14015c2a1
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 0x140159342
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 0x140159342
mov edx, 0x8c
jmp 0x14015a66c
lea r11, [rdi - 2]
mov edx, 0xb0
jmp 0x14015a66c
mov edx, 0x76
jmp 0x14015a66c
mov edx, 0x6d
sub r11, 2
jmp 0x14015a66c
xor eax, eax
sub r11, 2
cmp r10d, 0x3a
mov edx, eax
setne dl
add edx, 0x70
jmp 0x14015a66c
mov edx, 0x71
sub r11, 2
jmp 0x14015a66c
mov r11, qword [rbp + 0x70]
mov edx, 0x6b
sub r11, 2
jmp 0x14015a66c
mov edx, 0xab
mov r11, qword [rbp + 0x70]
jmp 0x14015a66c
mov r11, qword [rbp + 0x70]
mov edx, 0x96
jmp 0x14015a66c
mov edx, 0x6c
sub r11, 2
jmp 0x14015a66c
mov edx, 0x6a
jmp 0x14015a66c
lea eax, [rcx + 0x7fd90000]
mov edx, SetErrorInfo
test eax, 0xfffeffff
mov eax, 0x80
cmovne edx, eax
jmp 0x14015a668
mov edx, 0xbd
jmp 0x14015a668
mov edx, 0xc3
jmp 0x14015a668
mov edx, 0xa6
jmp 0x14015a66c
mov edx, 0x8d
jmp 0x14015a66c
mov edx, 0x9e
jmp 0x14015a66c
mov r11, qword [rbp + 0x70]
mov edx, dword [rsp + 0x68]
jmp 0x14015a66c
mov edx, 0xac
jmp 0x14015a66c
mov edx, UnRegisterTypeLib
mov r11, r9
jmp 0x14015a66c
mov edx, 0x8a
jmp 0x14015a66c
mov edx, 0x8b
jmp 0x14015a66c
mov edx, 0x73
jmp 0x14015a66c
mov edx, 0xb3
jmp 0x14015a66c
mov edx, 0x7c
jmp 0x14015a66c
mov r11, qword [rbp + 0x70]
mov edx, 0x8f
jmp 0x14015a66c
mov r11, qword [rbp + 0x70]
mov edx, 0xa5
jmp 0x14015a66c
mov r11, qword [rbp + 0x70]
mov edx, 0x79
jmp 0x14015a66c
mov r11, qword [rbp + 0x70]
mov edx, 0x95
jmp 0x14015a66c
mov r11, qword [rbp + 0x70]
mov edx, SetErrorInfo
jmp 0x14015a66c
mov edx, 0x73
sub r11, 2
jmp 0x14015a66c
mov edx, 0xc2
mov r11, r8
jmp 0x14015a66c
mov edx, 0x6f
mov r11, r8
jmp 0x14015a66c
mov edx, UnRegisterTypeLib
jmp 0x14015a66c
mov edx, 0x7a
sub r11, 2
jmp 0x14015a66c
mov edx, 0x77
jmp 0x14015a66c
test r14d, r14d
je 0x14015c2c8
mov edx, 0xa0
jmp 0x14015a66c
mov ebx, dword [rbp - 0x28]
mov r12d, dword [rbp - 0x18]
mov edx, dword [rbp - 0x30]
mov rcx, r9
test rdi, rdi
je 0x14015c2ea
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 0x14015c330
test rdi, rdi
je 0x14015c306
lea rax, [r9 - 0x10]
cmp rdi, rax
jne 0x14015c306
mov eax, 0xff
cmp dword [rdi + 0xc], eax
je 0x14015c323
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 0x14015c344
mov dword [rcx], 0x80190000
mov dword [rcx + 4], 0x80160000
jmp 0x14015c356
test dl, 4
je 0x14015c35a
mov dword [rcx], 0x80190000
mov dword [rcx + 4], 0x80180005
add rcx, 8
cmp rcx, rsi
jb 0x14015c369
mov edx, 0xa3
jmp 0x14015a66c
mov dword [rcx], 0x80000000
test r8w, r8w
jne 0x14015c380
xor eax, eax
jmp 0x14015a683
mov r11, qword [rbp - 0x78]
mov edx, 0x72
jmp 0x14015a66c