Function at 0x140012960
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov edi, dword [rcx + 8]
mov rsi, rcx
movzx eax, byte [rdi + 0x29]
cmp eax, 5
ja case.default.0x14001298f
lea rcx, [0x140000000]
mov edx, dword [rcx + rax*4 + 0x12bb8]
add rdx, rcx
jmp rdx
mov edx, dword [rdi + 0x80]
xor eax, eax
mov qword [rdi + 0x38], rax
mov dword [rdi + 0x40], eax
test byte [rdx + 4], 3
je 0x1400129ae
mov rcx, rdi
call fcn.1400127e0
mov eax, dword [rdi + 0x80]
mov edx, dword [rax + 0x2c]
test byte [rdx + 4], 3
je 0x1400129c5
mov rcx, rdi
call fcn.1400127e0
mov eax, dword [rdi + 0x8c]
add eax, 4
cmp eax, 0xfffffff6
jbe 0x1400129e7
mov edx, dword [rdi + 0x88]
test byte [rdx + 4], 3
je 0x1400129e7
mov rcx, rdi
call fcn.1400127e0
mov rcx, rdi
call fcn.140012890
mov byte [rdi + 0x29], 1
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp dword [rdi + 0x38], 0
je 0x140012a22
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp fcn.140014140
mov byte [rdi + 0x29], 2
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp dword [rdi + 0xfc], 0
jne 0x140012b46
mov rdx, rsi
mov rcx, rdi
call fcn.140012360
xor eax, eax
mov byte [rdi + 0x29], 3
mov dword [rdi + 0x2c], eax
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov ecx, dword [rdi + 0x2c]
mov r8d, 0xffffffff
mov rax, qword [rdi]
mov ebx, dword [rdi + 0x20]
lea rdx, [rax + rcx*4]
lea eax, [rcx + 1]
mov rcx, rdi
mov dword [rdi + 0x2c], eax
call fcn.140012e80
mov eax, dword [rdi + 8]
cmp dword [rdi + 0x2c], eax
jbe 0x140012a96
mov byte [rdi + 0x29], 4
mov eax, dword [rdi + 0x20]
sub eax, ebx
add dword [rdi + 0x4c], eax
mov eax, 0xa
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov edx, dword [rdi + 0x34]
mov r8d, 0x28
mov ebx, dword [rdi + 0x20]
mov rcx, rdi
call fcn.140012e80
mov ecx, dword [rdi + 0x20]
mov dword [rdi + 0x34], eax
sub ecx, ebx
add dword [rdi + 0x4c], ecx
mov eax, eax
cmp dword [rax], 0
jne 0x140012b22
mov edx, dword [rdi + 8]
mov eax, edx
shr eax, 2
cmp dword [rdi + 0xc], eax
ja 0x140012af8
cmp edx, 0x1ff
jbe 0x140012af8
shr edx, 1
mov rcx, rsi
call fcn.1400148a0
cmp dword [rdi + 0x44], 0
je 0x140012b19
mov word [rdi + 0x29], 0x105
mov eax, 0x190
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
xor eax, eax
mov byte [rdi + 0x29], 0
mov dword [rdi + 0x48], eax
mov eax, 0x190
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp dword [rdi + 0x44], 0
je 0x140012b86
cmp dword [rdi + 0xfc], 0
je 0x140012b5b
mov eax, 0x7fffff00
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rcx, rsi
call fcn.1400126e0
mov eax, dword [rdi + 0x4c]
cmp eax, 0x64
jbe 0x140012b71
add eax, 0xffffff9c
mov dword [rdi + 0x4c], eax
mov eax, 0x64
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp byte [rdi + 0x2a], 0
jne 0x140012b9e
mov edx, dword [rdi + 0x100]
mov rcx, rsi
mov rdx, qword [rdx + 0x20]
call fcn.140015360
mov rbx, qword [rsp + 0x30]
xor eax, eax
mov rsi, qword [rsp + 0x38]
mov dword [rdi + 0x48], eax
mov byte [rdi + 0x29], 0
add rsp, 0x20
pop rdi
ret