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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov r13, rcx
xor esi, esi
mov qword [rsp + 0x88], rsi
mov ebx, esi
mov r8, qword [rcx + 0x16]
mov rdx, qword [rcx + 0x1e]
sub rdx, r8
movabs rbp, 0x2aaaaaaaaaaaaaab
mov rax, rbp
imul rdx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140031827
mov edi, esi
lea rcx, [r8 + rdi]
call fcn.140030df0
cmp al, 0x10
je 0x1400315e9
inc rbx
add rdi, 0xc
mov r8, qword [r13 + 0x16]
mov rcx, qword [r13 + 0x1e]
sub rcx, r8
mov rax, rbp
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rbx, rdx
jb 0x1400315ad
jmp 0x140031827
mov ecx, 0x27
call fcn.14006b1c0
mov r9, rax
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x80], rax
lea rcx, [rbx + rbx*2]
mov rax, qword [r13 + 0x16]
mov qword [r9 + 0xf], rsi
mov qword [r9 + 0x17], rsi
mov qword [r9 + 0x1f], rsi
mov rdx, qword [rax + rcx*4]
movzx eax, byte [rdx + 1]
mov ecx, 0xf
cmp al, cl
cmova eax, ecx
movzx r8d, al
mov rcx, r9
call fcn.140089700
nop
mov qword [rsp + 0x98], rsi
mov r8, qword [r13 + 0x16]
mov rcx, qword [r13 + 0x1e]
sub rcx, r8
mov rax, rbp
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140031827
mov r9, rsi
mov qword [rsp + 0x80], rsi
mov ebx, 7
lea rcx, [r9 + r8]
call fcn.140030df0
cmp al, 0x11
jne 0x1400317d9
mov r12, qword [rsp + 0x80]
add r12, qword [r13 + 0x16]
mov ecx, 0xdc
call fcn.14006b1c0
mov rcx, rax
mov qword [rsp + 0x90], rax
lea rbp, [rax + 0x1c]
mov qword [rbp + 0x10], rsi
mov qword [rbp + 0x18], rbx
mov word [rbp], si
lea r15, [rax + 0x3c]
mov qword [r15 + 0x10], rsi
mov qword [r15 + 0x18], rbx
mov word [r15], si
lea r14, [rax + 0x5c]
mov qword [r14 + 0x10], rsi
mov qword [r14 + 0x18], rbx
mov word [r14], si
lea rsi, [rax + 0x7c]
xor eax, eax
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rbx
mov word [rsi], ax
lea rdi, [rcx + 0x9c]
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rbx
mov word [rdi], ax
lea rbx, [rcx + 0xbc]
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], 7
mov word [rbx], ax
mov rdx, qword [r12]
movzx eax, byte [rdx + 1]
mov r8d, 0x1c
cmp al, r8b
cmova eax, r8d
movzx r8d, al
call fcn.140089700
mov rax, qword [rsp + 0x90]
movzx edx, byte [rax + 0x10]
mov r8, rbp
mov rcx, r12
call fcn.140030c4c
mov rbp, qword [rsp + 0x90]
movzx edx, byte [rbp + 0x11]
mov r8, r15
mov rcx, r12
call fcn.140030c4c
movzx edx, byte [rbp + 0x17]
mov r8, r14
mov rcx, r12
call fcn.140030c4c
movzx edx, byte [rbp + 0x18]
mov r8, rsi
mov rcx, r12
call fcn.140030c4c
movzx edx, byte [rbp + 0x19]
mov r8, rdi
mov rcx, r12
call fcn.140030c4c
movzx edx, byte [rbp + 0x1a]
mov r8, rbx
mov rcx, r12
call fcn.140030c4c
nop
mov qword [rsp + 0x20], rbp
mov rax, qword [rsp + 0x88]
mov rdx, qword [rax + 0x17]
cmp qword [rax + 0x1f], rdx
je 0x1400317ba
mov qword [rdx], rbp
add qword [rax + 0x17], 8
jmp 0x1400317c8
lea r8, [rsp + 0x20]
lea rcx, [rax + 0xf]
call fcn.140012320
mov ebx, 7
movabs rbp, 0x2aaaaaaaaaaaaaab
xor esi, esi
mov r10, qword [rsp + 0x98]
inc r10
mov qword [rsp + 0x98], r10
mov r9, qword [rsp + 0x80]
add r9, 0xc
mov qword [rsp + 0x80], r9
mov r8, qword [r13 + 0x16]
mov rcx, qword [r13 + 0x1e]
sub rcx, r8
mov rax, rbp
imul rcx
sar rdx, 1
mov rcx, rdx
shr rcx, 0x3f
add rdx, rcx
cmp r10, rdx
jb 0x140031675
mov rax, qword [rsp + 0x88]
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret