Function at 0x140163100
Capabilities:
Encode data using base64
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 rax, qword [r9]
xor r13d, r13d
mov r15, qword [r9 + 0xe0]
mov r12, r9
mov rdi, qword [r9 + 0xe8]
mov r10d, edx
mov r9d, edx
mov qword [rbp + 0x10], r13
mov r14d, dword [rax + 0x40]
movzx esi, r13w
shr r9d, 0x13
xor eax, eax
shr edx, 2
and r9d, 1
and edx, 1
mov qword [rbp], r13
mov qword [rbp - 0x30], r13
mov r11d, r13d
mov qword [rbp - 0x28], r13
mov rbx, rcx
mov dword [rbp - 0x6c], r13d
mov dword [rbp - 0x3c], r13d
mov word [rbp + 0x78], r13w
mov dword [rbp - 0x58], r13d
mov dword [rsp + 0x5c], r13d
mov dword [rbp - 0x80], r13d
mov dword [rsp + 0x50], r13d
mov dword [rsp + 0x58], r13d
mov dword [rbp - 0x7c], r13d
mov r13, qword [r12 + 0x40]
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x68], rdi
mov dword [rbp - 0x38], r14d
mov dword [rsp + 0x54], r9d
mov dword [rbp - 0x40], edx
mov qword [rbp - 0x50], r13
mov qword [rbp + 0x18], rax
test r14b, 8
je 0x1401631c7
mov dword [r15], 0x80090000
jmp 0x1401631d4
test r14b, 4
je 0x1401631e5
mov dword [r15], 0x80180005
mov dword [r15 + 4], 0x801a0000
add r15, 8
mov qword [rsp + 0x78], r15
bt r10d, 0x19
jae 0x14016335a
cmp rcx, r13
jae 0x14016616f
nop dword [rax]
cmp r15, rdi
jae 0x1401661ba
movzx edi, byte [rbx]
mov r10, rbx
inc rbx
test r9d, r9d
je 0x14016331a
cmp edi, 0xc0
jb 0x14016331a
movzx ecx, byte [rbx]
and ecx, 0x3f
test dil, 0x20
jne 0x140163247
and edi, 0x1f
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
inc rbx
jmp 0x14016331a
test dil, 0x10
jne 0x14016326e
and edi, 0xf
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 2
jmp 0x14016331a
test dil, 8
jne 0x14016329e
and edi, 7
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 3
jmp 0x14016331a
test dil, 4
jne 0x1401632da
and edi, 3
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 4
jmp 0x14016331a
and edi, 1
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 4]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 5
test edx, edx
je 0x140163340
mov r8d, edx
mov qword [rsp + 0x20], r12
lea rdx, [rbp - 0x28]
mov r9, r15
mov rcx, r10
call fcn.140163090
mov r9d, dword [rsp + 0x54]
mov r15, rax
mov edx, dword [rbp - 0x40]
mov dword [r15], edi
add r15, 4
mov rdi, qword [rsp + 0x68]
cmp rbx, r13
jb 0x140163200
jmp 0x14016616f
mov r8, qword [r12 + 0x50]
mov r14d, r10d
mov qword [rbp - 0x60], rax
mov rcx, r8
bts r14d, 7
movabs rax, 0xaaaaaaaaaaaaaaab
mul r8
shr rdx, 3
lea rax, [rdx + rdx*2]
shl rax, 2
sub rcx, rax
mov rax, qword [r12 + 0x28]
sub rax, rcx
add rax, r8
mov r8d, r11d
bt r10d, 0x18
mov qword [rbp + 8], rax
cmovae r14d, r10d
mov r10d, r11d
mov dword [rsp + 0x70], r14d
jmp 0x1401633c5
mov r12, qword [rbp + 0x88]
jmp 0x1401633c5
inc rbx
movzx esi, word [rbp + 0x78]
mov rdi, qword [rsp + 0x68]
cmp rbx, r13
jae 0x14016615f
cmp r15, rdi
jae 0x1401661ba
mov rdx, qword [r12]
movzx eax, si
cmp eax, dword [rdx + 0x3c]
ja 0x140166158
movzx edi, byte [rbx]
mov rsi, rbx
inc rbx
mov dword [rsp + 0x60], edi
mov qword [rbp + 0x70], rbx
mov ecx, edi
test r9d, r9d
je 0x14016350c
cmp edi, 0xc0
jb 0x14016350c
movzx ecx, byte [rbx]
and ecx, 0x3f
test dil, 0x20
jne 0x14016342f
and edi, 0x1f
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
inc rbx
jmp 0x140163502
test dil, 0x10
jne 0x140163456
and edi, 0xf
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 2
jmp 0x140163502
test dil, 8
jne 0x140163486
and edi, 7
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 3
jmp 0x140163502
test dil, 4
jne 0x1401634c2
and edi, 3
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 4
jmp 0x140163502
and edi, 1
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 4]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 5
mov dword [rsp + 0x60], edi
mov ecx, edi
mov qword [rbp + 0x70], rbx
test r11d, r11d
je 0x1401635a3
cmp ecx, 0x5c
jne 0x140163532
cmp rbx, r13
jae 0x140163532
cmp byte [rbx], 0x45
jne 0x140163532
xor edx, edx
mov r11d, edx
mov dword [rsp + 0x50], edx
jmp 0x1401633b9
test r10d, r10d
jg 0x1401639a2
test r8d, r8d
jne 0x140163588
mov ecx, dword [rbp - 0x58]
mov eax, ecx
dec ecx
mov dword [rbp - 0x58], ecx
test eax, eax
jg 0x140163580
mov r8d, dword [rbp - 0x40]
lea rdx, [rbp - 0x28]
mov r9, r15
mov qword [rsp + 0x20], r12
mov rcx, rsi
call fcn.140163090
mov r11, qword [rbp - 0x28]
mov r15, rax
mov r9d, dword [rsp + 0x54]
mov r8d, dword [rsp + 0x58]
mov qword [rbp - 0x30], r11
mov r11d, dword [rsp + 0x50]
mov eax, 1
mov dword [rbp - 0x7c], eax
mov r10d, dword [rsp + 0x5c]
xor ecx, ecx
mov dword [r15], edi
add r15, 4
mov qword [rsp + 0x78], r15
mov dword [rbp - 0x6c], ecx
jmp 0x1401633bc
test r8d, r8d
je 0x140163726
mov eax, r14d
and eax, 0x400080
cmp eax, 0x400080
jne 0x140163606
cmp ecx, 0xff
jbe 0x1401635d6
mov eax, edi
or eax, 1
cmp eax, 0x200f
je 0x1401635d6
cmp eax, 0x2029
jne 0x140163606
test edi, 0xffffff00
jne 0x140163726
cmp edi, 0x23
je 0x140163726
mov rax, qword [r12 + 0x20]
test byte [rdi + rax], 1
jne 0x140163726
cmp edi, 0x85
je 0x140163726
cmp edi, 0x29
je 0x1401636cd
cmp edi, 0x5c
je 0x140163625
mov dword [r15], edi
add r15, 4
mov qword [rsp + 0x78], r15
jmp 0x1401633bc
bt r14d, 0x16
jae 0x1401636b7
xor eax, eax
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], eax
lea r9, [rbp - 0x80]
mov eax, dword [rdx + 0x40]
lea r8, [rsp + 0x60]
mov dword [rsp + 0x28], eax
lea rcx, [rbp + 0x70]
mov rdx, r13
mov dword [rsp + 0x20], r14d
call fcn.14015cc80
mov ecx, dword [rbp - 0x80]
test ecx, ecx
jne 0x14016600c
test eax, eax
je 0x1401636a0
sub eax, 0x19
je case.default.0x140163dcc
mov rbx, qword [rbp + 0x70]
cmp eax, 1
jne 0x140165f9c
mov r9d, dword [rsp + 0x54]
mov r11d, eax
movzx esi, word [rbp + 0x78]
mov r8d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x5c]
mov dword [rsp + 0x50], eax
jmp 0x1401633c0
mov rbx, qword [rbp + 0x70]
mov edi, dword [rsp + 0x60]
mov r9d, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x5c]
mov dword [r15], edi
add r15, 4
mov qword [rsp + 0x78], r15
jmp 0x1401633bc
xor edx, edx
mov rax, rbx
sub rax, qword [rbp + 0x18]
dec rax
mov dword [rsp + 0x58], edx
cmp rax, 0xff
jg 0x140165fa6
mov rcx, qword [rbp + 0x10]
mov rax, r15
movzx esi, word [rbp + 0x78]
sub rax, rcx
mov rdi, qword [rsp + 0x68]
mov r8d, edx
sar rax, 2
dec eax
mov dword [rcx], eax
mov ecx, dword [rbp - 0x3c]
test ecx, ecx
je 0x1401633c5
mov dword [r15], ecx
add r15, 4
mov qword [rsp + 0x78], r15
mov dword [rbp - 0x3c], edx
jmp 0x1401633c5
cmp edi, 0x5c
jne 0x140163750
cmp rbx, r13
jae 0x140163750
movzx eax, byte [rbx]
cmp al, 0x51
je 0x14016373b
cmp al, 0x45
jne 0x140163750
xor ecx, ecx
mov r11d, ecx
cmp al, 0x51
sete r11b
mov dword [rsp + 0x50], r11d
jmp 0x1401633b9
test r14b, r14b
jns 0x1401638cb
cmp edi, 0x100
jae 0x140163770
mov rax, qword [r12 + 0x20]
test byte [rdi + rax], 1
jne 0x1401633bc
cmp edi, 0x85
je 0x1401633bc
mov eax, edi
or eax, 1
cmp eax, 0x200f
je 0x1401633bc
cmp eax, 0x2029
je 0x1401633bc
cmp edi, 0x23
jne 0x1401638cb
movzx esi, word [rbp + 0x78]
mov rdi, qword [rsp + 0x68]
cmp rbx, r13
jae 0x14016615f
nop dword [rax]
nop word [rax + rax]
mov edx, dword [r12 + 0x100]
lea rdi, [r12 + 0x104]
mov rax, qword [r12 + 0x40]
test edx, edx
je 0x140163824
cmp rbx, rax
jae 0x1401637fc
mov dword [rsp + 0x20], r9d
mov r8, rax
mov r9, rdi
mov rcx, rbx
call fcn.1401802a0
test eax, eax
je 0x1401637fc
mov eax, 1
jmp 0x1401637fe
xor eax, eax
mov r9d, dword [rsp + 0x54]
test eax, eax
je 0x14016384e
mov eax, dword [rdi]
add rbx, rax
mov r11d, dword [rsp + 0x50]
movzx esi, word [rbp + 0x78]
mov r8d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x5c]
jmp 0x1401633c0
mov ecx, dword [rdi]
sub rax, rcx
cmp rbx, rax
ja 0x14016384e
movzx eax, byte [r12 + 0x110]
cmp byte [rbx], al
jne 0x14016384e
cmp ecx, 1
je 0x140163807
movzx eax, byte [r12 + 0x111]
cmp byte [rbx + 1], al
je 0x140163807
inc rbx
test r9d, r9d
je 0x1401638a5
mov r11d, dword [rsp + 0x50]
movzx esi, word [rbp + 0x78]
mov rdi, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x5c]
cmp rbx, r13
jae 0x14016615f
movzx eax, byte [rbx]
and al, 0xc0
cmp al, 0x80
jne 0x1401638a5
mov r11d, dword [rsp + 0x50]
inc rbx
movzx esi, word [rbp + 0x78]
mov rdi, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x5c]
cmp rbx, r13
jb 0x140163877
jmp 0x1401633c5
mov r11d, dword [rsp + 0x50]
movzx esi, word [rbp + 0x78]
mov rdi, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x5c]
cmp rbx, r13
jb 0x1401637c0
jmp 0x1401633c5
cmp edi, 0x28
jne 0x140163906
mov rax, r13
sub rax, rbx
cmp rax, 2
jl 0x14016393b
cmp byte [rbx], 0x3f
jne 0x14016393b
cmp byte [rbx + 1], 0x23
jne 0x14016393b
nop word [rax + rax]
inc rbx
cmp rbx, r13
jae 0x140165fb3
cmp byte [rbx], 0x29
jne 0x1401638f0
jmp 0x1401633b9
lea eax, [rdi - 0x2a]
cmp eax, 1
jbe 0x14016397d
cmp edi, 0x3f
je 0x14016397d
cmp edi, 0x7b
jne 0x14016393b
lea rax, [rbp - 0x80]
mov qword [rbp - 0x20], rbx
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rcx, [rbp - 0x20]
mov rdx, r13
call fcn.140167a60
test eax, eax
jne 0x140163978
mov ecx, dword [rbp - 0x58]
mov eax, ecx
dec ecx
mov dword [rbp - 0x58], ecx
test eax, eax
jg 0x140163978
mov r8d, dword [rbp - 0x40]
lea rdx, [rbp - 0x28]
mov r9, r15
mov qword [rsp + 0x20], r12
mov rcx, rsi
call fcn.140163090
mov r9, qword [rbp - 0x28]
mov r15, rax
mov r10d, dword [rsp + 0x5c]
mov qword [rbp - 0x30], r9
mov qword [rsp + 0x78], rax
jmp 0x140163981
mov r10d, dword [rsp + 0x5c]
mov r9, qword [rbp - 0x30]
test r10d, r10d
jle 0x1401639fe
cmp edi, 0x28
jne 0x1401639a2
mov rax, r13
sub rax, rbx
cmp rax, 3
jl 0x1401639a2
movzx eax, byte [rbx]
cmp al, 0x3f
je 0x1401639af
cmp al, 0x2a
je 0x1401639b4
dec rbx
mov ecx, 0x80
jmp 0x1401661d5
cmp byte [rbx], 0x2a
jne 0x1401639c9
movzx ecx, byte [rbx + 1]
mov rax, qword [r12 + 0x20]
movzx edx, byte [rcx + rax]
shr edx, 2
and edx, 1
jmp 0x1401639ec
movzx ecx, byte [rbx + 1]
sub ecx, 0x21
je 0x1401639fe
sub ecx, 0x1b
je 0x1401639f2
sub ecx, 1
je 0x1401639fe
cmp ecx, 6
jne 0x1401639a2
xor eax, eax
cmp r10d, 2
mov edx, eax
sete dl
test edx, edx
je 0x1401639a2
jmp 0x1401639fe
movzx eax, byte [rbx + 2]
cmp al, 0x3d
je 0x1401639fe
cmp al, 0x21
jne 0x1401639a2
mov ecx, dword [rbp - 0x6c]
xor r11d, r11d
mov esi, dword [rbp - 0x7c]
mov r8d, r10d
mov dword [rbp - 0x70], r10d
mov r10d, r11d
mov dword [rsp + 0x5c], r11d
mov eax, ecx
mov dword [rbp - 0x7c], r11d
mov edx, ecx
mov dword [rbp - 0x6c], r11d
test ecx, ecx
je 0x140163a74
cmp edi, 0x3f
je 0x140163a30
cmp edi, 0x2b
jne 0x140163a74
mov r9d, dword [rsp + 0x54]
cmp edi, 0x3f
mov r11d, dword [rsp + 0x50]
mov r8d, 0x20000
mov ecx, 0x10000
cmove ecx, r8d
mov r8d, dword [rsp + 0x58]
add ecx, eax
mov rax, 0xfffffffffffffffc
cmp edx, 0x803d0000
mov rdx, 0xfffffffffffffff4
cmove rax, rdx
mov dword [rax + r15], ecx
jmp 0x1401633bc
lea eax, [rdi - 0x24]
cmp eax, 0x58
ja case.0x140163a99.37
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x166234]
mov ecx, dword [rdx + rax*4 + 0x166200]
add rcx, rdx
jmp rcx
mov rax, qword [r12]
lea r9, [rbp - 0x80]
mov qword [rsp + 0x38], r12
lea r8, [rsp + 0x60]
mov dword [rsp + 0x30], r11d
lea rcx, [rbp + 0x70]
mov r14, rbx
mov qword [rbp - 0x20], rbx
mov eax, dword [rax + 0x40]
mov rdx, r13
mov ebx, dword [rsp + 0x70]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ebx
call fcn.14015cc80
mov ecx, dword [rbp - 0x80]
mov edi, eax
test ecx, ecx
jne 0x140163b1e
test eax, eax
je 0x140163e6b
js 0x140163de9
add eax, 0xfffffffa
cmp eax, 0x16
ja case.0x140163b0e.13
lea rdx, [0x140000000]
cdqe
movzx eax, byte [rdx + rax + 0x1662a8]
mov ecx, dword [rdx + rax*4 + 0x166290]
add rcx, rdx
jmp rcx
bt ebx, 0x14
jae case.0x140163b0e.12
mov ecx, UnRegisterTypeLib
mov dword [rbp - 0x80], ecx
mov rbx, qword [rbp + 0x70]
test byte [rbp - 0x38], 2
je 0x1401661d5
mov r9d, dword [rsp + 0x54]
mov rbx, r14
cmp r14, r13
jb 0x140163e7d
mov edx, 0x5c
jmp 0x140163f92
mov eax, 1
mov dword [rbp - 0x7c], eax
mov r14d, dword [rsp + 0x70]
jmp 0x140163d72
xor ebx, ebx
mov qword [rsp + 0x28], r12
lea rax, [rbp - 0x80]
mov word [rbp - 0x70], bx
lea r9, [rsp + 0x60]
mov word [rsp + 0x60], bx
lea r8, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 4]
lea rcx, [rbp + 0x70]
call fcn.140162950
test eax, eax
je 0x140163d3e
cmp dword [rbp - 4], ebx
je 0x140163ba0
cmp edi, 0xf
mov eax, ebx
sete al
lea edi, [rax + 0xf]
movzx ecx, word [rbp - 0x70]
lea eax, [rdi - 0x7fe80000]
mov r14d, dword [rsp + 0x70]
mov rbx, qword [rbp + 0x70]
mov r9d, dword [rsp + 0x54]
mov dword [r15], eax
movzx eax, word [rsp + 0x60]
shl ecx, 0x10
or ecx, eax
mov eax, 1
mov dword [r15 + 4], ecx
add r15, 8
mov qword [rsp + 0x78], r15
mov dword [rbp - 0x7c], eax
jmp 0x14016380c
mov rbx, qword [rbp + 0x70]
cmp rbx, r13
jae 0x140163d46
movzx eax, byte [rbx]
cmp al, 0x7b
je 0x140163c03
cmp al, 0x3c
je 0x140163c87
cmp al, 0x27
jne 0x140163d46
cmp al, 0x27
mov esi, 0x7d
mov eax, 0x27
cmove esi, eax
cmp edi, 0x1b
jne 0x140163ca8
cmp esi, 0x7d
je 0x140163ca8
mov r8d, dword [r12 + 0xd4]
lea rax, [rbx + 1]
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x78]
lea rax, [rbp - 0x80]
mov r9d, 0xffff
mov qword [rsp + 0x30], rax
mov rdx, r13
lea rax, [rbp - 0x78]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xa1
call fcn.140167930
test eax, eax
je 0x140163c9d
mov rcx, qword [rsp + 0x78]
cmp rcx, r13
jae 0x140163c8e
movzx eax, byte [rcx]
cmp eax, esi
jne 0x140163c8e
mov eax, dword [rbp - 0x78]
mov rbx, rcx
mov r14d, dword [rsp + 0x70]
jmp 0x140165bee
mov esi, 0x3e
jmp 0x140163c12
mov eax, 0x9d
mov ecx, eax
mov dword [rbp - 0x80], eax
jmp 0x140163b22
mov ecx, dword [rbp - 0x80]
test ecx, ecx
jne 0x140163b22
mov r8d, dword [rsp + 0x54]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x40], r12
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x38], rax
mov r9d, esi
lea rax, [rbp - 0x74]
mov rdx, r13
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
call fcn.140167580
test eax, eax
je 0x140163d3e
cmp edi, 0x1c
je 0x140163cf8
mov eax, 0x80210000
cmp esi, 0x7d
jne 0x140163cfd
mov eax, 0x80040000
mov rcx, qword [rbp - 0x68]
mov r14d, dword [rsp + 0x70]
mov rbx, qword [rbp + 0x70]
mov r9d, dword [rsp + 0x54]
mov dword [r15], eax
mov eax, dword [rbp - 0x74]
mov dword [r15 + 4], eax
mov rax, rcx
shr rax, 0x20
mov dword [r15 + 8], eax
mov eax, 1
mov dword [r15 + 0xc], ecx
add r15, 0x10
mov dword [rbp - 0x7c], eax
mov qword [rsp + 0x78], r15
jmp 0x14016380c
mov ecx, dword [rbp - 0x80]
jmp 0x140163b1e
cmp edi, 0x1b
mov ecx, 0xa9
mov eax, 0x9d
cmove ecx, eax
mov dword [rbp - 0x80], ecx
jmp 0x140163b22
mov r14d, dword [rsp + 0x70]
mov eax, 1
bt r14d, 0x11
mov dword [rbp - 0x7c], eax
jb 0x140163d92
lea eax, [rdi - 0x7fe80000]
mov dword [r15], eax
add r15, 4
mov qword [rsp + 0x78], r15
mov rbx, qword [rbp + 0x70]
mov r9d, dword [rsp + 0x54]
jmp 0x14016380c
lea eax, [rdi - 7]
test eax, 0xfffffff9
jne 0x140163da6
mov eax, 0x80180010
cmp edi, 0xd
jne 0x140163dab
mov eax, 0x8018000f
mov dword [r15], eax
add edi, 0xfffffffa
add r15, 4
mov qword [rsp + 0x78], r15
cmp edi, 5
ja case.default.0x140163dcc
movsxd rax, edi
mov ecx, dword [rdx + rax*4 + 0x1662c0]
add rcx, rdx
jmp rcx
mov dword [r15], 0x3000d
jmp 0x140163d7b
mov dword [r15], 0x70000
jmp 0x140163d7b
mov dword [r15], 0x90000
jmp 0x140163d7b
mov rbx, qword [rbp + 0x70]
neg edi
mov eax, edi
mov rcx, rbx
sub rcx, qword [r12 + 0x38]
or eax, 0x80030000
dec rcx
mov dword [r15], eax
add r15, 4
mov qword [rbp - 0x68], rcx
mov qword [rsp + 0x78], r15
cmp edi, 0xa
jge 0x140163e3d
movsxd rax, edi
cmp qword [r12 + rax*8 + 0x58], 0xffffffffffffffff
jne 0x140163e54
mov r14d, dword [rsp + 0x70]
mov r9d, dword [rsp + 0x54]
mov qword [r12 + rax*8 + 0x58], rcx
mov eax, 1
mov dword [rbp - 0x7c], eax
jmp 0x14016380c
mov rax, rcx
shr rax, 0x20
mov dword [r15], eax
mov dword [r15 + 4], ecx
add r15, 8
mov qword [rsp + 0x78], r15
mov r14d, dword [rsp + 0x70]
mov eax, 1
mov r9d, dword [rsp + 0x54]
mov dword [rbp - 0x7c], eax
jmp 0x14016380c
mov rbx, qword [rbp + 0x70]
mov edx, dword [rsp + 0x60]
mov r9d, dword [rsp + 0x54]
jmp 0x140163f92
movzx edx, byte [r14]
lea rbx, [r14 + 1]
test r9d, r9d
je 0x140163f92
cmp edx, 0xc0
jb 0x140163f92
test dl, 0x20
jne 0x140163eb5
movzx eax, byte [rbx]
and edx, 0x1f
shl edx, 6
and eax, 0x3f
or edx, eax
inc rbx
jmp 0x140163f92
test dl, 0x10
jne 0x140163edd
movzx eax, byte [rbx]
and edx, 0xf
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
add rbx, 2
jmp 0x140163f92
test dl, 8
jne 0x140163f11
movzx eax, byte [rbx]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
add rbx, 3
jmp 0x140163f92
movzx ecx, byte [rbx]
and ecx, 0x3f
test dl, 4
jne 0x140163f52
and edx, 3
mov eax, edx
mov edx, ecx
shl eax, 6
or edx, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
add rbx, 4
jmp 0x140163f92
and edx, 1
mov eax, edx
mov edx, ecx
shl eax, 6
or edx, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [rbx + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
add rbx, 5
mov r14d, dword [rsp + 0x70]
mov eax, 1
mov dword [r15], edx
add r15, 4
mov qword [rsp + 0x78], r15
mov dword [rbp - 0x7c], eax
jmp 0x14016380c
mov r9d, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x58]
mov dword [r15], 0x80090000
add r15, 4
mov qword [rsp + 0x78], r15
jmp 0x1401633bc
mov r9d, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x58]
mov dword [r15], 0x80160000
add r15, 4
mov qword [rsp + 0x78], r15
jmp 0x1401633bc
mov r9d, dword [rsp + 0x54]
mov eax, 1
mov r11d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x58]
mov dword [r15], 0x80170000
add r15, 4
mov qword [rsp + 0x78], r15
mov dword [rbp - 0x7c], eax
jmp 0x1401633bc
mov r10d, 0x80340000
jmp 0x140164094
mov r10d, 0x80370000
jmp 0x140164094
mov r10d, 0x803a0000
jmp 0x140164094
lea rax, [rbp - 0x80]
mov rdx, r13
lea r9, [rbp - 0xc]
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x10]
lea rcx, [rbp + 0x70]
call fcn.140167a60
test eax, eax
jne 0x14016408a
mov ecx, dword [rbp - 0x80]
test ecx, ecx
jne 0x14016600c
mov rbx, qword [rbp + 0x70]
mov eax, 1
mov r9d, dword [rsp + 0x54]
mov dword [r15], edi
add r15, 4
mov qword [rsp + 0x78], r15
mov dword [rbp - 0x7c], eax
jmp 0x14016380c
mov rbx, qword [rbp + 0x70]
mov r10d, 0x803d0000
mov dword [rbp - 0x6c], r10d
test esi, esi
je 0x140165fbd
cmp dword [r15 - 4], 0x802a0000
lea rcx, [r15 - 4]
jne 0x1401640e0
mov rdx, qword [rbp]
cmp rcx, rdx
jb 0x1401640ce
nop word [rax + rax]
mov eax, dword [rcx]
mov dword [rcx + 4], eax
sub rcx, 4
cmp rcx, rdx
jae 0x1401640c0
mov dword [rdx], 0x801a0000
mov dword [r15 + 4], 0x80190000
add r15, 8
mov r9d, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x50]
movzx esi, word [rbp + 0x78]
mov r8d, dword [rsp + 0x58]
mov dword [r15], r10d
add r15, 4
mov r10d, dword [rsp + 0x5c]
cmp edi, 0x7b
mov rdi, qword [rsp + 0x68]
mov qword [rsp + 0x78], r15
jne 0x1401633c5
mov eax, dword [rbp - 0x10]
mov dword [r15], eax
mov eax, dword [rbp - 0xc]
mov dword [r15 + 4], eax
add r15, 8
mov qword [rsp + 0x78], r15
jmp 0x1401633c5
mov rax, r13
mov esi, 1
sub rax, rbx
mov dword [rbp - 0x7c], esi
cmp rax, 6
jl 0x1401641ee
lea r8d, [rsi + 5]
mov rcx, rbx
lea rdx, [0x140348ee0]
call fcn.140180730
test eax, eax
je 0x140164177
lea r8d, [rsi + 5]
mov rcx, rbx
lea rdx, str._:_:__
call fcn.140180730
test eax, eax
jne 0x1401641ee
mov dword [r15], 0x80180005
lea rax, [r15 + 8]
cmp byte [rbx + 2], 0x3c
jne 0x140164192
mov dword [r15 + 4], 0x80230000
jmp 0x1401641ac
mov rcx, qword [rbp + 0x80]
mov dword [r15 + 4], 0x80250000
mov dword [rcx], esi
xor ecx, ecx
mov qword [rax], rcx
add rax, 8
bt r14d, 0x11
lea r15, [rax + 4]
jb 0x1401641bf
mov dword [rax], 0x8018000b
jmp 0x1401641d0
mov dword [rax], 0x80180010
mov dword [r15], 0x90000
add r15, 4
mov r9d, dword [rsp + 0x54]
mov dword [r15], 0x80190000
add r15, 4
mov qword [rsp + 0x78], r15
add rbx, 6
jmp 0x14016380c
cmp rbx, r13
jae 0x140164221
movzx eax, byte [rbx]
cmp al, 0x3d
ja 0x140164221
movabs rcx, 0x2400400000000000
bt rcx, rax
jae 0x140164221
lea r8, [rbp - 0x20]
mov rdx, r13
mov rcx, rbx
call fcn.14015e090
test eax, eax
jne 0x140165fca
xor r10d, r10d
mov r14d, r10d
cmp rbx, r13
jae 0x1401643ff
mov r12d, dword [rsp + 0x70]
lea r15d, [r10 + 1]
mov edx, dword [rsp + 0x54]
mov rsi, r13
sub rsi, rbx
movzx edi, byte [rbx]
dec rsi
inc rbx
mov dword [rsp + 0x60], edi
mov qword [rbp + 0x70], rbx
mov eax, edi
mov ecx, edi
test edx, edx
je 0x14016437d
cmp edi, 0xc0
jb 0x14016437d
test al, 0x20
jne 0x140164289
movzx edi, byte [rbx]
and eax, 0x1f
and edi, 0x3f
shl eax, 6
or edi, eax
inc rbx
dec rsi
jmp 0x140164373
test al, 0x10
jne 0x1401642b4
movzx edi, byte [rbx]
and eax, 0xf
and edi, 0x3f
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 2
sub rsi, 2
jmp 0x140164373
test al, 8
jne 0x1401642eb
movzx edi, byte [rbx]
and eax, 7
and edi, 0x3f
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 3
sub rsi, 3
jmp 0x140164373
movzx ecx, byte [rbx]
and ecx, 0x3f
test al, 4
jne 0x14016432f
and edi, 3
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 4
sub rsi, 4
jmp 0x140164373
and edi, r15d
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 4]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 5
sub rsi, 5
mov dword [rsp + 0x60], edi
mov ecx, edi
mov qword [rbp + 0x70], rbx
cmp ecx, 0x5c
jne 0x1401643c9
cmp rbx, r13
jae 0x140164398
cmp byte [rbx], 0x45
jne 0x140164398
inc rbx
mov qword [rbp + 0x70], rbx
dec rsi
jmp 0x1401643e7
cmp rsi, 3
jl 0x1401643f0
mov r8d, 3
lea rdx, [0x140348ef0]
mov rcx, rbx
call fcn.140180730
test eax, eax
jne 0x1401643f0
mov edx, dword [rsp + 0x54]
add rbx, 3
mov qword [rbp + 0x70], rbx
sub rsi, 3
jmp 0x1401643e7
bt r12d, 0x18
jae 0x1401643da
cmp ecx, 9
je 0x1401643e7
cmp ecx, 0x20
je 0x1401643e7
test r14d, r14d
jne 0x1401643f0
cmp edi, 0x5e
jne 0x1401643f0
mov r14d, r15d
cmp rbx, r13
jb 0x140164243
mov r15, qword [rsp + 0x78]
xor r10d, r10d
mov r12, qword [rbp + 0x88]
cmp edi, 0x5d
jne 0x14016443a
test byte [r12 + 0xcc], 1
je 0x14016443a
mov r9d, dword [rsp + 0x54]
test r14d, r14d
mov r14d, dword [rsp + 0x70]
mov eax, 0x800b0000
mov ecx, 0x800c0000
cmovne eax, ecx
mov dword [r15], eax
add r15, 4
mov qword [rsp + 0x78], r15
jmp 0x14016380c
mov r11d, dword [rsp + 0x50]
test r14d, r14d
mov eax, 0x800a0000
mov ecx, 0x800e0000
cmovne eax, ecx
mov edx, 1
mov dword [r15], eax
mov r14d, r10d
add r15, 4
mov dword [rbp - 0x7c], edx
mov esi, edx
test r11d, r11d
je 0x140164493
cmp edi, 0x5c
jne 0x1401649e6
cmp rbx, r13
jae 0x1401649e6
cmp byte [rbx], 0x45
jne 0x1401649e6
mov r11d, r10d
mov dword [rsp + 0x50], r10d
inc rbx
jmp 0x1401645b8
mov ecx, dword [rsp + 0x70]
bt ecx, 0x18
jae 0x1401644af
cmp edi, 0x20
je 0x1401645b8
cmp edi, 9
je 0x1401645b8
cmp edi, 0x5b
jne 0x140164644
mov rax, r13
sub rax, rbx
cmp rax, 3
jl 0x1401649e6
movzx eax, byte [rbx]
cmp al, 0x3d
ja 0x1401649e6
movabs rcx, 0x2400400000000000
bt rcx, rax
jae 0x1401649e6
lea r8, [rbp - 0x20]
mov rdx, r13
mov rcx, rbx
call fcn.14015e090
test eax, eax
je 0x1401649d9
cmp r14d, 1
je 0x140166019
cmp byte [rbx], 0x3a
jne 0x140165fe9
movzx esi, byte [rbx + 1]
inc rbx
cmp sil, 0x5e
jne 0x140164521
inc rbx
mov rdi, qword [rbp - 0x20]
mov rcx, rbx
mov edx, edi
sub edx, ebx
call fcn.14015e000
mov r9d, eax
test eax, eax
js 0x140165fdf
lea rbx, [rdi + 2]
lea rcx, [r13 - 1]
cmp rbx, rcx
jae 0x140164558
cmp byte [rbx], 0x2d
jne 0x140164558
cmp byte [rbx + 1], 0x5d
jne 0x140166019
xor r10d, r10d
mov eax, 0x20000
mov r14d, r10d
test dword [rsp + 0x70], eax
je 0x140164627
lea eax, [r9 + r9]
movsxd rcx, eax
lea rax, [0x140000000]
mov edx, dword [rax + rcx*4 + 0x499c30]
mov r8d, dword [rax + rcx*4 + 0x499c34]
test edx, edx
js 0x14016460a
cmp sil, 0x5e
mov eax, r10d
setne al
shl edx, 0x10
sub eax, 0x7fe7fff1
or edx, r8d
mov dword [r15], eax
mov dword [r15 + 4], edx
add r15, 8
mov r11d, dword [rsp + 0x50]
mov edx, 1
cmp rbx, r13
jae 0x140166030
movzx edi, byte [rbx]
inc rbx
mov r9d, dword [rsp + 0x54]
mov eax, edi
mov dword [rsp + 0x60], edi
mov ecx, edi
mov qword [rbp + 0x70], rbx
test r9d, r9d
je 0x140164b1e
cmp eax, 0xc0
jb 0x140164b1e
test al, 0x20
jne 0x140164a3a
movzx edi, byte [rbx]
and eax, 0x1f
and edi, 0x3f
shl eax, 6
or edi, eax
inc rbx
jmp 0x140164b14
test r8d, r8d
je 0x140164627
cmp sil, 0x5e
mov eax, r10d
setne al
sub eax, 0x7fe7ffee
mov dword [r15], eax
add r15, 4
jmp 0x1401645ae
cmp sil, 0x5e
mov eax, 0x801c0000
mov ecx, 0x801d0000
cmove eax, ecx
mov dword [r15], eax
mov dword [r15 + 4], r9d
jmp 0x1401645aa
cmp edi, 0x2d
jne 0x140164673
cmp r14d, 2
jb 0x1401649e6
cmp r14d, 3
mov eax, 0x801e0000
mov ecx, 0x801f0000
mov r14d, edx
cmove eax, ecx
mov dword [r15], eax
add r15, 4
jmp 0x1401645b8
cmp edi, 0x5c
jne 0x1401649e6
mov rax, qword [r12]
lea r9, [rbp - 0x80]
mov qword [rsp + 0x38], r12
lea r8, [rsp + 0x60]
mov dword [rsp + 0x30], edx
mov rdx, r13
mov qword [rbp - 0x20], rbx
mov eax, dword [rax + 0x40]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rcx, [rbp + 0x70]
call fcn.14015cc80
mov ecx, dword [rbp - 0x80]
movsxd rdi, eax
test ecx, ecx
je 0x140164819
test byte [rbp - 0x38], 2
je 0x14016600c
cmp rbx, r13
jb 0x1401646da
xor r10d, r10d
mov edi, 0x5c
mov esi, r10d
jmp 0x1401649dc
movzx edi, byte [rbx]
inc rbx
cmp dword [rsp + 0x54], 0
je 0x140164844
cmp edi, 0xc0
jb 0x140164844
test dil, 0x20
jne 0x140164719
movzx eax, byte [rbx]
and edi, 0x1f
shl edi, 6
and eax, 0x3f
or edi, eax
inc rbx
xor r10d, r10d
mov esi, r10d
jmp 0x1401649dc
test dil, 0x10
jne 0x140164748
movzx eax, byte [rbx]
and edi, 0xf
shl edi, 6
and eax, 0x3f
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 2
xor r10d, r10d
mov esi, r10d
jmp 0x1401649dc
test dil, 8
jne 0x140164783
movzx eax, byte [rbx]
and edi, 7
shl edi, 6
and eax, 0x3f
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 3
xor r10d, r10d
mov esi, r10d
jmp 0x1401649dc
movzx ecx, byte [rbx]
and ecx, 0x3f
test dil, 4
jne 0x1401647ce
and edi, 3
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 4
xor r10d, r10d
mov esi, r10d
jmp 0x1401649dc
and edi, 1
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 4]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 5
xor r10d, r10d
mov esi, r10d
jmp 0x1401649dc
lea rdx, [0x140000000]
mov rax, rdi
cmp edi, 0x1a
ja case.0x14016483a.5
movzx eax, byte [rdx + rax + 0x1662f0]
mov ecx, dword [rdx + rax*4 + 0x1662d8]
add rcx, rdx
jmp rcx
mov rbx, qword [rbp + 0x70]
mov edi, dword [rsp + 0x60]
xor r10d, r10d
mov esi, r10d
jmp 0x1401649dc
mov rbx, qword [rbp + 0x70]
xor r10d, r10d
mov esi, r10d
mov edi, 8
jmp 0x1401649dc
mov rbx, qword [rbp + 0x70]
mov edx, 1
mov r11d, edx
mov dword [rsp + 0x50], edx
xor r10d, r10d
jmp 0x1401645b8
mov rbx, qword [rbp + 0x70]
xor r10d, r10d
jmp 0x1401645ae
cmp r14d, 1
je 0x140166015
xor r10d, r10d
lea eax, [rdi - 6]
mov r14d, r10d
cmp eax, 0xf
ja case.0x1401648af.13
cdqe
mov ecx, dword [rdx + rax*4 + 0x16630c]
add rcx, rdx
jmp rcx
lea eax, [rdi - 0x7fe80000]
mov dword [r15], eax
add r15, 4
jmp case.default.0x140164919
mov eax, 0x20000
test dword [rsp + 0x70], eax
jne 0x1401648e0
lea eax, [rdi - 0x7fe80000]
mov dword [r15], eax
add r15, 4
jmp case.default.0x140164919
lea eax, [rdi - 7]
test eax, 0xfffffff9
jne 0x1401648f4
mov eax, 0x80180010
cmp edi, 0xd
jne 0x1401648f9
mov eax, 0x8018000f
mov dword [r15], eax
add edi, 0xfffffffa
add r15, 4
cmp edi, 5
ja case.default.0x140164919
movsxd rax, edi
mov ecx, dword [rdx + rax*4 + 0x16634c]
add rcx, rdx
jmp rcx
mov dword [r15], 0x3000d
add r15, 4
jmp case.default.0x140164919
mov dword [r15], 0x70000
add r15, 4
jmp case.default.0x140164919
mov dword [r15], 0x90000
add r15, 4
jmp case.default.0x140164919
lea rax, [rbp - 0x80]
mov qword [rsp + 0x28], r12
lea r9, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x60]
mov word [rsp + 0x60], r10w
lea rdx, [rbp - 8]
mov word [rbp - 0x70], r10w
lea rcx, [rbp + 0x70]
call fcn.140162950
test eax, eax
je 0x14016607f
xor r10d, r10d
cmp dword [rbp - 8], r14d
je 0x140164991
cmp edi, 0xf
mov eax, r10d
sete al
lea edi, [rax + 0xf]
movzx ecx, word [rsp + 0x60]
lea eax, [rdi - 0x7fe80000]
mov dword [r15], eax
movzx eax, word [rbp - 0x70]
shl ecx, 0x10
or ecx, eax
mov dword [r15 + 4], ecx
add r15, 8
mov rbx, qword [rbp + 0x70]
lea rax, [r13 - 1]
cmp rbx, rax
jae 0x1401645ae
cmp byte [rbx], 0x2d
jne 0x1401645ae
cmp byte [rbx + 1], 0x5d
jne 0x140166019
jmp 0x1401645ae
xor r10d, r10d
mov r11d, dword [rsp + 0x50]
mov edx, 1
cmp r14d, 1
jne 0x140164a2a
cmp edi, dword [r15 - 8]
jne 0x1401649fe
sub r15, 4
mov r14d, r10d
jmp 0x1401645b8
jb 0x140166023
test esi, esi
jne 0x140164a1b
mov eax, 0x801f0000
cmp dword [r15 - 4], eax
jne 0x140164a1b
mov dword [r15 - 4], 0x801e0000
mov dword [r15], edi
mov r14d, r10d
add r15, 4
jmp 0x1401645b8
mov dword [r15], edi
lea r14d, [rsi + 2]
add r15, 4
jmp 0x1401645b8
test al, 0x10
jne 0x140164a61
movzx edi, byte [rbx]
and eax, 0xf
and edi, 0x3f
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 2
jmp 0x140164b14
test al, 8
jne 0x140164a94
movzx edi, byte [rbx]
and eax, 7
and edi, 0x3f
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 3
jmp 0x140164b14
movzx ecx, byte [rbx]
and ecx, 0x3f
test al, 4
jne 0x140164ad4
and edi, 3
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 4
jmp 0x140164b14
and edi, 1
mov eax, edi
mov edi, ecx
shl eax, 6
or edi, eax
movzx eax, byte [rbx + 1]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 2]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 3]
and eax, 0x3f
shl edi, 6
or edi, eax
movzx eax, byte [rbx + 4]
and eax, 0x3f
shl edi, 6
or edi, eax
add rbx, 5
mov dword [rsp + 0x60], edi
mov ecx, edi
mov qword [rbp + 0x70], rbx
cmp ecx, 0x5d
jne 0x140164461
test r11d, r11d
jne 0x140164461
cmp r14d, 1
jne 0x140164b3e
mov dword [r15 - 4], 0x2d
mov r14d, dword [rsp + 0x70]
movzx esi, word [rbp + 0x78]
mov r8d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x5c]
mov dword [r15], 0x800d0000
add r15, 4
mov qword [rsp + 0x78], r15
jmp 0x1401633c0
cmp rbx, r13
jae 0x1401661d0
cmp byte [rbx], 0x3f
je 0x140165084
cmp byte [rbx], 0x2a
movzx esi, word [rbp + 0x78]
je 0x140164bda
inc si
mov word [rbp + 0x78], si
bt r14d, 0xd
jb 0x140164bb5
mov eax, dword [r12 + 0xd4]
mov ecx, 0xffff
cmp eax, ecx
jae 0x140166110
inc eax
mov dword [r12 + 0xd4], eax
or eax, 0x80080000
jmp 0x140164bba
mov eax, 0x801a0000
mov r9d, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x58]
mov dword [r15], eax
add r15, 4
mov qword [rsp + 0x78], r15
jmp 0x1401633c0
mov r9d, dword [rsp + 0x54]
mov rax, r13
mov r11d, dword [rsp + 0x50]
sub rax, rbx
mov rdi, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x58]
cmp rax, 1
jle 0x1401633c5
movzx eax, byte [rbx + 1]
cmp al, 0x29
je 0x1401633c5
mov r8d, dword [rsp + 0x54]
mov ecx, eax
mov rax, qword [r12 + 0x20]
xor r9d, r9d
test byte [rcx + rax], 4
lea rcx, [rbp + 0x70]
je 0x140164e8f
mov rax, qword [rbp + 0x88]
lea r12, [0x1403488b0]
mov qword [rsp + 0x40], rax
mov rdx, r13
lea rax, [rbp - 0x80]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x74]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
call fcn.140167580
test eax, eax
je 0x14016607f
mov rbx, qword [rbp + 0x70]
cmp rbx, r13
jae 0x140166061
cmp byte [rbx], 0x3a
jne 0x140166061
mov r15d, dword [rbp - 0x74]
lea r9, [0x140000000]
xor eax, eax
mov dword [rbp - 0x78], eax
mov edi, eax
mov r14d, eax
mov r8d, eax
mov ecx, eax
mov edx, eax
movsxd r13, eax
movsxd rax, edi
cmp r15d, dword [r9 + rax*8 + 0x348990]
jne 0x140164cd1
mov edi, ecx
mov esi, edx
mov rcx, qword [rbp - 0x48]
mov rdx, r12
mov r8, r15
call fcn.140180730
lea r9, [0x140000000]
test eax, eax
je 0x140164cf8
mov r8d, r14d
mov eax, dword [r9 + r13*8 + 0x348990]
lea edi, [r8 + 1]
inc eax
mov dword [rbp - 0x78], edi
add r12, rax
mov r14d, edi
mov eax, edi
mov r8d, edi
mov ecx, edi
mov edx, edi
mov esi, edi
cmp edi, 0x11
jl 0x140164ca0
cmp edi, 0x11
jge 0x140166061
mov r8d, dword [rbp - 0x70]
movsxd rax, esi
mov ecx, dword [r9 + rax*8 + 0x348994]
test r8d, r8d
jle 0x140164d26
lea eax, [rcx + 0x7fdd0000]
cmp eax, 0x30000
ja 0x14016603a
cmp ecx, 0x80250000
ja 0x140164d89
je 0x140164e72
cmp ecx, 0x80020000
je 0x14016575b
cmp ecx, 0x80220000
je 0x140164dba
cmp ecx, 0x80230000
je 0x140165793
cmp ecx, 0x80240000
jne 0x140166057
mov r15, qword [rsp + 0x78]
mov r13, qword [rbp - 0x50]
mov r12, qword [rbp + 0x88]
mov r14d, dword [rsp + 0x70]
mov r10d, dword [rsp + 0x5c]
mov dword [r15], 0x80240000
inc rbx
jmp 0x140165857
mov eax, 0x80260000
cmp ecx, eax
je 0x140164e72
cmp ecx, 0x80270000
je 0x1401657bc
cmp ecx, 0x80280000
je 0x140164e72
cmp ecx, 0x8fff0000
jne 0x140166057
mov r15, qword [rsp + 0x78]
inc rbx
movzx esi, word [rbp + 0x78]
mov r13, qword [rbp - 0x50]
inc si
mov r14d, dword [rsp + 0x70]
mov r9d, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x5c]
mov dword [r15], 0x80220000
add r15, 4
mov qword [rsp + 0x78], r15
mov word [rbp + 0x78], si
cmp ecx, 0x8fff0000
jne 0x1401633b0
mov rdi, qword [rbp - 0x60]
mov dword [r15], 0x80020000
add r15, 4
mov qword [rsp + 0x78], r15
test rdi, rdi
jne 0x140164e36
mov r12, qword [rbp + 0x88]
mov rdi, qword [r12 + 0x28]
mov qword [rbp - 0x60], rdi
jmp 0x140164e4f
add rdi, 0xc
mov qword [rbp - 0x60], rdi
cmp rdi, qword [rbp + 8]
jae 0x140166141
mov r12, qword [rbp + 0x88]
mov r14d, dword [rsp + 0x70]
mov eax, r14d
mov r11d, dword [rsp + 0x50]
and eax, 0x10424e8
mov dword [rdi + 8], eax
mov word [rdi], si
mov word [rdi + 6], 4
jmp 0x1401633c0
mov r13, qword [rbp - 0x50]
dec rbx
mov r12, qword [rbp + 0x88]
mov r14d, dword [rsp + 0x70]
mov r10d, dword [rsp + 0x5c]
jmp 0x14016581c
mov rdi, qword [rbp - 0x50]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x40], r12
lea r13, [0x140348810]
mov qword [rsp + 0x38], rax
mov rdx, rdi
lea rax, [rbp - 0x74]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
call fcn.140167580
test eax, eax
je 0x14016607f
mov rbx, qword [rbp + 0x70]
cmp rbx, rdi
jae 0x140166164
movzx eax, byte [rbx]
cmp al, 0x3a
je 0x140164eef
cmp al, 0x29
jne 0x140166164
mov r12d, dword [rbp - 0x74]
lea r10, [0x140000000]
xor eax, eax
mov esi, eax
mov dword [rbp - 0x78], eax
mov ecx, eax
mov r14d, eax
mov r8d, eax
mov edx, eax
nop dword [rax + rax]
movsxd r15, eax
movsxd rax, ecx
lea rcx, [rax + rax*2]
cmp r12d, dword [r10 + rcx*4 + 0x348840]
jne 0x140164f43
mov rcx, qword [rbp - 0x48]
mov edi, edx
mov rdx, r13
mov r8, r12
call fcn.140180730
lea r10, [0x140000000]
test eax, eax
je 0x140164f6e
mov r8d, r14d
lea esi, [r8 + 1]
lea rax, [r15 + r15*2]
mov dword [rbp - 0x78], esi
mov eax, dword [r10 + rax*4 + 0x348840]
mov ecx, esi
inc eax
mov r14d, esi
add r13, rax
mov r8d, esi
mov eax, esi
mov edx, esi
mov edi, esi
cmp esi, 9
jl 0x140164f10
cmp edi, 9
jge 0x140166164
cmp byte [rbx], 0x3a
mov r13, qword [rbp - 0x50]
jne 0x140164f90
lea rax, [rbx + 1]
cmp rax, r13
jae 0x140164f90
cmp byte [rax], 0x29
cmove rbx, rax
movsxd rax, esi
lea rcx, [rax + rax*2]
lea rcx, [rcx*4]
mov edx, dword [rcx + r10 + 0x348848]
test edx, edx
jle 0x140164fdf
cmp byte [rbx], 0x3a
jne 0x14016606b
mov r9, qword [rsp + 0x78]
xor edx, edx
mov ecx, dword [rcx + r10 + 0x348844]
mov esi, edx
inc rbx
mov qword [rbp], r9
cmp ecx, 0x802a0000
lea r8, [r9 + 4]
sete sil
mov dword [rbp - 0x7c], esi
jmp 0x14016501f
mov r9, qword [rsp + 0x78]
xor eax, eax
mov ecx, dword [rcx + r10 + 0x348844]
mov esi, eax
movzx eax, byte [rbx]
cmp ecx, 0x802a0000
mov qword [rbp], r9
sete sil
lea r8, [r9 + 4]
inc rbx
mov dword [rbp - 0x7c], esi
cmp al, 0x3a
jne 0x140165063
test edx, edx
jns 0x14016501d
mov dword [rbp - 0x3c], ecx
mov eax, 0x80290000
jmp 0x140165031
xor edx, edx
mov eax, edx
cmp ecx, 0x80290000
mov edx, 0x10000
cmovne eax, edx
add eax, ecx
mov r14d, dword [rsp + 0x70]
lea r15, [r8 + 4]
mov dword [r9], eax
mov r12, qword [rbp + 0x88]
mov r9d, dword [rsp + 0x54]
mov qword [rsp + 0x78], r15
mov qword [rbp + 0x10], r8
mov qword [rbp + 0x18], rbx
mov dword [rsp + 0x58], 1
jmp 0x14016380c
mov r12, qword [rbp + 0x88]
mov r15, r8
mov r14d, dword [rsp + 0x70]
mov dword [r9], ecx
mov r9d, dword [rsp + 0x54]
mov qword [rsp + 0x78], r8
jmp 0x14016380c
inc rbx
mov qword [rbp + 0x70], rbx
cmp rbx, r13
jae 0x1401661d0
movzx edx, byte [rbx]
lea eax, [rdx - 0x21]
cmp eax, 0x31
ja case.0x1401650be.46
lea rsi, [0x140000000]
cdqe
movzx eax, byte [rsi + rax + 0x16639c]
mov ecx, dword [rsi + rax*4 + 0x166364]
add rcx, rsi
jmp rcx
inc rbx
mov qword [rbp + 0x70], rbx
cmp rbx, r13
jae 0x1401661d0
movzx eax, byte [rbx]
cmp al, 0x3c
jne 0x1401650e2
mov r9d, 0x3e
jmp 0x1401658c8
cmp al, 0x3e
je case.0x1401650be.34
cmp al, 0x3d
jne 0x140166075
mov r8d, dword [rsp + 0x54]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x40], r12
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x38], rax
mov r9d, 0x29
lea rax, [rbp - 0x74]
mov rdx, r13
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
call fcn.140167580
test eax, eax
je 0x14016607f
mov dword [r15], 0x80040000
mov eax, dword [rbp - 0x74]
mov rcx, qword [rbp - 0x68]
mov rbx, qword [rbp + 0x70]
mov r9d, dword [rsp + 0x54]
mov dword [r15 + 4], eax
mov rax, rcx
shr rax, 0x20
mov dword [r15 + 8], eax
mov eax, 1
mov dword [r15 + 0xc], ecx
add r15, 0x10
mov qword [rsp + 0x78], r15
mov dword [rbp - 0x7c], eax
jmp 0x14016380c
inc rbx
mov eax, r11d
mov dword [rbp - 0x78], eax
cmp rbx, r13
jae 0x140165191
cmp byte [rbx], 0x29
je 0x140165bf3
mov ecx, 0x9e
jmp 0x1401661d5
mov rax, r13
sub rax, rbx
cmp rax, 2
jl 0x1401651b5
movzx eax, byte [rbx + 1]
sub al, 0x30
cmp al, 9
jbe case.0x1401650be.39
mov ecx, 0x81
jmp 0x1401661d5
mov r8d, dword [rsp + 0x54]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x40], r12
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x38], rax
mov r9d, 0x29
lea rax, [rbp - 0x74]
mov rdx, r13
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
call fcn.140167580
test eax, eax
je 0x14016607f
mov dword [r15], 0x80210000
jmp 0x140165141
inc rbx
cmp rbx, r13
jae 0x1401661d0
lea r10d, [r8 - 1]
mov dword [rsp + 0x5c], r10d
test r9, r9
je 0x140165248
test r14b, 4
je 0x140165248
lea rax, [r15 - 0x10]
cmp r9, rax
jne 0x140165248
cmp dword [r15 - 4], 0xff
cmove r15, r9
movzx edx, byte [rbx]
mov r11, r15
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], r15
mov dword [rbp - 0x58], 1
cmp dl, 0x29
je 0x140165331
lea eax, [rdx - 0x30]
cmp al, 9
jbe 0x140165331
xor edi, edi
mov r10, rbx
cmp dword [0x1403694c0], edi
mov dword [rbp - 0x78], edi
je 0x1401652b8
mov r9d, edx
mov ecx, edi
mov edx, edi
mov r8d, edi
nop dword [rax + rax]
movsxd rax, ecx
movsxd rdx, edx
cmp r9d, dword [rsi + rax*4 + 0x3694c0]
je 0x1401652c2
lea ecx, [r8 + 1]
movsxd rax, r8d
mov edx, ecx
mov dword [rbp - 0x78], ecx
mov r8d, ecx
cmp dword [rsi + rax*4 + 0x3694c4], edi
jne 0x140165290
mov ecx, UnRegisterTypeLib
jmp 0x1401661d5
mov ecx, dword [rsi + rdx*4 + 0x369498]
test ecx, ecx
je 0x1401652b8
mov dword [r15], 0x80070000
inc rbx
cmp rbx, r13
jae 0x140166095
movzx eax, byte [rbx]
cmp eax, ecx
jne 0x1401652d4
inc rbx
cmp rbx, r13
jae 0x1401652f6
movzx eax, byte [rbx]
cmp eax, ecx
je 0x1401652d4
mov rax, rbx
mov ecx, 0xffffffff
sub rax, r10
cmp rax, rcx
ja 0x14016608b
mov dword [r15 + 0xc], eax
sub r10, qword [r12 + 0x38]
mov rax, r10
mov dword [r15 + 0x14], r10d
shr rax, 0x20
mov dword [r15 + 0x10], eax
add r15, 0x14
mov qword [rbp - 0x68], r10
mov r10d, dword [rsp + 0x5c]
jmp 0x14016536a
xor edi, edi
mov dword [r15], 0x80060000
mov ecx, edi
add r15, 0xc
movzx edx, byte [rbx]
lea eax, [rdx - 0x30]
cmp al, 9
ja 0x140165367
lea ecx, [rcx + rcx*4]
inc rbx
lea ecx, [rcx - 0x18]
lea ecx, [rdx + rcx*2]
cmp ecx, 0xff
jg 0x1401660a2
cmp rbx, r13
jb 0x140165340
mov dword [r15], ecx
cmp rbx, r13
jae 0x1401660ac
cmp byte [rbx], 0x29
jne 0x1401660ac
movzx esi, word [rbp + 0x78]
inc rbx
mov eax, ebx
sub eax, dword [r12 + 0x38]
mov dword [r11 + 4], eax
mov dword [r11 + 8], edi
jmp 0x140165e98
inc rbx
mov qword [rbp + 0x70], rbx
cmp rbx, r13
jae 0x1401661d0
movzx esi, word [rbp + 0x78]
movzx eax, byte [rbx]
inc si
mov word [rbp + 0x78], si
cmp al, 0x3f
je 0x14016573c
cmp al, 0x2a
je 0x14016573c
mov r8d, dword [r12 + 0xd4]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x30], rax
lea rcx, [rbp + 0x70]
lea rax, [rbp - 0x78]
mov r9d, 0xffff
mov qword [rsp + 0x28], rax
mov rdx, r13
mov dword [rsp + 0x20], 0xa1
call fcn.140167930
test eax, eax
je 0x14016543f
mov edx, dword [rbp - 0x78]
mov rbx, qword [rbp + 0x70]
test edx, edx
jle 0x1401660b6
mov dword [r15], 0x80120000
mov rcx, rbx
sub rcx, qword [r12 + 0x38]
sub rcx, 2
mov dword [r15 + 0xc], edx
mov rax, rcx
mov dword [r15 + 8], ecx
shr rax, 0x20
mov dword [r15 + 4], eax
add r15, 0xc
mov qword [rbp - 0x68], rcx
jmp 0x140165705
mov ecx, dword [rbp - 0x80]
test ecx, ecx
jne 0x14016600c
mov rdi, qword [rbp + 0x70]
mov rsi, r13
sub rsi, rdi
cmp rsi, 0xa
jl 0x14016557c
lea r8d, [rcx + 7]
mov rcx, rdi
lea rdx, str.VERSION
call fcn.140180730
test eax, eax
jne 0x14016557c
movzx eax, byte [rdi + 7]
lea rbx, [rdi + 7]
cmp al, 0x29
je 0x14016557c
xor ecx, ecx
mov dword [rsp + 0x60], ecx
mov esi, ecx
mov edi, ecx
cmp al, 0x3e
jne 0x1401654a1
movzx eax, byte [rbx + 1]
lea esi, [rcx + 1]
inc rbx
cmp al, 0x3d
jne 0x1401660c0
movzx eax, byte [rbx + 1]
inc rbx
sub al, 0x30
mov qword [rbp + 0x70], rbx
cmp al, 9
ja 0x1401660c0
lea rax, [rbp - 0x80]
mov r9d, 0x3e8
mov qword [rsp + 0x30], rax
lea rcx, [rbp + 0x70]
lea rax, [rsp + 0x60]
mov r8d, 0xffffffff
mov qword [rsp + 0x28], rax
mov rdx, r13
mov dword [rsp + 0x20], UnRegisterTypeLib
call fcn.140167930
test eax, eax
je 0x14016607f
mov rbx, qword [rbp + 0x70]
cmp rbx, r13
jae 0x1401660c0
cmp byte [rbx], 0x2e
jne 0x14016555d
inc rbx
cmp rbx, r13
jae 0x1401660c0
movzx ecx, byte [rbx]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x1401660c0
lea eax, [rcx - 0x30]
inc rbx
lea edi, [rax + rax*4]
add edi, edi
cmp rbx, r13
jae 0x1401660c0
movzx ecx, byte [rbx]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x14016554b
lea eax, [rcx - 0x30]
add edi, eax
inc rbx
cmp rbx, r13
jae 0x1401660c0
cmp byte [rbx], 0x29
jne 0x1401660c0
mov eax, dword [rsp + 0x60]
mov dword [r15], 0x80150000
mov dword [r15 + 4], esi
mov dword [r15 + 8], eax
add r15, 0xc
mov dword [r15], edi
jmp 0x140165701
xor eax, eax
mov r14d, eax
movzx eax, byte [rdi]
cmp al, 0x52
jne 0x1401655a6
cmp rsi, 1
jle 0x1401655c2
cmp byte [rdi + 1], 0x26
lea rax, [rdi + 1]
jne 0x1401655c2
mov esi, 1
mov qword [rbp + 0x70], rax
mov r14d, esi
jmp 0x1401655ce
cmp al, 0x3c
jne 0x1401655b4
mov ebx, 0x3e
lea esi, [rbx - 0x3d]
jmp 0x1401655d3
cmp al, 0x27
jne 0x1401655c2
mov ebx, 0x27
lea esi, [rbx - 0x26]
jmp 0x1401655d3
dec rdi
mov esi, 1
mov qword [rbp + 0x70], rdi
mov ebx, 0x29
mov r8d, dword [rsp + 0x54]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x40], r12
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x38], rax
mov r9d, ebx
lea rax, [rbp - 0x74]
mov rdx, r13
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
call fcn.140167580
test eax, eax
je 0x14016607f
mov edi, dword [rbp - 0x74]
test r14d, r14d
je 0x140165633
mov rbx, qword [rbp + 0x70]
dec rbx
mov dword [r15], 0x80130000
jmp 0x1401656d2
cmp ebx, 0x29
jne 0x1401656c7
mov rbx, qword [rbp - 0x48]
cmp edi, 6
jne 0x14016566c
mov r8d, edi
lea rdx, str.DEFINE
mov rcx, rbx
call fcn.140180730
test eax, eax
jne 0x14016566c
mov eax, 0x80100000
mov dword [r15], eax
mov rbx, qword [rbp + 0x70]
dec rbx
jmp 0x1401656d2
mov dword [rbp - 0x78], esi
mov eax, esi
cmp edi, 1
jle 0x1401656a8
mov r9d, esi
mov r8d, esi
mov edx, esi
nop
cdqe
movzx ecx, byte [rax + rbx]
mov eax, edx
cmp cl, 0x30
jb 0x1401656a8
mov eax, r8d
cmp cl, 0x39
ja 0x1401656a8
lea eax, [r9 + 1]
mov dword [rbp - 0x78], eax
mov r9d, eax
mov r8d, eax
mov edx, eax
cmp eax, edi
jl 0x140165680
cmp byte [rbx], 0x52
jne 0x1401656b6
cmp eax, edi
mov eax, 0x80140000
jge 0x1401656bb
mov eax, 0x80110000
mov dword [r15], eax
mov rbx, qword [rbp + 0x70]
dec rbx
jmp 0x1401656d2
mov rbx, qword [rbp + 0x70]
mov dword [r15], 0x80110000
mov eax, dword [r15]
add r15, 4
cmp eax, 0x80100000
je 0x1401656e7
mov dword [r15], edi
add r15, 4
mov rcx, qword [rbp - 0x68]
mov r14d, dword [rsp + 0x70]
mov rax, rcx
shr rax, 0x20
mov dword [r15], eax
add r15, 4
mov dword [r15], ecx
movzx esi, word [rbp + 0x78]
cmp rbx, r13
jae 0x1401660ca
cmp byte [rbx], 0x29
jne 0x1401660ca
mov r9d, dword [rsp + 0x54]
inc rbx
mov r11d, dword [rsp + 0x50]
add r15, 4
mov r8d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x5c]
mov qword [rsp + 0x78], r15
jmp 0x1401633c0
mov eax, 2
mov dword [r15], 0x800f0000
add r15, 4
mov dword [rsp + 0x5c], eax
dec rbx
mov r10d, eax
jmp 0x140165e9c
mov r15, qword [rsp + 0x78]
mov r13, qword [rbp - 0x50]
mov r12, qword [rbp + 0x88]
mov r14d, dword [rsp + 0x70]
mov r10d, dword [rsp + 0x5c]
movzx esi, word [rbp + 0x78]
inc si
mov dword [r15], 0x80020000
add r15, 4
mov word [rbp + 0x78], si
inc rbx
jmp 0x140165e9c
mov r15, qword [rsp + 0x78]
mov r13, qword [rbp - 0x50]
mov r12, qword [rbp + 0x88]
mov r14d, dword [rsp + 0x70]
mov r10d, dword [rsp + 0x5c]
mov dword [r15], 0x80230000
inc rbx
jmp 0x140165857
mov r15, qword [rsp + 0x78]
mov r13, qword [rbp - 0x50]
mov r12, qword [rbp + 0x88]
mov r14d, dword [rsp + 0x70]
mov r10d, dword [rsp + 0x5c]
mov dword [r15], 0x80270000
inc rbx
jmp 0x140165857
mov rax, r13
sub rax, rbx
cmp rax, 1
jle 0x1401650d7
movzx eax, byte [rbx + 1]
cmp al, 0x3d
je 0x140165817
cmp al, 0x21
je 0x140165806
cmp al, 0x2a
jne 0x1401650d7
cmp al, 0x21
mov ecx, 0x80280000
mov eax, 0x80260000
cmove ecx, eax
jmp 0x14016581c
mov ecx, 0x80250000
mov r9, qword [rsp + 0x78]
lea r15, [r9 + 8]
mov dword [r9], ecx
mov rcx, rbx
mov rax, qword [rbp + 0x80]
mov dword [rax], 1
sub rcx, qword [r12 + 0x38]
sub rcx, 2
mov rax, rcx
mov qword [rbp - 0x68], rcx
shr rax, 0x20
mov dword [r9 + 4], eax
add rbx, 2
mov dword [r15], ecx
movzx esi, word [rbp + 0x78]
add r15, 4
inc si
mov qword [rsp + 0x78], r15
mov word [rbp + 0x78], si
test r8d, r8d
jle 0x140165ea1
mov rdi, qword [rbp - 0x60]
test rdi, rdi
jne 0x140165888
mov rdi, qword [r12 + 0x28]
mov qword [rbp - 0x60], rdi
jmp 0x14016589a
add rdi, 0xc
mov qword [rbp - 0x60], rdi
cmp rdi, qword [rbp + 8]
jae 0x140166141
mov r9d, dword [rsp + 0x54]
mov eax, r14d
mov r11d, dword [rsp + 0x50]
and eax, 0x10424e8
mov r8d, dword [rsp + 0x58]
mov dword [rdi + 8], eax
mov word [rdi], si
mov word [rdi + 6], 2
jmp 0x1401633c0
mov r9d, 0x27
mov r8d, dword [rsp + 0x54]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x40], r12
lea rcx, [rbp + 0x70]
mov qword [rsp + 0x38], rax
mov rdx, r13
lea rax, [rbp - 0x74]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
call fcn.140167580
test eax, eax
je 0x14016607f
mov eax, dword [r12 + 0xd4]
mov ecx, 0xffff
cmp eax, ecx
jae 0x14016610c
inc word [rbp + 0x78]
inc eax
mov dword [r12 + 0xd4], eax
or eax, 0x80080000
mov dword [r15], eax
add r15, 4
movzx edx, word [r12 + 0xb0]
mov eax, 0x2710
mov qword [rsp + 0x78], r15
cmp dx, ax
jae 0x1401660fe
mov r14d, dword [rbp - 0x74]
movzx eax, word [r12 + 0xb2]
lea ecx, [r14 + 3]
cmp ecx, eax
jbe 0x140165977
lea eax, [r14 + 3]
mov word [r12 + 0xb2], ax
mov rbx, qword [r12 + 0xc0]
xor eax, eax
mov r12, qword [rbp - 0x48]
mov r15d, eax
mov rcx, qword [rbp + 0x88]
mov esi, eax
mov dword [rbp - 0x78], eax
mov edi, eax
cmp ax, dx
jae 0x140165a11
nop dword [rax + rax]
movzx eax, word [rbx + 0xc]
cmp r14d, eax
jne 0x1401659ec
mov rdx, qword [rbx]
mov r8, r14
mov rcx, r12
call fcn.140180730
mov rcx, qword [rbp + 0x88]
test eax, eax
jne 0x1401659ec
mov eax, dword [rcx + 0xd4]
cmp dword [rbx + 8], eax
je 0x140165a11
test byte [rsp + 0x70], 0x40
je 0x1401660d4
mov eax, 1
mov word [rbx + 0xe], ax
mov r15d, eax
mov dword [rcx + 0x128], eax
jmp 0x1401659fb
mov eax, dword [rcx + 0xd4]
cmp dword [rbx + 8], eax
je 0x1401660e2
movzx eax, word [rcx + 0xb0]
inc esi
add rbx, 0x10
mov dword [rbp - 0x78], esi
mov edi, esi
cmp esi, eax
jl 0x1401659a0
movzx ecx, word [rcx + 0xb0]
cmp edi, ecx
jge 0x140165a3b
mov r15, qword [rsp + 0x78]
mov r12, qword [rbp + 0x88]
mov r14d, dword [rsp + 0x70]
mov rbx, qword [rbp + 0x70]
mov r9d, dword [rsp + 0x54]
jmp 0x14016380c
mov rdx, qword [rbp + 0x88]
mov eax, dword [rdx + 0xc8]
cmp ecx, eax
jb 0x140165ac3
lea edi, [rax + rax]
mov rax, qword [rdx]
mov ecx, edi
shl rcx, 4
mov rdx, qword [rax + 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
je 0x1401660f0
mov rax, qword [rbp + 0x88]
mov rcx, rbx
mov r8d, dword [rax + 0xc8]
mov rdx, qword [rax + 0xc0]
shl r8, 4
call fcn.14030ac20
mov rax, qword [rbp + 0x88]
cmp dword [rax + 0xc8], 0x14
jbe 0x140165ab4
mov r8, qword [rax]
mov rcx, qword [rax + 0xc0]
mov rdx, qword [r8 + 0x10]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rax, qword [rbp + 0x88]
mov qword [rax + 0xc0], rbx
mov dword [rax + 0xc8], edi
jmp 0x140165aca
mov rax, qword [rbp + 0x88]
movzx ecx, word [rax + 0xb0]
mov rax, qword [rax + 0xc0]
add rcx, rcx
mov rbx, qword [rbp + 0x70]
mov r9d, dword [rsp + 0x54]
mov qword [rax + rcx*8], r12
mov r12, qword [rbp + 0x88]
movzx ecx, word [r12 + 0xb0]
mov rax, qword [r12 + 0xc0]
add rcx, rcx
mov word [rax + rcx*8 + 0xc], r14w
movzx edx, word [r12 + 0xb0]
mov rcx, qword [r12 + 0xc0]
add rdx, rdx
mov eax, dword [r12 + 0xd4]
mov r14d, dword [rsp + 0x70]
mov dword [rcx + rdx*8 + 8], eax
movzx ecx, word [r12 + 0xb0]
mov rax, qword [r12 + 0xc0]
add rcx, rcx
mov word [rax + rcx*8 + 0xe], r15w
inc word [r12 + 0xb0]
mov r15, qword [rsp + 0x78]
jmp 0x14016380c
cmp dl, 0x2d
jne 0x140165c2e
mov rax, r13
sub rax, rbx
cmp rax, 1
jle 0x140165c2e
movzx eax, byte [rbx + 1]
sub al, 0x30
cmp al, 9
ja 0x140165c2e
movzx eax, byte [rbx]
mov r8d, 0xffffffff
sub al, 0x30
cmp al, 9
jbe 0x140165b99
mov r8d, dword [r12 + 0xd4]
lea rax, [rbp - 0x80]
mov r9d, 0xffff
mov qword [rsp + 0x30], rax
lea rcx, [rbp + 0x70]
lea rax, [rbp - 0x78]
mov rdx, r13
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xa1
call fcn.140167930
test eax, eax
je 0x14016607f
mov eax, dword [rbp - 0x78]
mov rbx, qword [rbp + 0x70]
test eax, eax
js 0x14016611a
cmp rbx, r13
jae 0x1401661d0
cmp byte [rbx], 0x29
jne 0x1401661d0
mov r10d, dword [rsp + 0x5c]
movzx esi, word [rbp + 0x78]
or eax, 0x80200000
mov dword [r15], eax
mov rcx, rbx
sub rcx, qword [r12 + 0x38]
inc rbx
mov rax, rcx
mov dword [r15 + 8], ecx
shr rax, 0x20
mov dword [r15 + 4], eax
add r15, 0xc
mov eax, 1
mov qword [rbp - 0x68], rcx
mov dword [rbp - 0x7c], eax
jmp 0x140165e9c
movzx esi, word [rbp + 0x78]
mov rdi, qword [rbp - 0x60]
inc si
mov word [rbp + 0x78], si
test rdi, rdi
jne 0x140165c4d
mov rdi, qword [r12 + 0x28]
mov qword [rbp - 0x60], rdi
jmp 0x140165c5f
add rdi, 0xc
mov qword [rbp - 0x60], rdi
cmp rdi, qword [rbp + 8]
jae 0x140166141
mov eax, r14d
mov word [rdi], si
and eax, 0x10424e8
mov word [rdi + 6], r11w
mov dword [rdi + 8], eax
cmp byte [rbx], 0x7c
jne 0x140165cb6
movzx eax, word [r12 + 0xd4]
mov word [rdi + 2], ax
movzx eax, word [r12 + 0xd4]
mov word [rdi + 4], ax
mov word [rdi + 6], 1
or dword [r12 + 0xd0], 0x200000
mov dword [r15], 0x801a0000
add r15, 4
inc rbx
jmp 0x140165e9c
mov dword [rdi + 2], r11d
lea r8, [rbp - 0x14]
movzx eax, byte [rbx]
mov ecx, r11d
mov dword [rbp - 0x18], ecx
mov edx, r11d
mov dword [rbp - 0x14], edx
mov r10d, r14d
cmp al, 0x5e
jne 0x140165cde
and r14d, 0xfeffdb57
inc rbx
cmp al, 0x5e
mov r9d, r11d
setne r9b
cmp rbx, r13
jae 0x140165db0
lea rdx, [0x140000000]
nop word [rax + rax]
movzx eax, byte [rbx]
cmp al, 0x29
je 0x140165daa
cmp al, 0x3a
je 0x140165daa
inc rbx
sub eax, 0x2d
cmp eax, 0x4b
ja case.0x140165d36.53
cdqe
movzx eax, byte [rdx + rax + 0x1663f4]
mov ecx, dword [rdx + rax*4 + 0x1663d0]
add rcx, rdx
jmp rcx
test r9d, r9d
je 0x140166127
lea r8, [rbp - 0x18]
mov r9d, r11d
jmp 0x140165da1
or dword [r8], 0x40
or dword [r12 + 0xd0], 0x400
jmp 0x140165da1
or dword [r8], 8
jmp 0x140165da1
or dword [r8], 0x400
jmp 0x140165da1
or dword [r8], 0x2000
jmp 0x140165da1
or dword [r8], 0x20
jmp 0x140165da1
or dword [r8], 0x40000
jmp 0x140165da1
mov eax, dword [r8]
bts eax, 7
mov dword [r8], eax
cmp rbx, r13
jae 0x140165daa
cmp byte [rbx], 0x78
jne 0x140165da1
bts eax, 0x18
mov dword [r8], eax
inc rbx
cmp rbx, r13
jb 0x140165d00
mov edx, dword [rbp - 0x14]
mov ecx, dword [rbp - 0x18]
mov eax, edx
and eax, 0x1000080
cmp eax, 0x80
je 0x140165dc2
test cl, cl
jns 0x140165dc6
bts ecx, 0x18
or r14d, edx
not ecx
and r14d, ecx
mov dword [rsp + 0x70], r14d
cmp rbx, r13
jae 0x1401661d0
movzx eax, byte [rbx]
inc rbx
cmp al, 0x29
jne 0x140165e0e
mov eax, 0xffff
add si, ax
mov word [rbp + 0x78], si
cmp rdi, qword [r12 + 0x28]
jbe 0x140165e09
cmp word [rdi - 0xc], si
lea rax, [rdi - 0xc]
jne 0x140165e09
mov qword [rbp - 0x60], rax
jmp 0x140165e1e
mov word [rdi], si
jmp 0x140165e1e
mov dword [r15], 0x801a0000
add r15, 4
mov qword [rsp + 0x78], r15
mov r9d, dword [rsp + 0x54]
cmp r14d, r10d
mov r10d, dword [rsp + 0x5c]
mov r11d, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x58]
je 0x1401633c5
mov dword [r15], 0x801b0000
mov dword [r15 + 4], r14d
add r15, 8
mov qword [rsp + 0x78], r15
jmp 0x1401633c5
mov rdi, qword [rbp - 0x60]
movzx esi, word [rbp + 0x78]
test rdi, rdi
je 0x140165e91
cmp word [rdi], si
jne 0x140165e91
test byte [rdi + 6], 1
je 0x140165e91
movzx eax, word [rdi + 4]
mov ecx, dword [r12 + 0xd4]
cmp ecx, eax
jbe 0x140165e85
mov word [rdi + 4], cx
movzx eax, word [rdi + 2]
mov dword [r12 + 0xd4], eax
mov dword [r15], 0x80010000
add r15, 4
mov qword [rsp + 0x78], r15
mov r9d, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x58]
jmp 0x1401633c0
mov rdi, qword [rbp - 0x60]
mov eax, 1
movzx esi, word [rbp + 0x78]
mov dword [rbp - 0x7c], eax
test rdi, rdi
je 0x140165f3b
cmp word [rdi], si
jne 0x140165f3b
and r14d, 0xfefbdb17
or r14d, dword [rdi + 8]
mov dword [rsp + 0x70], r14d
test byte [rdi + 6], al
je 0x140165efa
movzx eax, word [rdi + 4]
cmp eax, dword [r12 + 0xd4]
jbe 0x140165efa
mov dword [r12 + 0xd4], eax
movzx eax, word [rdi + 6]
movzx r11d, ax
not r11w
shr r11d, 1
and r11d, 1
mov dword [rbp - 0x7c], r11d
test al, 4
je 0x140165f20
mov dword [r15], 0x80190000
add r15, 4
cmp rdi, qword [r12 + 0x28]
jne 0x140165f2f
xor eax, eax
mov qword [rbp - 0x60], rax
jmp 0x140165f3b
sub rdi, 0xc
mov dword [rbp - 0x7c], r11d
mov qword [rbp - 0x60], rdi
test si, si
je 0x14016614b
mov r9d, dword [rsp + 0x54]
mov eax, 0xffff
mov r11d, dword [rsp + 0x50]
add si, ax
mov r8d, dword [rsp + 0x58]
mov dword [r15], 0x80190000
add r15, 4
mov qword [rsp + 0x78], r15
mov word [rbp + 0x78], si
jmp 0x1401633c0
mov r9d, dword [rsp + 0x54]
mov eax, 1
mov r11d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x58]
mov dword [r15], edi
add r15, 4
mov qword [rsp + 0x78], r15
mov dword [rbp - 0x7c], eax
jmp 0x1401633bc
mov ecx, 0x8c
jmp 0x1401661d5
dec rbx
mov ecx, 0xb0
jmp 0x1401661d5
mov ecx, 0x76
jmp 0x1401661d5
mov ecx, WSASetLastError
dec rbx
jmp 0x1401661d5
movzx eax, byte [rbx]
xor ecx, ecx
dec rbx
cmp al, 0x3a
setne cl
add ecx, 0x70
jmp 0x1401661d5
mov ecx, 0x82
jmp 0x1401661d5
mov ecx, WSACleanup
dec rbx
jmp 0x1401661d5
mov rbx, qword [rbp + 0x70]
mov ecx, WSAGetLastError
dec rbx
jmp 0x1401661d5
mov ecx, 0xab
mov rbx, qword [rbp + 0x70]
jmp 0x1401661d5
mov rbx, qword [rbp + 0x70]
mov ecx, 0x96
jmp 0x1401661d5
mov ecx, WSASetLastError
dec rbx
jmp 0x1401661d5
mov ecx, 0x6a
jmp 0x1401661d5
lea eax, [rcx + 0x7fd90000]
mov ecx, 0xc6
test eax, 0xfffeffff
mov eax, 0x80
cmovne ecx, eax
jmp 0x1401661d5
mov ecx, 0xbd
jmp 0x1401661d5
mov ecx, 0xc3
jmp 0x1401661d5
mov ecx, 0xa6
jmp 0x1401661d5
mov ecx, 0x8d
jmp 0x1401661d5
mov rbx, qword [rbp + 0x70]
mov ecx, dword [rbp - 0x80]
jmp 0x1401661d5
mov ecx, 0xac
jmp 0x1401661d5
mov ecx, UnRegisterTypeLib
mov rbx, r10
jmp 0x1401661d5
mov ecx, 0x8a
jmp 0x1401661d5
mov ecx, 0x8b
jmp 0x1401661d5
mov ecx, reloc.WS2_32.dll_WSAStartup
jmp 0x1401661d5
mov ecx, 0xb3
jmp 0x1401661d5
mov ecx, 0x7c
jmp 0x1401661d5
mov rbx, qword [rbp + 0x70]
mov ecx, 0x8f
jmp 0x1401661d5
mov rbx, qword [rbp + 0x70]
mov ecx, 0xa5
jmp 0x1401661d5
mov rbx, qword [rbp + 0x70]
mov ecx, 0x79
jmp 0x1401661d5
mov rbx, qword [rbp + 0x70]
mov ecx, 0x95
jmp 0x1401661d5
mov rbx, qword [rbp + 0x70]
mov ecx, 0xc5
jmp 0x1401661d5
mov ecx, reloc.WS2_32.dll_WSAStartup
dec rbx
jmp 0x1401661d5
mov ecx, 0xc2
dec rbx
jmp 0x1401661d5
mov ecx, reloc.WS2_32.dll_WSAGetLastError
dec rbx
jmp 0x1401661d5
mov ecx, reloc.OLEAUT32.dll_VariantTimeToSystemTime
jmp 0x1401661d5
mov ecx, 0x7a
dec rbx
jmp 0x1401661d5
mov ecx, 0x77
jmp 0x1401661d5
test r8d, r8d
je 0x14016616b
mov ecx, 0xa0
jmp 0x1401661d5
mov r14d, dword [rbp - 0x38]
mov r8d, dword [rbp - 0x40]
lea rdx, [rbp - 0x28]
mov r9, r15
mov qword [rsp + 0x20], r12
mov rcx, rbx
call fcn.140163090
test r14b, 8
je 0x14016619c
mov dword [rax], 0x80190000
mov dword [rax + 4], 0x80160000
jmp 0x1401661af
test r14b, 4
je 0x1401661b3
mov dword [rax], 0x80190000
mov dword [rax + 4], 0x80180005
add rax, 8
cmp rax, qword [rsp + 0x68]
jb 0x1401661c1
mov ecx, 0xa3
jmp 0x1401661d5
mov dword [rax], 0x80000000
test si, si
jne 0x1401661d0
xor eax, eax
jmp 0x1401661e9
mov ecx, WSACleanup
mov rax, qword [rbp + 0x88]
sub rbx, qword [rax + 0x38]
mov qword [rax + 0xa8], rbx
mov eax, ecx
add rsp, 0x128
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret