Function at 0x1400a5c10
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x198
mov rax, qword [0x1401c6138]
xor rax, rsp
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x1f0]
xor r15d, r15d
mov rsi, rcx
mov qword [rsp + 0x48], rcx
mov dword [rsp + 0x58], r9d
mov r12d, r15d
mov byte [rsp + 0x30], r12b
lea rcx, [rsp + 0xd0]
mov dword [rsp + 0x3c], r8d
mov r14d, r9d
mov qword [rsp + 0x60], rdx
mov ebp, r8d
mov qword [rsp + 0x70], rax
mov rdi, rdx
mov dword [rsp + 0x38], r15d
mov qword [rsp + 0x50], rcx
test rsi, rsi
je 0x1400a6630
cmp dword [rsi], 0xbab1e
jne 0x1400a6630
cmp byte [rsi + 0x183], r12b
je 0x1400a5ca4
lea eax, [r15 + 8]
jmp 0x1400a607b
test r14d, r14d
jns 0x1400a5cb3
mov eax, 0xa
jmp 0x1400a607b
mov qword [rsp + 0x190], rbx
mov rbx, qword [rsi + 8]
test rbx, rbx
je 0x1400a5d40
nop dword [rax]
nop dword [rax + rax]
lea rdx, [rsp + 0xa8]
mov rcx, rbx
call fcn.1400a4030
mov r10d, eax
lea rdx, [rsp + 0xa8]
mov r9d, r15d
mov ecx, 1
mov r8, 0xffffffffffffffff
test r10d, ecx
je 0x1400a5d0d
mov rax, qword [rdx]
cmp rax, r8
jae 0x1400a5d0d
inc r12d
mov r8, rax
mov eax, ecx
rol eax, 0x10
test r10d, eax
je 0x1400a5d22
cmp qword [rdx], 0xffffffffffffffff
jae 0x1400a5d22
inc r12d
jmp 0x1400a5d28
cmp r8, 0xffffffffffffffff
je 0x1400a5d37
inc r9d
rol ecx, 1
add rdx, 8
cmp r9d, 5
jb 0x1400a5cf3
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x1400a5cd0
lea rdx, [rsp + 0x34]
mov rcx, rsi
call fcn.1400a5b10
mov eax, dword [rsp + 0x34]
test eax, eax
js 0x1400a5d61
cmp eax, r14d
cmovl r14d, eax
mov dword [rsp + 0x58], r14d
cmp byte [rsp + 0x200], r15b
lea eax, [r12 + rbp]
lea ecx, [rax + 1]
cmove ecx, eax
cmp ecx, 0xa
jbe 0x1400a5d9e
shl rcx, 4
call qword [fcn.14012a720]
mov qword [rsp + 0x50], rax
mov rbx, rax
test rax, rax
jne 0x1400a5d97
lea eax, [rbx + 3]
jmp 0x1400a6073
mov byte [rsp + 0x30], 1
jmp 0x1400a5da6
lea rbx, [rsp + 0xd0]
xor r8d, r8d
mov qword [rsp + 0x188], r13
mov dword [rsp + 0x40], r8d
test r12d, r12d
je 0x1400a5ee5
mov r13, qword [rsi + 8]
test r13, r13
je 0x1400a5ee5
nop dword [rax]
lea rdx, [rsp + 0xa8]
mov rcx, r13
call fcn.1400a4030
xor r8d, r8d
lea r14, [rsp + 0xa8]
mov esi, r8d
mov ebp, eax
jmp 0x1400a5e05
mov rbx, qword [rsp + 0x50]
bt ebp, esi
mov rdx, 0xffffffffffffffff
mov edi, r8d
jae 0x1400a5e3b
mov rcx, qword [r14]
cmp rcx, rdx
jae 0x1400a5e3b
mov eax, r15d
mov rdx, rcx
add rax, rax
mov edi, 0x29
inc r15d
mov qword [rbx + rax*8], rcx
mov ecx, 0x300
mov word [rbx + rax*8 + 8], cx
lea ecx, [rsi + 0x10]
movzx eax, cl
bt ebp, eax
jae 0x1400a5e85
mov rbx, qword [r14]
cmp rbx, 0xffffffffffffffff
jae 0x1400a5e85
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
or edi, 0x32
call fcn.1400a6b90
mov rcx, qword [rsp + 0x50]
mov edx, 0x10
mov eax, r15d
add rax, rax
inc r15d
mov dword [rsp + 0x40], r15d
mov qword [rcx + rax*8], rbx
mov word [rcx + rax*8 + 8], dx
jmp 0x1400a5e93
mov dword [rsp + 0x40], r15d
mov rbx, rdx
cmp rdx, 0xffffffffffffffff
je 0x1400a5ec4
mov rax, qword [rsp + 0x48]
mov r8d, edi
mov rcx, rbx
mov rdx, qword [rax + 0x178]
call fcn.1400a68e0
test eax, eax
jne 0x1400a6054
inc esi
add r14, 8
mov r8d, eax
cmp esi, 5
jb 0x1400a5e00
mov r13, qword [r13 + 8]
test r13, r13
je 0x1400a5ed7
mov rbx, qword [rsp + 0x50]
jmp 0x1400a5dd0
mov rsi, qword [rsp + 0x48]
mov ebp, dword [rsp + 0x3c]
mov rdi, qword [rsp + 0x60]
mov r14d, r8d
mov ebx, 0x400
test ebp, ebp
je 0x1400a609c
add rdi, 8
nop dword [rax]
movzx edx, word [rdi]
movzx eax, dl
and al, 1
neg al
movzx eax, dl
sbb ecx, ecx
and ecx, 0x29
mov esi, ecx
or esi, 4
and al, 2
cmove esi, ecx
test dl, 4
je 0x1400a5fc7
mov r13, qword [rdi - 8]
mov ecx, 0xb
or esi, 0x32
call fcn.14012a720
mov rcx, rax
mov rbx, rax
mov dword [rax + 2], 0x32335f32
mov dword [rax + 7], 0x6c6c64
mov word [rax], 0x7357
mov byte [rax + 6], 0x2e
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rbp, rax
test rax, rax
jne 0x1400a5f6c
mov rcx, rbx
call fcn.1400a6640
mov rbp, rax
mov rcx, rbx
call fcn.14012a718
test rbp, rbp
je 0x1400a5fbe
mov ecx, 5
call fcn.14012a720
mov rdx, rax
mov rcx, rbp
mov rbx, rax
mov word [rax + 3], 0x64
mov word [rax], 0x6573
mov byte [rax + 2], 0x6e
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rbx
mov rbp, rax
call fcn.14012a718
test rbp, rbp
je 0x1400a5fbe
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r13
call rbp
mov ebp, dword [rsp + 0x3c]
mov ebx, 0x400
mov rcx, qword [rdi - 8]
mov r8d, esi
mov rsi, qword [rsp + 0x48]
mov rdx, qword [rsi + 0x178]
call fcn.1400a68e0
test eax, eax
jne 0x1400a6054
mov rax, qword [rdi - 8]
xor r8d, r8d
mov r13, qword [rsp + 0x50]
mov edx, r15d
shl rdx, 4
add rdx, r13
mov qword [rdx], rax
movzx eax, r8w
mov word [rdx + 8], r8w
movzx ecx, word [rdi]
test cl, 1
je 0x1400a601e
mov r9d, 0x300
mov word [rdx + 8], r9w
mov eax, r9d
movzx ecx, word [rdi]
test cl, 2
je 0x1400a602d
or ax, bx
mov word [rdx + 8], ax
movzx ecx, word [rdi]
test cl, 4
je 0x1400a603a
or ax, 0x10
mov word [rdx + 8], ax
inc r15d
inc r14d
add rdi, 0x10
mov dword [rsp + 0x40], r15d
cmp r14d, ebp
jb 0x1400a5f00
jmp 0x1400a60a1
cmp byte [rsp + 0x30], 0
je 0x1400a6066
mov rcx, qword [rsp + 0x50]
call qword [fcn.14012a718]
mov eax, 4
mov r13, qword [rsp + 0x188]
mov rbx, qword [rsp + 0x190]
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.140118e10
add rsp, 0x198
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r13, qword [rsp + 0x50]
test r15d, r15d
jne 0x1400a615a
movzx ebx, byte [rsp + 0x200]
test bl, bl
je 0x1400a65ac
mov dword [rsp + 0x34], r8d
call fcn.1400a2be0
mov rdi, rax
test rax, rax
je 0x1400a6184
mov ecx, 0x19
call fcn.14012a720
mov rdx, rax
mov rcx, rdi
mov rbx, rax
mov dword [rax], 0x57415357
mov dword [rax + 4], 0x46746961
mov word [rax + 0x10], 0x656c
mov word [rax + 0xb], 0x6c75
mov word [rax + 8], 0x726f
mov word [rax + 0x13], 0x6576
mov byte [rax + 0x12], 0x45
mov word [rax + 0xe], 0x7069
mov byte [rax + 0xa], 0x4d
mov word [rax + 0x16], 0x7374
mov byte [rax + 0x15], 0x6e
mov byte [rax + 0xd], 0x74
mov byte [rax + 0x18], 0
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rbx
mov rdi, rax
call fcn.14012a718
test rdi, rdi
je 0x1400a6184
mov r9d, dword [rsp + 0x58]
lea rdx, [rsi + 0x178]
xor ebx, ebx
xor r8d, r8d
mov dword [rsp + 0x20], ebx
lea ecx, [rbx + 1]
call rdi
jmp 0x1400a6186
xor r8d, r8d
mov edx, r15d
mov rcx, r13
call fcn.1400cf660
mov dword [rsp + 0x34], eax
test eax, eax
jns 0x1400a617a
mov eax, 0xc
jmp 0x1400a606b
jle 0x1400a60bf
mov dword [rsp + 0x38], eax
xor ebx, ebx
mov r14d, ebx
test ebp, ebp
je 0x1400a6364
mov r15d, dword [rsp + 0x34]
mov rbp, rbx
nop dword [rax]
lea ecx, [r12 + r14]
movzx edi, bx
add rcx, rcx
movsx eax, word [r13 + rcx*8 + 0xa]
mov ecx, 0xb
mov r13, qword [rsp + 0x60]
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x78], ebx
mov r13, qword [rbp + r13]
call fcn.14012a720
mov rcx, rax
mov rbx, rax
mov dword [rax + 2], 0x32335f32
mov dword [rax + 7], 0x6c6c64
mov word [rax], 0x7357
mov byte [rax + 6], 0x2e
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rsi, rax
test rax, rax
jne 0x1400a6202
mov rcx, rbx
call fcn.1400a6640
mov rsi, rax
mov rcx, rbx
call fcn.14012a718
test rsi, rsi
je 0x1400a62e2
mov ecx, 0x15
call fcn.14012a720
mov rdx, rax
mov rcx, rsi
mov rbx, rax
mov word [rax + 0xe], 0x7645
mov dword [rax + 2], 0x756e4541
mov dword [rax + 0x10], 0x73746e65
mov dword [rax + 9], 0x726f7774
mov word [rax], 0x5357
mov word [rax + 6], 0x4e6d
mov byte [rax + 0x14], 0
mov byte [rax + 0xd], 0x6b
mov byte [rax + 8], 0x65
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rbx
mov rsi, rax
call fcn.14012a718
test rsi, rsi
je 0x1400a62e2
lea r8, [rsp + 0x78]
xor edx, edx
mov rcx, r13
call rsi
test eax, eax
jne 0x1400a62e2
mov r8d, dword [rsp + 0x78]
mov ebx, 0
test r8b, 0x29
mov ecx, ebx
mov eax, r8d
setne cl
movzx edx, cx
or dx, 4
and al, 0x32
mov eax, r8d
cmove dx, cx
movzx ecx, dx
or cx, 2
and al, 4
cmove cx, dx
movzx edi, cx
cmp qword [rsp + 0x70], rbx
je 0x1400a62e4
test r15d, r15d
jne 0x1400a62e4
test r8d, r8d
je 0x1400a62e4
mov rsi, qword [rsp + 0x48]
xor r8d, r8d
inc dword [rsp + 0x38]
mov rcx, r13
mov rdx, qword [rsi + 0x178]
call fcn.1400a68e0
jmp 0x1400a633e
xor ebx, ebx
mov rsi, qword [rsp + 0x48]
xor r8d, r8d
mov rcx, r13
mov rdx, qword [rsi + 0x178]
call fcn.1400a68e0
test r15d, r15d
je 0x1400a633e
mov r8d, dword [rsp + 0x68]
mov ecx, 0x300
mov eax, r8d
and eax, ecx
movzx ecx, di
or cx, 1
test eax, eax
mov eax, r8d
cmove cx, di
movzx edx, cx
or dx, 4
and al, 0x10
cmove dx, cx
movzx edi, dx
or di, 2
and r8d, 0x400
cmove di, dx
mov rax, qword [rsp + 0x60]
inc r14d
mov r13, qword [rsp + 0x50]
mov word [rax + rbp + 0xa], di
add rbp, 0x10
cmp r14d, dword [rsp + 0x3c]
jb 0x1400a61a0
mov r15d, dword [rsp + 0x40]
test r12d, r12d
je 0x1400a64f5
mov rax, qword [rsi + 8]
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1400a64f5
mov r15, rax
nop dword [rax]
nop word [rax + rax]
lea rdx, [rsp + 0xa8]
mov rcx, r15
call fcn.1400a4030
mov r15d, dword [rsp + 0x34]
lea r14, [rsp + 0xa8]
mov r13d, eax
mov ebp, ebx
mov esi, 1
nop word [rax + rax]
lea ecx, [rbp + 0x10]
mov edx, esi
bts edx, ecx
test r13d, edx
je 0x1400a64d9
mov r12, qword [r14]
mov ecx, 0xb
mov dword [rsp + 0x78], ebx
call fcn.14012a720
mov rcx, rax
mov rbx, rax
mov dword [rax + 2], 0x32335f32
mov dword [rax + 7], 0x6c6c64
mov word [rax], 0x7357
mov byte [rax + 6], 0x2e
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdi, rax
test rax, rax
jne 0x1400a6418
mov rcx, rbx
call fcn.1400a6640
mov rdi, rax
mov rcx, rbx
call fcn.14012a718
test rdi, rdi
je 0x1400a64ac
mov ecx, 0x15
call fcn.14012a720
mov rdx, rax
mov rcx, rdi
mov rbx, rax
mov word [rax + 0xe], 0x7645
mov dword [rax + 2], 0x756e4541
mov dword [rax + 0x10], 0x73746e65
mov dword [rax + 9], 0x726f7774
mov word [rax], 0x5357
mov word [rax + 6], 0x4e6d
mov byte [rax + 0x14], 0
mov byte [rax + 0xd], 0x6b
mov byte [rax + 8], 0x65
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rbx
mov rdi, rax
call fcn.14012a718
test rdi, rdi
je 0x1400a64ac
lea r8, [rsp + 0x78]
xor edx, edx
mov rcx, r12
call rdi
test eax, eax
jne 0x1400a64ac
cmp qword [rsp + 0x70], 0
je 0x1400a64ac
test r15d, r15d
jne 0x1400a64ac
cmp dword [rsp + 0x78], r15d
je 0x1400a64ac
inc dword [rsp + 0x38]
mov rax, qword [rsp + 0x48]
xor r8d, r8d
mov rcx, qword [r14]
mov rdx, qword [rax + 0x178]
call fcn.1400a68e0
inc ebp
rol esi, 1
add r14, 8
mov ebx, 0
cmp ebp, 5
jb 0x1400a63c0
mov r15, qword [rsp + 0x60]
mov r15, qword [r15 + 8]
mov qword [rsp + 0x60], r15
test r15, r15
jne 0x1400a6390
mov r15d, dword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
mov ecx, 0xb
mov rsi, qword [rax + 0x178]
call fcn.14012a720
mov rcx, rax
mov rbx, rax
mov dword [rax + 2], 0x32335f32
mov dword [rax + 7], 0x6c6c64
mov word [rax], 0x7357
mov byte [rax + 6], 0x2e
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rdi, rax
test rax, rax
jne 0x1400a6541
mov rcx, rbx
call fcn.1400a6640
mov rdi, rax
mov rcx, rbx
call fcn.14012a718
test rdi, rdi
je 0x1400a659f
mov ecx, 0xe
call fcn.14012a720
mov rdx, rax
mov rcx, rdi
mov rbx, rax
mov dword [rax + 1], 0x65524153
mov dword [rax + 6], 0x76457465
mov byte [rax], 0x57
mov word [rax + 0xb], 0x746e
mov byte [rax + 0xa], 0x65
mov byte [rax + 0xd], 0
mov byte [rax + 5], 0x73
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rbx
mov rdi, rax
call fcn.14012a718
test rdi, rdi
je 0x1400a659f
mov rcx, rsi
call rdi
mov rsi, qword [rsp + 0x48]
movzx ebx, byte [rsp + 0x200]
cmp byte [rsp + 0x30], 0
je 0x1400a65be
mov rcx, qword [rsp + 0x50]
call qword [fcn.14012a718]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400a65ce
mov eax, dword [rsp + 0x38]
mov dword [rcx], eax
cmp byte [rsp + 0x1f8], 0
je 0x1400a6629
test r15d, r15d
jne 0x1400a6629
test bl, bl
jne 0x1400a6629
xor r15d, r15d
cmp dword [rsi], 0xbab1e
mov dword [rsp + 0x34], r15d
jne 0x1400a6629
cmp byte [rsi + 0x183], r15b
jne 0x1400a6629
lea rdx, [rsp + 0x34]
mov rcx, rsi
call fcn.1400a5b10
test eax, eax
jne 0x1400a6629
mov eax, dword [rsp + 0x34]
test eax, eax
je 0x1400a6629
mov ecx, dword [rsp + 0x58]
cmp eax, ecx
jg 0x1400a661f
test eax, eax
jns 0x1400a6621
mov eax, ecx
movsxd rcx, eax
call fcn.1400cfe80
xor eax, eax
jmp 0x1400a606b
mov eax, 1
jmp 0x1400a607b