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

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x38
lea r13, [rdx + 0x44]
mov qword [rsp + 0x70], rbp
xor r12d, r12d
mov qword [rsp + 0x30], r14
mov rsi, rdx
mov rdi, rcx
mov rcx, r13
mov edx, 0x8000
movabs r15, 0x7fffffffffff
lea ebx, [r12 + 0xe]
nop dword [rax]
mov eax, dword [rsi + 0x30]
and eax, 0x1f000000
cmp eax, 0xb000000
je 0x14003faea
cmp dword [rsi + 0x38], 0
lea r14, [rsi + 0x38]
mov r8d, r12d
mov rdx, rsi
setne r8b
mov rcx, rdi
call fcn.140041c90
test eax, eax
je 0x1400402f1
lea rbp, [rsi + 8]
jmp 0x14003fde3
mov rax, qword [rsi + 8]
lea rbp, [rsi + 8]
mov qword [rsp + 0x88], rbp
cmp rax, 0xffffffffffffffff
je 0x14003fb17
sar rax, 0x2f
cmp eax, 0xfffffff2
jae 0x14003fb50
movsd xmm0, qword [rbp]
mov rcx, r13
ucomisd xmm0, xmm0
jnp 0x14003fb50
cmp dword [rsi + 0x38], 0
lea r14, [rsi + 0x38]
jne 0x1400402d5
cmp word [rsi + 0x34], dx
jae 0x14003fb50
cmp dword [rcx], 0
je 0x14003fb46
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.140041c90
test eax, eax
jne 0x14003fde3
mov eax, 0x7fff
jmp 0x14003ffae
lea r9, [rsp + 0x80]
mov rdx, rsi
lea r8, [rsp + 0x24]
mov rcx, rdi
call fcn.140044080
mov rcx, qword [rdi + 0x20]
movzx r12d, ax
mov dword [rsp + 0x20], eax
movzx r9d, byte [rcx + r12*8 + 5]
mov byte [rsp + 0x78], r9b
cmp r9b, 0x1a
jne 0x14003fb8c
mov r15, qword [rcx + r12*8 + 8]
jmp 0x14003fb90
mov r15, qword [rsi + 0x28]
mov ecx, dword [rsi + 0x38]
lea r14, [rsi + 0x38]
test ecx, ecx
jne 0x14003fc87
mov rbx, qword [r15]
sar rbx, 0x2f
cmp ebx, 0xfffffff2
jae 0x14003fbb0
lea ebx, [rcx + 0xe]
jmp 0x14003fbb2
not ebx
lea r8, [rdi - 0x1e0]
cmp r15, r8
jne 0x14003fbf8
mov edx, 0x1a
mov rcx, rdi
call fcn.140055c20
mov ecx, 0x889
mov word [rdi + 0xb8], r12w
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005ef20
xor r12d, r12d
mov ebp, 0x7fff
jmp 0x14003fc31
cmp r9b, 0x38
mov word [rdi + 0xb8], r12w
mov eax, 0x4380
mov ecx, 0x4280
cmove ax, cx
xor r12d, r12d
or ax, bx
mov word [rdi + 0xba], r12w
mov rcx, rdi
mov word [rdi + 0xbc], ax
call fcn.14005ef20
mov ebp, eax
mov edx, dword [rsp + 0x24]
movzx ecx, bp
cmp ecx, edx
jae 0x14003fc52
mov rcx, rdi
call fcn.140055fb0
movzx ecx, byte [rsp + 0x80]
mov byte [rdi + 0xb6], cl
test ebx, ebx
jne 0x14003fef3
cmp dword [r13], ebx
je 0x14003fef8
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.140041c90
test eax, eax
je 0x14003fef8
mov rbp, qword [rsp + 0x88]
jmp 0x14003fdd4
mov rax, qword [rsi]
movabs rdx, 0x7fffffffffff
and rax, rdx
mov r13, qword [rax + 0x20]
movzx eax, byte [rsi + 0x37]
and eax, 0x1f
sub eax, 4
cmp eax, 8
ja 0x14003fcbd
mov dword [rsp + 0x88], 1
test ecx, 0x1f000000
jne 0x14003fcc8
mov dword [rsp + 0x88], 0
mov edx, dword [rsp + 0x24]
cmp r12d, edx
jae 0x14003fced
mov rcx, rdi
call fcn.140055fb0
movzx eax, byte [rsp + 0x80]
movzx r9d, byte [rsp + 0x78]
mov byte [rdi + 0xb6], al
cmp qword [r15], 0xffffffffffffffff
jne 0x140040068
cmp dword [rsi + 0x44], 0
je 0x14003fd58
test r13, r13
je 0x14003fd58
mov rdx, qword [rdi - 0x128]
mov rcx, r13
call fcn.140015cd0
test rax, rax
je 0x14003fd58
cmp qword [rax], 0xffffffffffffffff
je 0x14003fd58
movzx r13d, byte [rsp + 0x78]
mov eax, 0x4380
cmp r13b, 0x38
mov word [rdi + 0xb8], r12w
mov ecx, 0x4280
cmove ax, cx
xor r12d, r12d
mov rcx, rdi
mov word [rdi + 0xba], r12w
mov word [rdi + 0xbc], ax
call fcn.14005ef20
jmp 0x14003fdad
movzx r13d, byte [rsp + 0x78]
cmp r13b, 0x3a
jne 0x14003fdaa
lea rbx, [rdi - 0x1e0]
mov edx, 0x1a
mov r8, rbx
mov rcx, rdi
call fcn.140055c20
cmp r15, rbx
mov word [rdi + 0xb8], r12w
mov ecx, 0x989
mov word [rdi + 0xba], ax
mov edx, 0x889
cmove cx, dx
mov word [rdi + 0xbc], cx
mov rcx, rdi
call fcn.14005ef20
xor r12d, r12d
cmp dword [rsi + 0x44], 0
je 0x14003ffce
mov r8d, 1
mov rdx, rsi
mov rcx, rdi
call fcn.140041c90
test eax, eax
je 0x14003ffce
lea r13, [rsi + 0x44]
movabs r15, 0x7fffffffffff
mov ebx, 0xe
mov ecx, dword [rsi + 0x40]
and ecx, 0x1f000000
cmp ecx, 0x8000000
je 0x14003ff13
cmp dword [rsi + 0x3c], 0x7fff
jne 0x14003fece
cmp dword [r14], 0
jne 0x14003fece
mov eax, dword [rsi + 0x30]
and eax, 0x1f000000
cmp eax, 0xc000000
jne 0x14003fece
mov rax, qword [rsi]
and rax, r15
cmp byte [rax + 0xa], 3
jne 0x14003fece
mov edx, 0x8000
cmp ecx, 0xb000000
jne 0x14003fed3
mov ecx, dword [rsi + 0x34]
mov eax, ecx
and eax, 0x1f000000
cmp eax, 0x4000000
jne 0x14003fed3
cmp cx, dx
jae 0x14003fed3
mov rdx, qword [rsi + 8]
mov rcx, qword [rsi + 0x18]
and rdx, r15
and rcx, r15
call fcn.140015cd0
mov r9, qword [rax]
mov rdx, r9
sar rdx, 0x2f
lea ecx, [rdx + 4]
cmp ecx, 0xfffffff6
jbe 0x14003fe9e
cmp edx, 0xfffffff2
jae 0x14003fe87
mov edx, ebx
jmp 0x14003fe89
not edx
and r9, r15
mov r8d, edx
mov rdx, r9
mov rcx, rdi
call fcn.140055950
mov edx, eax
jmp 0x14003feca
cmp edx, 0xfffffff2
jae 0x14003feb3
movsd xmm1, qword [rax]
mov rcx, rdi
call fcn.140055b50
mov edx, eax
jmp 0x14003feca
lea eax, [rdx + 3]
cmp eax, 1
ja 0x14003fece
not edx
mov eax, edx
shl edx, 0x18
sub edx, eax
add edx, 0x7fff
test edx, edx
jne 0x14003ff0c
mov edx, 0x8000
sub dword [r13], 1
mov rcx, r13
mov eax, dword [rsi + 0x40]
mov dword [rsi + 0x30], eax
mov rax, qword [rsi + 0x18]
mov qword [rsi], rax
je 0x1400402e3
jmp 0x14003fab0
cmp ebx, 2
ja 0x14003ff05
mov ebp, ebx
shl ebp, 0x18
sub ebp, ebx
add ebp, 0x7fff
mov eax, ebp
jmp 0x14003ffae
mov eax, edx
jmp 0x14003ffae
cmp dword [r14], 0
lea rax, [0x140003297]
lea rdx, [0x1400031a0]
mov rcx, rdi
cmovne rdx, rax
call fcn.140044c40
mov rcx, qword [rdi + 0x80]
mov r8, qword [rdi + 0xa0]
mov r9d, eax
mov edx, r9d
mov r10, qword [rcx + 0x20]
mov ecx, dword [rsi + 0x40]
mov dword [r8 + r9*4], ecx
mov ecx, dword [rsi + 0x30]
mov dword [r8 + r9*4 + 8], ecx
movabs rcx, 0xfffb800000000000
mov eax, dword [rsi + 0x34]
mov dword [r8 + r9*4 + 0xc], eax
mov rax, qword [rsi + 0x18]
and rax, r15
or rax, rcx
mov rcx, rdi
mov qword [r10 + r9*8], rax
mov rax, qword [rsi]
mov qword [r10 + r9*8 + 0x10], rax
mov rax, qword [rbp]
mov qword [r10 + r9*8 + 0x18], rax
mov eax, dword [r14]
test eax, eax
je 0x14003ffc6
mov dword [r8 + r9*4 + 0x10], eax
mov r8d, 3
mov rax, qword [rsi + 0x10]
mov qword [r10 + r9*8 + 0x20], rax
call fcn.14003f9a0
xor eax, eax
mov r14, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x70]
add rsp, 0x38
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov r8d, 2
jmp 0x14003ffa7
lea rax, [rdi - 0x1e0]
cmp r15, rax
jne 0x140040048
mov ecx, dword [rsi + 0x34]
mov eax, ecx
shr eax, 0x18
and eax, 0x1f
sub eax, 0xf
cmp eax, 4
ja 0x140040008
mov word [rdi + 0xb8], cx
mov rcx, rdi
mov dword [rdi + 0xba], 0x5b0e01d3
call fcn.14005ef20
mov ecx, eax
movzx eax, word [rsi + 0x30]
mov edx, 0x3b09
mov word [rdi + 0xba], cx
mov rcx, rdi
mov word [rdi + 0xbc], dx
mov word [rdi + 0xb8], ax
call fcn.14005ef20
cmp r13b, 0x38
mov ebp, r12d
mov r15d, eax
mov ebx, r12d
setne bpl
add bp, 0x42
jmp 0x14004018d
mov ebx, dword [rsp + 0x88]
cmp r13b, 0x38
mov r15d, dword [rsp + 0x20]
mov ebp, r12d
setne bpl
add bp, 0x42
jmp 0x14004018d
xor eax, eax
mov r8d, r12d
cmp r9b, 0x38
mov rcx, rdi
setne al
add ax, 0x42
movzx edx, ax
movzx ebp, ax
call fcn.1400606e0
test eax, eax
jne 0x140040182
cmp byte [rsp + 0x78], 0x3a
jne 0x1400400ca
lea r8, [rdi - 0x1e0]
mov rcx, rdi
lea edx, [rax + 0x1a]
call fcn.140055c20
mov ecx, 0x989
mov word [rdi + 0xb8], r12w
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005ef20
cmp dword [rsi + 0x44], 0
je 0x140040122
test r13, r13
jne 0x14004012e
movzx eax, word [rsi + 0x30]
mov rcx, rdi
mov word [rdi + 0xb8], ax
mov dword [rdi + 0xba], 0x450b0005
call fcn.14005ef20
lea edx, [r13 + 0xb]
mov rcx, rdi
mov ebx, eax
call fcn.140055ab0
mov ecx, 0x88b
mov word [rdi + 0xb8], bx
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005ef20
mov ebx, dword [rsp + 0x88]
xor r12d, r12d
jmp 0x140040188
mov rax, qword [r15]
sar rax, 0x2f
cmp eax, 0xfffffff2
jae 0x140040141
mov ecx, 0xe
jmp 0x140040145
mov ecx, eax
not ecx
movzx eax, bp
mov word [rdi + 0xb8], r12w
shl ax, 8
xor r12d, r12d
or ax, cx
mov word [rdi + 0xba], r12w
mov ecx, 0x80
or ax, cx
mov rcx, rdi
mov word [rdi + 0xbc], ax
call fcn.14005ef20
mov ebx, dword [rsp + 0x88]
jmp 0x140040188
xor r12d, r12d
mov ebx, r12d
mov r15d, dword [rsp + 0x20]
mov ecx, dword [r14]
mov eax, ecx
shr eax, 0x18
and eax, 0x1f
sub eax, 0xf
cmp eax, 4
ja 0x1400401bc
mov word [rdi + 0xb8], cx
mov rcx, rdi
mov dword [rdi + 0xba], 0x5b0e01d3
call fcn.14005ef20
mov dword [r14], eax
movzx eax, byte [r14 + 3]
add bp, 8
movzx r8d, word [r14]
and al, 0x1f
movzx edx, al
mov eax, 0x100
movzx ecx, bp
imul ecx, eax
mov word [rdi + 0xb8], r15w
mov word [rdi + 0xba], r8w
or dx, cx
mov rcx, rdi
mov word [rdi + 0xbc], dx
call fcn.14005ef20
test ebx, ebx
jne 0x14004020f
movzx eax, byte [r14 + 3]
and eax, 0x1f
sub eax, 4
cmp eax, 8
ja 0x14004022c
movzx eax, word [rsi + 0x30]
mov rcx, rdi
mov word [rdi + 0xb8], ax
mov dword [rdi + 0xba], 0x58000000
call fcn.14005ef20
mov ecx, dword [rsi + 0x34]
mov eax, ecx
and eax, 0x1f000000
cmp eax, 0x4000000
jne 0x1400402c9
mov eax, 0x8000
cmp cx, ax
jae 0x14004027e
mov rax, qword [rdi + 0x20]
movzx ecx, cx
mov rdx, qword [rax + rcx*8 + 8]
lea rax, [rdi - 0x130]
nop
cmp qword [rax], rdx
je 0x14004027e
inc r12d
add rax, 8
cmp r12d, 5
jbe 0x140040260
mov byte [rdi + 0xb5], 1
jmp 0x14003ffac
movzx eax, word [rsi + 0x30]
mov rcx, rdi
mov word [rdi + 0xb8], ax
mov dword [rdi + 0xba], 0x3e09000a
call fcn.14005ef20
xor edx, edx
mov rcx, rdi
mov ebx, eax
call fcn.140055a00
mov ecx, 0x4d10
mov word [rdi + 0xb8], bx
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005ef20
mov byte [rdi + 0xb5], 1
jmp 0x14003ffac
mov edx, 0x11
mov rcx, rdi
call fcn.14001a090
int3
mov edx, 0x13
mov rcx, rdi
call fcn.14001a090
int3
mov edx, 0x12
mov rcx, rdi
call fcn.14001a090
int3