Function at 0x1401a76c0
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], r9
mov word [rsp + 0x18], r8w
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov rax, qword [rcx + 0x28]
mov rsi, qword [rcx]
movzx r12d, r8w
mov r15, qword [rsi + 0x18]
mov qword [rsp + 0x78], rax
movsxd rbx, edx
mov rax, rbx
xor ebp, ebp
mov qword [rsp + 0x90], r15
imul rax, rax, 0x58
movzx r8d, byte [rax + rcx + 0x74]
lea r14, [rax + rcx + 0x40]
mov rax, qword [rcx + 0x10]
lea ecx, [rbp + 1]
imul r8, r8, 0x58
lea r13, [r8 + rax + 8]
mov qword [rsp + 0x70], r14
mov eax, dword [r13 + 0x2c]
mov qword [rsp + 0x80], r13
mov dword [rsp + 0x30], eax
mov eax, dword [r14]
mov edi, eax
shr edi, 0x19
and edi, 1
mov dword [rsp + 0x64], edi
bt eax, 0x17
jae 0x1401a775e
mov dword [rsp + 0x34], ecx
test r12b, 0x40
je 0x1401a7762
mov dword [rsp + 0x34], ebp
mov rcx, r15
call fcn.1401584c0
mov rcx, r15
mov dword [rsp + 0x68], eax
mov dword [r14 + 0x28], eax
mov dword [r14 + 0x24], eax
call fcn.1401584c0
mov dword [rsp + 0x88], eax
mov dword [r14 + 0x2c], eax
cmp byte [r14 + 0x34], bpl
jbe 0x1401a77b8
test byte [r13 + 0x29], 8
je 0x1401a77b8
mov r9d, dword [rsi + 0x58]
xor r8d, r8d
mov rcx, r15
inc r9d
lea edx, [r8 + 7]
mov dword [rsp + 0x20], ebp
mov dword [rsi + 0x58], r9d
mov dword [r14 + 0x18], r9d
call fcn.1401583c0
mov ecx, dword [r14]
mov qword [rsp + 0x98], 0xa
bt ecx, 0x1b
jae 0x1401a7b7d
mov rax, qword [r14 + 0x10]
mov ecx, dword [rsi + 0x48]
mov r8d, dword [rsi + 0x4c]
movsxd rdx, dword [rax]
mov r13, qword [rax + 0x20]
mov r9, qword [rax + 8]
inc dword [rsi + 0x64]
lea r10d, [rdx + 2]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r9
mov dword [rsp + 0x5c], r10d
mov dword [rsp + 0xf8], r8d
cmp r10d, ecx
jg 0x1401a781e
lea eax, [r8 + r10]
sub ecx, r10d
mov dword [rsi + 0x4c], eax
mov dword [rsi + 0x48], ecx
jmp 0x1401a7831
mov eax, dword [rsi + 0x58]
lea ecx, [rax + 1]
add eax, r10d
mov dword [rsp + 0xf8], ecx
mov dword [rsi + 0x58], eax
mov edi, 1
mov r12, rdx
cmp edx, edi
jl 0x1401a7903
mov r15d, dword [rsp + 0xf8]
mov r14d, edx
nop dword [rax]
mov ebx, ebp
mov rax, rbp
test r12, r12
jle 0x1401a78e6
nop
cmp dword [r13 + rax*8], edi
je 0x1401a7873
inc rax
inc ebx
cmp rax, r12
jl 0x1401a7860
jmp 0x1401a78e6
lea rax, [rax + rax*2]
lea r13d, [r15 + rdi + 1]
movsxd rcx, dword [r9 + rax*4 + 8]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 0x28]
imul rcx, rcx, 0x38
mov rcx, qword [rcx + rax]
mov rdx, qword [rcx + 0x18]
test rdx, rdx
je 0x1401a78af
cmp byte [rdx], 0x84
jne 0x1401a78af
mov r8d, dword [rdx + 0x30]
mov rcx, qword [rsi + 0x18]
mov edx, 0xe
jmp 0x1401a78d0
mov r8d, r13d
mov rcx, rsi
call fcn.1401a40e0
cmp eax, r13d
je 0x1401a78dc
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x1401a78dc
mov r8d, eax
mov edx, 0xf
mov r9d, r13d
mov dword [rsp + 0x20], ebp
call fcn.1401583c0
mov r9, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
cmp ebx, r14d
je 0x1401a78f6
inc edi
cmp edi, r14d
jle 0x1401a7850
mov r14, qword [rsp + 0x70]
mov r15, qword [rsp + 0x90]
mov rax, qword [rsp + 0x40]
movsxd rbx, dword [r15 + 0x34]
mov eax, dword [rax + 0x28]
mov dword [rsp + 0x34], eax
cmp dword [r15 + 0x38], ebx
jg 0x1401a7925
mov rcx, r15
call fcn.140158320
test eax, eax
jne 0x1401a7958
mov rax, qword [r15 + 8]
inc dword [r15 + 0x34]
mov edx, dword [rsp + 0x34]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0xf8]
mov byte [rax + rcx*8 + 3], bpl
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
mov word [rax + rcx*8], 7
mov dword [rax + rcx*8 + 8], edx
movsxd rbx, dword [r15 + 0x34]
cmp dword [r15 + 0x38], ebx
jg 0x1401a796e
mov rcx, r15
call fcn.140158320
test eax, eax
jne 0x1401a79a2
inc dword [r15 + 0x34]
mov rcx, qword [r15 + 8]
lea rdx, [rbx + rbx*2]
lea eax, [rdi - 1]
mov byte [rcx + rdx*8 + 3], bpl
mov dword [rcx + rdx*8 + 0xc], ebp
mov dword [rcx + rdx*8 + 4], eax
mov eax, dword [rsp + 0xf8]
mov qword [rcx + rdx*8 + 0x10], rbp
inc eax
mov word [rcx + rdx*8], 7
mov dword [rcx + rdx*8 + 8], eax
mov rax, qword [rsp + 0x40]
movsxd rbx, dword [r15 + 0x34]
mov edi, 0xfffffffe
cmp dword [rax + 0x38], ebp
mov rax, qword [rax + 0x30]
mov ecx, 0xfffffff5
cmovne edi, ecx
mov qword [rsp + 0x80], rax
cmp dword [r15 + 0x38], ebx
jg 0x1401a79e0
mov rcx, r15
call fcn.140158320
test eax, eax
je 0x1401a79e0
mov ebx, 1
jmp 0x1401a7a1b
mov rax, qword [r15 + 8]
inc dword [r15 + 0x34]
mov r8d, dword [rsp + 0x30]
mov r9d, dword [rsp + 0x68]
mov edx, dword [rsp + 0xf8]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 3], bpl
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rbp
mov word [rax + rcx*8], 0x80
mov r8, qword [rsp + 0x80]
mov r9d, edi
mov edx, ebx
mov rcx, r15
call fcn.140158a40
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x38], ebp
test r12, r12
jle 0x1401a7ab9
mov r11, qword [rsp + 0x48]
mov r15, qword [rsp + 0x78]
lea r10, [r13 + 4]
add r11, 8
nop
cmp byte [r10], bpl
je 0x1401a7aa4
movsxd rcx, dword [r11]
imul rcx, rcx, 0x38
add rcx, qword [r15 + 0x28]
je 0x1401a7aa4
movzx edx, byte [rcx + 0x1a]
test dl, 4
jne 0x1401a7aa4
cmp dword [r14 + 0x18], ebp
je 0x1401a7a7a
mov rax, qword [rcx]
test byte [rax + 2], 1
je 0x1401a7aa4
movsxd rax, dword [rcx + 8]
or dl, 4
mov byte [rcx + 0x1a], dl
test eax, eax
js 0x1401a7aa4
mov rdx, rax
mov rax, qword [rcx + 0x20]
imul rdx, rdx, 0x38
add rdx, qword [rax + 0x28]
dec byte [rdx + 0x1b]
jne 0x1401a7aa4
mov rcx, r14
call fcn.140151260
add r10, 8
add r11, 0xc
dec r12
jne 0x1401a7a50
mov r15, qword [rsp + 0x90]
mov r12d, dword [rsp + 0x30]
mov r10d, dword [rsp + 0x5c]
mov byte [r14 + 0x35], 0x83
mov dword [r14 + 0x38], r12d
mov eax, dword [r15 + 0x34]
mov r11d, 0xa
mov dword [r14 + 0x3c], eax
mov eax, dword [rsp + 0xf8]
lea rcx, [rsi + 0x80]
lea r9d, [rax + r10 - 1]
mov r8d, r11d
mov edx, dword [rcx]
cmp edx, eax
jl 0x1401a7b20
cmp edx, r9d
jg 0x1401a7b20
cmp byte [rcx - 8], bpl
je 0x1401a7b1e
movzx eax, byte [rsi + 0x25]
cmp al, 8
jae 0x1401a7b13
movzx eax, al
mov dword [rsi + rax*4 + 0x28], edx
inc byte [rsi + 0x25]
mov eax, dword [rsp + 0xf8]
mov byte [rcx - 8], bpl
mov dword [rcx], ebp
add rcx, 0x18
dec r8
jne 0x1401a7af0
cmp r10d, dword [rsi + 0x48]
jle 0x1401a7b36
mov dword [rsi + 0x48], r10d
mov dword [rsi + 0x4c], eax
dec dword [rsi + 0x64]
lea rcx, [rsi + 0x80]
mov r8, r11
mov edx, dword [rcx]
test edx, edx
je 0x1401a7b6f
mov eax, dword [rsi + 0x64]
cmp dword [rcx - 4], eax
jle 0x1401a7b6f
cmp byte [rcx - 8], bpl
je 0x1401a7b6d
movzx eax, byte [rsi + 0x25]
cmp al, 8
jae 0x1401a7b69
movzx eax, al
mov dword [rsi + rax*4 + 0x28], edx
inc byte [rsi + 0x25]
mov byte [rcx - 8], bpl
mov dword [rcx], ebp
add rcx, 0x18
dec r8
jne 0x1401a7b43
jmp 0x1401a873a
bt ecx, 0xc
jae 0x1401a7c43
movzx eax, byte [rsi + 0x25]
test al, al
jne 0x1401a7b98
inc dword [rsi + 0x58]
mov r13d, dword [rsi + 0x58]
jmp 0x1401a7ba5
dec al
movzx eax, al
mov byte [rsi + 0x25], al
mov r13d, dword [rsi + rax*4 + 0x28]
mov rax, qword [rsp + 0x78]
mov r12d, dword [rsp + 0x30]
mov rdx, qword [rax + 0x28]
mov eax, dword [rax + 0x1c]
test eax, eax
je 0x1401a7be2
mov r9, qword [rsp + 0x108]
cmp dword [rdx + 0xc], r12d
jne 0x1401a7bda
test qword [rdx + 0x28], r9
jne 0x1401a7bda
cmp dword [rdx + 0x10], 0xffffffff
jne 0x1401a7bda
test byte [rdx + 0x18], 3
jne 0x1401a7be5
add rdx, 0x38
dec eax
jne 0x1401a7bc2
mov rdx, rbp
mov r9d, r13d
mov r8, r14
mov rcx, rsi
call fcn.1401a7240
mov ebx, dword [r14 + 0x28]
mov edx, SafeArrayGetElement
mov rcx, r15
mov r9d, ebx
mov r8d, eax
mov edi, eax
mov dword [rsp + 0x20], ebp
call fcn.1401583c0
mov r9d, ebx
mov r8d, r12d
mov edx, 0x34
mov rcx, r15
mov dword [rsp + 0x20], edi
call fcn.1401583c0
mov r9d, edi
or r8d, 0xffffffff
mov edx, r12d
mov rcx, rsi
call fcn.14014d600
mov byte [r14 + 0x35], 0x89
jmp 0x1401a873d
bt ecx, 0xd
jae 0x1401a7e9f
mov rax, qword [rsp + 0x78]
mov r8d, dword [rsp + 0x30]
mov dword [rsp + 0x38], 0x89
mov ecx, dword [rax + 0x1c]
mov r12, qword [rax + 0x28]
mov dword [rsp + 0x70], ebp
mov r13, r12
mov eax, ecx
test ecx, ecx
je 0x1401a7c9d
cmp dword [r13 + 0xc], r8d
jne 0x1401a7c95
mov rdx, qword [rsp + 0x108]
test qword [r13 + 0x28], rdx
jne 0x1401a7c95
cmp dword [r13 + 0x10], 0xffffffff
jne 0x1401a7c95
test byte [r13 + 0x18], 0x24
jne 0x1401a7ca8
add r13, 0x38
dec eax
jne 0x1401a7c73
mov rdx, qword [rsp + 0x108]
mov r13, rbp
test ecx, ecx
je 0x1401a7cd6
nop dword [rax]
cmp dword [r12 + 0xc], r8d
jne 0x1401a7cce
test qword [r12 + 0x28], rdx
jne 0x1401a7cce
cmp dword [r12 + 0x10], 0xffffffff
jne 0x1401a7cce
test byte [r12 + 0x18], 0x18
jne 0x1401a7cd9
add r12, 0x38
dec ecx
jne 0x1401a7cb0
mov r12, rbp
test edi, edi
je 0x1401a7ce6
mov rax, r13
mov r13, r12
mov r12, rax
test r13, r13
je 0x1401a7d58
mov rbx, qword [r13]
lea r8, [rsp + 0x34]
mov rcx, rsi
mov rdx, qword [rbx + 0x18]
mov dword [rsp + 0xf8], 0x2e2c2d2f
call fcn.14015a660
movzx ecx, byte [rbx]
mov r9d, dword [rsp + 0x68]
movzx edx, byte [rsp + rcx + 0xab]
mov r8d, dword [rsp + 0x30]
mov rcx, r15
mov edi, eax
mov dword [rsp + 0x20], eax
call fcn.1401583c0
mov r8d, 1
mov edx, edi
mov rcx, rsi
call fcn.14014d830
mov edx, dword [rsp + 0x34]
call fcn.14014d960
mov rdx, r13
mov rcx, r14
call fcn.140151260
mov edi, dword [rsp + 0x64]
jmp 0x1401a7d78
mov r9d, dword [rsp + 0x68]
mov edx, 0x41
mov eax, 0x3f
test edi, edi
mov rcx, r15
mov dword [rsp + 0x20], ebp
cmovne edx, eax
call fcn.1401583c0
test r12, r12
je 0x1401a7de0
mov rbx, qword [r12]
inc dword [rsi + 0x58]
mov eax, dword [rsi + 0x58]
mov rdx, qword [rbx + 0x18]
mov r8d, eax
mov rcx, rsi
mov dword [rsp + 0x70], eax
call fcn.14015a700
movzx r11d, byte [rbx]
cmp r11b, 0x4f
je 0x1401a7dc2
cmp r11b, 0x4d
je 0x1401a7dc2
mov eax, 0x4f
mov r10d, 0x4d
test edi, edi
cmovne r10d, eax
mov dword [rsp + 0x38], r10d
jmp 0x1401a7dd5
mov eax, 0x50
mov ecx, 0x4e
test edi, edi
cmovne eax, ecx
mov dword [rsp + 0x38], eax
mov rdx, r12
mov rcx, r14
call fcn.140151260
mov ecx, dword [r15 + 0x34]
test edi, edi
sete al
mov dword [r14 + 0x3c], ecx
add al, 0x42
mov byte [r14 + 0x35], al
mov eax, dword [rsp + 0x30]
mov dword [r14 + 0x38], eax
test r13, r13
jne 0x1401a7e0a
test r12, r12
jne 0x1401a7e0a
mov byte [r14 + 0x36], 1
mov ebx, dword [rsp + 0x38]
cmp ebx, 0x89
je 0x1401a8737
movzx eax, byte [rsi + 0x25]
test al, al
jne 0x1401a7e2b
inc dword [rsi + 0x58]
mov r13d, dword [rsi + 0x58]
jmp 0x1401a7e38
dec al
movzx eax, al
mov byte [rsi + 0x25], al
mov r13d, dword [rsi + rax*4 + 0x28]
mov r12d, dword [rsp + 0x30]
mov r9d, r13d
mov edx, 0x3d
mov rcx, r15
mov r8d, r12d
mov dword [rsp + 0x20], ebp
call fcn.1401583c0
mov r9d, r13d
or r8d, 0xffffffff
mov edx, r12d
mov rcx, rsi
call fcn.14014d600
mov r9d, dword [rsp + 0x68]
mov r8d, dword [rsp + 0x70]
mov edx, ebx
mov rcx, r15
mov dword [rsp + 0x20], r13d
call fcn.1401583c0
mov r11, qword [r15 + 8]
test r11, r11
je 0x1401a873d
movsxd rax, dword [r15 + 0x34]
lea rcx, [rax + rax*2]
mov byte [r11 + rcx*8 - 0x15], 0x6b
jmp 0x1401a873d
test ecx, 0x30000
je 0x1401a83a9
test byte [rsp + 0x100], 1
mov eax, dword [r14 + 0x20]
mov rbx, qword [r14 + 0x10]
movsxd rdi, dword [r14 + 4]
mov dword [rsp + 0x38], eax
mov rax, qword [rbx + 0x10]
mov eax, dword [rax + rdi*4]
mov dword [rsp + 0x40], ebp
mov r13, rbp
mov qword [rsp + 0x50], rbp
mov edx, ebp
mov dword [rsp + 0xf8], eax
je 0x1401a7ef5
bt ecx, 0x18
jae 0x1401a7ef5
cmp dword [rbx + 8], edi
jle 0x1401a7ef5
mov edx, 1
mov dword [rsp + 0x40], edx
bt ecx, 0x14
jae 0x1401a7f32
mov r9, qword [rsp + 0x108]
mov edx, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
mov r8d, eax
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.140181e10
mov edx, 1
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0xf8]
test dword [r14], 0x200000
je 0x1401a7f69
mov r9, qword [rsp + 0x108]
mov edx, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
mov r8d, eax
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], 0x24
call fcn.140181e10
mov edx, 1
mov r13, rax
mov r9, qword [rsp + 0x108]
mov r8, qword [rsp + 0x78]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edx
mov rcx, rsi
mov rdx, r14
call fcn.1401a7410
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsi]
mov dword [rsp + 0xf8], eax
call fcn.1401544d0
mov qword [rsp + 0x80], rax
mov eax, dword [r14 + 0x28]
mov dword [rsp + 0x68], eax
cmp edi, dword [rbx + 8]
jge 0x1401a7fdc
mov rcx, qword [rbx + 0x48]
mov edx, ebp
cmp byte [rdi + rcx], dl
sete dl
cmp dword [rsp + 0x64], edx
jne 0x1401a7fdc
mov rcx, qword [rsp + 0x50]
mov rax, r13
mov r13, rcx
mov qword [rsp + 0x50], rax
jmp 0x1401a7fe1
mov rax, qword [rsp + 0x50]
test r13, r13
je 0x1401a7ff8
test byte [r13 + 0x18], 0x28
jne 0x1401a7ff8
mov dword [rsp + 0x70], ebp
mov ecx, 1
jmp 0x1401a8001
mov ecx, 1
mov dword [rsp + 0x70], ecx
test rax, rax
je 0x1401a8010
test byte [rax + 0x18], 0x28
mov dword [rsp + 0x5c], ebp
je 0x1401a8014
mov dword [rsp + 0x5c], ecx
test r13, r13
jne 0x1401a8021
mov dword [rsp + 0x58], ebp
test edi, edi
jle 0x1401a8025
mov dword [rsp + 0x58], ecx
mov ebx, edi
test r13, r13
je 0x1401a80a4
mov rax, qword [r13]
mov ebx, dword [rsp + 0xf8]
mov rcx, rsi
mov rax, qword [rax + 0x18]
add ebx, edi
mov rdx, rax
mov r8d, ebx
mov qword [rsp + 0x40], rax
call fcn.14015a700
mov r9d, dword [rsp + 0x68]
mov r8d, ebx
mov rbx, qword [rsp + 0x40]
mov rcx, r15
mov rdx, rbx
call fcn.14015a4a0
mov r9, qword [rsp + 0x48]
test r9, r9
je 0x1401a80d4
movzx edx, byte [rdi + r9]
mov rcx, rbx
call fcn.140159d80
mov r9, qword [rsp + 0x48]
cmp al, 0x62
jne 0x1401a808c
mov byte [rdi + r9], al
movzx edx, byte [rdi + r9]
mov rcx, rbx
call fcn.14014d3f0
test eax, eax
je 0x1401a80d4
mov byte [rdi + r9], 0x62
jmp 0x1401a80d4
cmp dword [rsp + 0x40], ebp
je 0x1401a80d7
mov r9d, dword [rsp + 0xf8]
xor r8d, r8d
mov rcx, r15
lea edx, [r8 + 0xa]
add r9d, edi
mov dword [rsp + 0x20], ebp
call fcn.1401583c0
mov dword [rsp + 0x70], ebp
mov dword [rsp + 0x58], 1
lea ebx, [rdi + 1]
mov r9, qword [rsp + 0x48]
mov edx, dword [rsp + 0xf8]
mov r8d, ebx
mov rcx, rsi
call fcn.14015d390
movsxd rdx, dword [rsp + 0x64]
movsxd rax, dword [rsp + 0x70]
movsxd rcx, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x68]
mov r8d, dword [rsp + 0x38]
lea rcx, [rax + rcx*2]
mov dword [rsp + 0x28], ebx
mov ebx, dword [rsp + 0xf8]
lea rax, [rdx + rcx*2]
lea rcx, [0x140000000]
mov dword [rsp + 0x20], ebx
movzx edx, byte [rax + rcx + 0x246b18]
mov rcx, r15
call fcn.140162e20
mov rax, qword [rsp + 0x50]
mov dword [rsp + 0x40], edi
test rax, rax
je 0x1401a81dd
mov rax, qword [rax]
add ebx, edi
mov r8d, 1
mov rax, qword [rax + 0x18]
mov edx, ebx
mov rcx, rsi
mov qword [rsp + 0x40], rax
call fcn.14014d6f0
mov rdx, qword [rsp + 0x40]
mov r8d, ebx
call fcn.14015a700
mov r9d, dword [rsp + 0x68]
mov rdx, qword [rsp + 0x40]
mov r8d, ebx
mov rcx, r15
call fcn.14015a4a0
mov rbx, qword [rsp + 0x80]
test rbx, rbx
je 0x1401a81bf
movzx edx, byte [rdi + rbx]
mov rcx, qword [rsp + 0x40]
call fcn.140159d80
cmp al, 0x62
jne 0x1401a81a9
mov byte [rdi + rbx], al
movzx edx, byte [rdi + rbx]
mov rcx, qword [rsp + 0x40]
call fcn.14014d3f0
test eax, eax
je 0x1401a81bf
mov byte [rdi + rbx], 0x62
mov edx, dword [rsp + 0xf8]
lea eax, [rdi + 1]
mov r9, rbx
mov r8d, eax
mov rcx, rsi
mov dword [rsp + 0x40], eax
call fcn.14015d390
jmp 0x1401a81e5
mov rbx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsi]
call fcn.1401434c0
mov rcx, qword [rsi]
mov rdx, rbx
call fcn.1401434c0
mov r12, qword [rsp + 0x50]
mov eax, dword [r15 + 0x34]
mov dword [r14 + 0x3c], eax
test r12, r12
jne 0x1401a8217
test edi, edi
jne 0x1401a8217
mov eax, ebp
jmp 0x1401a821c
mov eax, 1
movsxd rcx, dword [rsp + 0x64]
cdqe
inc rcx
imul rcx, rax
lea rax, [0x140000000]
movzx edx, byte [rcx + rax + 0x24694c]
cmp edx, 0x89
je 0x1401a8287
mov eax, dword [rsp + 0x40]
mov r9d, dword [rsp + 0x68]
mov r8d, dword [rsp + 0x38]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0xf8]
mov rcx, r15
mov dword [rsp + 0x20], eax
call fcn.140162e20
mov r11, qword [r15 + 8]
test r11, r11
je 0x1401a8287
mov eax, dword [rsp + 0x5c]
cmp eax, dword [rsp + 0x64]
movsxd rax, dword [r15 + 0x34]
lea rcx, [rax + rax*2]
setne dl
mov byte [r11 + rcx*8 - 0x15], dl
movzx eax, byte [rsi + 0x25]
test al, al
jne 0x1401a8297
inc dword [rsi + 0x58]
mov ebx, dword [rsi + 0x58]
jmp 0x1401a82a3
dec al
movzx eax, al
mov byte [rsi + 0x25], al
mov ebx, dword [rsi + rax*4 + 0x28]
test dword [r14], 0x300000
je 0x1401a82e5
mov r9d, edi
mov edi, dword [rsp + 0x38]
mov edx, 0x1c
mov rcx, r15
mov r8d, edi
mov dword [rsp + 0x20], ebx
call fcn.1401583c0
mov r9d, dword [rsp + 0x88]
mov r8d, ebx
mov edx, 0x49
mov rcx, r15
mov dword [rsp + 0x20], ebp
call fcn.1401583c0
jmp 0x1401a82e9
mov edi, dword [rsp + 0x38]
mov edx, ebx
mov rcx, rsi
call fcn.14014d960
mov rdx, r13
mov rcx, r14
call fcn.140151260
mov rdx, r12
mov rcx, r14
call fcn.140151260
cmp dword [rsp + 0x34], ebp
jne 0x1401a8374
movzx eax, byte [rsi + 0x25]
test al, al
jne 0x1401a8320
inc dword [rsi + 0x58]
mov r13d, dword [rsi + 0x58]
jmp 0x1401a832d
dec al
movzx eax, al
mov byte [rsi + 0x25], al
mov r13d, dword [rsi + rax*4 + 0x28]
mov r9d, r13d
mov r8d, edi
mov edx, 0x48
mov rcx, r15
mov dword [rsp + 0x20], ebp
call fcn.1401583c0
mov r12d, dword [rsp + 0x30]
mov r9d, r13d
or r8d, 0xffffffff
mov rcx, rsi
mov edx, r12d
call fcn.14014d600
mov r9d, r13d
mov r8d, r12d
mov edx, 0x30
mov rcx, r15
mov dword [rsp + 0x20], ebp
call fcn.1401583c0
jmp 0x1401a837c
mov r12d, dword [rsp + 0x30]
mov r13d, ebp
test dword [r14], 0x4000000
je 0x1401a8393
mov byte [r14 + 0x35], 0x89
mov dword [r14 + 0x38], edi
jmp 0x1401a873d
cmp dword [rsp + 0x64], ebp
mov dword [r14 + 0x38], edi
sete al
add al, 0x42
mov byte [r14 + 0x35], al
jmp 0x1401a873d
bt ecx, 0x1c
jae 0x1401a86ef
inc dword [rsi + 0x58]
mov r13d, dword [rsi + 0x58]
mov rcx, r15
mov dword [rsp + 0x5c], ebp
mov dword [rsp + 0x34], ebp
mov dword [rsp + 0x70], r13d
call fcn.1401584c0
mov dword [rsp + 0x58], ebp
mov dword [rsp + 0x40], eax
mov rax, qword [r14 + 0x10]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0xf0]
mov byte [r14 + 0x35], 3
mov dword [r14 + 0x38], r13d
mov edi, dword [rax + 0x24]
mov qword [rsp + 0x50], rcx
cmp edi, 1
jle 0x1401a86e1
mov rcx, qword [rsi]
sub edi, ebx
dec edi
mov edx, edi
imul edx, edx, 0x58
add edx, 0x60
call fcn.140154320
mov rbx, rax
mov qword [rsp + 0x48], rax
test rax, rax
jne 0x1401a8434
mov rax, qword [rsp + 0x108]
jmp 0x1401a8909
mov rdx, qword [rsp + 0x80]
lea eax, [rdi + 1]
lea rcx, [rbx + 8]
mov r8d, 0x58
mov word [rbx + 2], ax
mov word [rbx], ax
call fcn.14010c9b0
mov r13, qword [rsp + 0xf0]
mov r13, qword [r13 + 0x10]
add r13, 8
cmp edi, 1
jl 0x1401a84b2
mov r12, r14
add rbx, 0x60
sub r12, qword [rsp + 0x48]
nop word [rax + rax]
movzx edx, byte [r12 + rbx + 0x2c]
mov rcx, rbx
mov r8d, 0x58
imul rdx, rdx, 0x58
add rdx, r13
call fcn.14010c9b0
add rbx, 0x58
dec rdi
jne 0x1401a8480
mov rbx, qword [rsp + 0x48]
movzx r12d, word [rsp + 0x100]
mov r13d, dword [rsp + 0x70]
and r12w, 8
mov word [rsp + 0x100], r12w
jne 0x1401a84f0
mov eax, dword [rsi + 0x58]
xor r8d, r8d
mov dword [rsp + 0x20], ebp
inc eax
lea edx, [r8 + 0xa]
lea ecx, [rax + 1]
mov r9d, eax
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x34], ecx
mov dword [rsi + 0x58], ecx
mov rcx, r15
call fcn.1401583c0
xor r8d, r8d
mov r9d, r13d
mov rcx, r15
lea edx, [r8 + 7]
mov dword [rsp + 0x20], ebp
call fcn.1401583c0
mov r8, qword [rsp + 0x50]
mov r13d, ebp
mov dword [rsp + 0x38], eax
cmp dword [r8 + 0x1c], ebp
jle 0x1401a865c
mov eax, dword [rsp + 0x30]
mov rdi, rbp
mov ecx, 0x200
mov edx, 0xf0
nop dword [rax]
mov r8, qword [r8 + 0x28]
cmp dword [rdi + r8 + 0xc], eax
je 0x1401a8547
cmp word [rdi + r8 + 0x18], cx
jne 0x1401a8642
mov r8, qword [rdi + r8]
mov word [rsp + 0x20], dx
xor r9d, r9d
mov rdx, rbx
mov rcx, rsi
call fcn.1401a8be0
mov r12, rax
test rax, rax
je 0x1401a8634
movzx ecx, byte [r14 + 0x34]
mov r9d, dword [rsp + 0xf8]
lea r8, [rax + 0x40]
mov word [rsp + 0x28], bp
mov dword [rsp + 0x20], ecx
mov rdx, rbx
mov rcx, rsi
call fcn.14016a7f0
cmp word [rsp + 0x100], bp
jne 0x1401a85fc
mov rcx, qword [rsp + 0x50]
mov r9d, dword [rsp + 0x30]
mov ebx, r13d
mov eax, dword [rcx + 0x1c]
mov ecx, dword [rsp + 0x34]
dec eax
mov dword [rsp + 0x20], ecx
mov rcx, rsi
cmp r13d, eax
mov eax, 0xffffffff
cmove ebx, eax
mov r8d, eax
mov rax, qword [rsp + 0x80]
mov rdx, qword [rax + 0x18]
call fcn.140185020
mov r9d, dword [r15 + 0x34]
mov r8d, dword [rsp + 0x5c]
add r9d, 2
mov edx, 0x6b
mov rcx, r15
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], eax
call fcn.140162e20
mov rbx, qword [rsp + 0x48]
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x70]
mov edx, 2
mov rcx, r15
mov dword [rsp + 0x20], ebp
call fcn.1401583c0
mov eax, dword [rsp + 0x58]
cmp byte [r12 + 0xb], bpl
mov ecx, 1
cmovne eax, ecx
mov rcx, r12
mov dword [rsp + 0x58], eax
call fcn.14015e240
mov eax, dword [rsp + 0x30]
mov edx, 0xf0
mov ecx, 0x200
mov r8, qword [rsp + 0x50]
inc r13d
add rdi, 0x38
cmp r13d, dword [r8 + 0x1c]
jl 0x1401a8530
mov eax, dword [rsp + 0x38]
mov edx, dword [r15 + 0x34]
cmp edx, eax
jle 0x1401a8672
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r15 + 8]
mov dword [rax + rcx*8 + 4], edx
mov r9d, dword [r14 + 0x24]
mov edi, 1
xor r8d, r8d
mov rcx, r15
mov edx, edi
mov dword [rsp + 0x20], ebp
call fcn.1401583c0
mov r11, qword [r15 + 0x48]
test r11, r11
je 0x1401a86ac
movsxd rax, dword [rsp + 0x40]
lea rax, [rax*4 + 4]
sub r11, rax
mov eax, dword [r15 + 0x34]
mov dword [r11], eax
mov rax, qword [rsp + 0xf0]
cmp dword [rax + 0x24], edi
jle 0x1401a86c4
mov rcx, qword [rsi]
mov rdx, rbx
call fcn.1401434c0
cmp dword [rsp + 0x58], ebp
jne 0x1401a86d7
mov rdx, qword [rsp + 0x68]
mov rcx, r14
call fcn.140151260
mov r12d, dword [rsp + 0x30]
mov r13d, ebp
jmp 0x1401a8742
mov rbx, qword [rax + 0x10]
mov qword [rsp + 0x48], rbx
jmp 0x1401a84b7
mov r12d, dword [rsp + 0x30]
mov r9d, dword [rsp + 0x68]
lea rdx, [0x140000000]
movsxd rcx, edi
mov r8d, r12d
mov dword [rsp + 0x20], ebp
movzx eax, byte [rcx + rdx + 0x246b04]
mov dword [r14 + 0x38], r12d
mov byte [r14 + 0x35], al
movzx edx, byte [rcx + rdx + 0x246b20]
mov rcx, r15
call fcn.1401583c0
mov byte [r14 + 0x36], 1
inc eax
mov dword [r14 + 0x3c], eax
jmp 0x1401a873a
mov r12d, eax
mov r13d, ebp
mov edi, 1
mov r8, qword [rsp + 0x78]
mov ecx, ebp
mov rax, qword [r8 + 8]
mov edx, dword [rax]
test edx, edx
jle 0x1401a8766
add rax, 4
cmp dword [rax], r12d
je 0x1401a87a5
inc ecx
add rax, 4
cmp ecx, edx
jl 0x1401a8757
mov rax, rbp
mov r12, qword [rsp + 0x108]
mov edi, dword [r8 + 0x1c]
mov rbx, qword [r8 + 0x28]
not rax
and r12, rax
test edi, edi
jle 0x1401a87e6
mov r15, qword [rsp + 0xf0]
mov ebp, dword [rsp + 0x88]
test byte [rbx + 0x1a], 6
jne 0x1401a87d2
test qword [rbx + 0x30], r12
je 0x1401a87ad
mov byte [r15 + 0xb], 1
jmp 0x1401a87d2
mov rax, rdi
shl rax, cl
jmp 0x1401a8769
cmp dword [r14 + 0x18], 0
mov rdx, qword [rbx]
je 0x1401a87bd
test byte [rdx + 2], 1
je 0x1401a87d2
mov r9d, 8
mov r8d, ebp
mov rcx, rsi
call fcn.14019f480
or byte [rbx + 0x1a], 4
dec edi
add rbx, 0x38
test edi, edi
jg 0x1401a8792
mov r15, qword [rsp + 0x90]
xor ebp, ebp
mov ebx, dword [r14 + 0x18]
test ebx, ebx
je 0x1401a88d2
mov eax, dword [r15 + 0x34]
mov dword [r14 + 0x30], eax
movsxd rdi, dword [r15 + 0x34]
cmp dword [r15 + 0x38], edi
jg 0x1401a8810
mov rcx, r15
call fcn.140158320
test eax, eax
jne 0x1401a883c
mov rax, qword [r15 + 8]
inc dword [r15 + 0x34]
lea rcx, [rdi + rdi*2]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
mov word [rax + rcx*8], 7
lea rcx, [rsi + 0x80]
mov eax, 0xa
mov edx, dword [rcx]
test edx, edx
je 0x1401a8874
cmp byte [rcx - 8], 0
je 0x1401a886a
movzx eax, byte [rsi + 0x25]
cmp al, 8
jae 0x1401a8866
movzx eax, al
mov dword [rsi + rax*4 + 0x28], edx
inc byte [rsi + 0x25]
mov byte [rcx - 8], 0
mov rax, qword [rsp + 0x98]
mov dword [rcx], ebp
add rcx, 0x18
dec rax
mov qword [rsp + 0x98], rax
jne 0x1401a8848
mov r14, qword [rsp + 0x78]
mov edi, ebp
cmp dword [r14 + 0x1c], 0
mov rbx, qword [r14 + 0x28]
jle 0x1401a88d2
mov ebp, dword [rsp + 0x88]
nop
test byte [rbx + 0x1a], 6
jne 0x1401a88c4
test qword [rbx + 0x30], r12
jne 0x1401a88c4
mov rdx, qword [rbx]
mov r9d, 8
mov r8d, ebp
mov rcx, rsi
call fcn.14019f480
or byte [rbx + 0x1a], 4
inc edi
add rbx, 0x38
cmp edi, dword [r14 + 0x1c]
jl 0x1401a88a0
xor ebp, ebp
test r13d, r13d
je 0x1401a8906
movzx ecx, byte [rsi + 0x25]
cmp cl, 8
jae 0x1401a8906
lea rax, [rsi + 0x70]
cmp dword [rax + 0x10], r13d
je 0x1401a8902
inc ebp
add rax, 0x18
cmp ebp, 0xa
jl 0x1401a88e4
movzx eax, cl
mov dword [rsi + rax*4 + 0x28], r13d
inc byte [rsi + 0x25]
jmp 0x1401a8906
mov byte [rax + 8], 1
mov rax, r12
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret