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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x30
mov rsi, rdx
mov qword [rsp + 0x70], r12
mov edx, dword [rdx + 0x30]
mov rdi, rcx
mov ebp, 0xe
mov r15d, 0x8000
movabs r13, 0x7fffffffffff
lea rcx, [rsi + 0x38]
xor ebx, ebx
and edx, 0x1f000000
mov r14, rcx
cmp edx, 0xb000000
je 0x14003e9ea
cmp dword [rcx], ebx
mov r8d, ebx
mov rdx, rsi
mov rcx, rdi
setne r8b
call fcn.140040a60
test eax, eax
je 0x14003f121
jmp 0x14003eca6
mov rax, qword [rsi + 8]
cmp rax, 0xffffffffffffffff
je 0x14003ea0a
sar rax, 0x2f
cmp eax, 0xfffffff2
jae 0x14003ea41
movsd xmm0, qword [rsi + 8]
ucomisd xmm0, xmm0
jp 0x14003ea0a
je 0x14003ea41
cmp dword [rsi + 0x38], 0
jne 0x14003f113
cmp word [rsi + 0x34], r15w
jae 0x14003ea41
cmp dword [rsi + 0x44], 0
je 0x14003ea37
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.140040a60
test eax, eax
jne 0x14003eca6
mov eax, 0x7fff
jmp 0x14003ee00
lea r9, [rsp + 0x80]
mov rdx, rsi
lea r8, [rsp + 0x24]
mov rcx, rdi
call fcn.140042d90
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 0x14003ea7d
mov r15, qword [rcx + r12*8 + 8]
jmp 0x14003ea81
mov r15, qword [rsi + 0x28]
mov ecx, dword [rsi + 0x38]
test ecx, ecx
jne 0x14003eb65
mov rbx, qword [r15]
sar rbx, 0x2f
cmp ebx, 0xfffffff2
jae 0x14003ea9c
mov ebx, ebp
jmp 0x14003ea9e
not ebx
lea r8, [rdi - 0x1e0]
cmp r15, r8
jne 0x14003eae1
mov edx, 0x1a
mov rcx, rdi
call fcn.1400547f0
mov ecx, 0x889
mov word [rdi + 0xb8], r12w
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005e650
mov ebp, 0x7fff
jmp 0x14003eb18
cmp r9b, 0x38
mov word [rdi + 0xb8], r12w
mov eax, 0x4380
mov ecx, 0x4280
cmove ax, cx
xor ebp, ebp
or ax, bx
mov word [rdi + 0xba], bp
mov rcx, rdi
mov word [rdi + 0xbc], ax
call fcn.14005e650
mov ebp, eax
mov edx, dword [rsp + 0x24]
movzx ecx, bp
cmp ecx, edx
jae 0x14003eb39
mov rcx, rdi
call fcn.140054b70
movzx ecx, byte [rsp + 0x80]
mov byte [rdi + 0xb6], cl
test ebx, ebx
jne 0x14003ed4c
cmp dword [rsi + 0x44], ebx
je 0x14003ed51
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.140040a60
test eax, eax
je 0x14003ed51
jmp 0x14003ec9b
mov rax, qword [rsi]
and rax, r13
mov r13, qword [rax + 0x20]
movzx eax, byte [rsi + 0x37]
and eax, 0x1f
sub eax, 4
cmp eax, 8
ja 0x14003eb91
mov dword [rsp + 0x88], 1
test ecx, 0x1f000000
jne 0x14003eb98
mov dword [rsp + 0x88], ebx
mov edx, dword [rsp + 0x24]
cmp r12d, edx
jae 0x14003ebbd
mov rcx, rdi
call fcn.140054b70
movzx eax, byte [rsp + 0x80]
movzx r9d, byte [rsp + 0x78]
mov byte [rdi + 0xb6], al
cmp qword [r15], 0xffffffffffffffff
jne 0x14003ee88
cmp dword [rsi + 0x44], 0
je 0x14003ec1f
test r13, r13
je 0x14003ec1f
mov rdx, qword [rdi - 0x128]
mov rcx, r13
call fcn.140015eb0
test rax, rax
je 0x14003ec1f
cmp qword [rax], 0xffffffffffffffff
je 0x14003ec1f
cmp byte [rsp + 0x78], 0x38
mov eax, 0x4380
mov ecx, 0x4280
mov word [rdi + 0xb8], r12w
cmove ax, cx
mov word [rdi + 0xba], bx
mov rcx, rdi
mov word [rdi + 0xbc], ax
call fcn.14005e650
jmp 0x14003ec6e
cmp byte [rsp + 0x78], 0x3a
jne 0x14003ec6e
lea rbx, [rdi - 0x1e0]
mov edx, 0x1a
mov r8, rbx
mov rcx, rdi
call fcn.1400547f0
mov ecx, 0x989
mov word [rdi + 0xb8], r12w
mov edx, 0x889
mov word [rdi + 0xba], ax
cmp r15, rbx
cmove cx, dx
mov word [rdi + 0xbc], cx
mov rcx, rdi
call fcn.14005e650
xor ebx, ebx
cmp dword [rsi + 0x44], 0
je 0x14003ee1c
mov r8d, 1
mov rdx, rsi
mov rcx, rdi
call fcn.140040a60
test eax, eax
je 0x14003ee1c
movabs r13, 0x7fffffffffff
mov r15d, 0x8000
mov ebp, 0xe
mov edx, dword [rsi + 0x40]
and edx, 0x1f000000
cmp edx, 0x8000000
je 0x14003ed65
cmp dword [rsi + 0x3c], 0x7fff
mov rcx, r14
jne 0x14003ed30
cmp dword [r14], 0
jne 0x14003ed30
mov eax, dword [rsi + 0x30]
and eax, 0x1f000000
cmp eax, 0xc000000
jne 0x14003ed30
mov rax, qword [rsi]
and rax, r13
cmp byte [rax + 0xa], 3
jne 0x14003ed30
cmp edx, 0xb000000
jne 0x14003ed30
mov edx, dword [rsi + 0x34]
mov eax, edx
and eax, 0x1f000000
cmp eax, 0x4000000
jne 0x14003ed30
cmp dx, r15w
jae 0x14003ed30
mov rdx, qword [rsi + 8]
mov rcx, qword [rsi + 0x18]
and rdx, r13
and rcx, r13
call fcn.140015eb0
mov rdx, rax
mov rcx, rdi
call fcn.14003e910
mov rcx, r14
test eax, eax
jne 0x14003ee00
sub dword [rsi + 0x44], 1
mov rax, qword [rsi + 0x18]
mov edx, dword [rsi + 0x40]
mov qword [rsi], rax
mov dword [rsi + 0x30], edx
je 0x14003f12f
jmp 0x14003e9b6
cmp ebx, 2
ja 0x14003ed5e
mov ebp, ebx
shl ebp, 0x18
sub ebp, ebx
add ebp, 0x7fff
mov eax, ebp
jmp 0x14003ee00
cmp dword [rsi + 0x38], 0
lea rax, [0x140003297]
lea rdx, [0x1400031a0]
mov rcx, rdi
cmovne rdx, rax
call fcn.140043950
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, r13
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 [rsi + 8]
mov qword [r10 + r9*8 + 0x18], rax
mov eax, dword [rsi + 0x38]
test eax, eax
je 0x14003ee14
mov dword [r8 + r9*4 + 0x10], eax
mov r8d, 3
mov rax, qword [rsi + 0x10]
mov qword [r10 + r9*8 + 0x20], rax
call fcn.14003e8b0
xor eax, eax
mov r12, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov r8d, 2
jmp 0x14003edf9
lea rax, [rdi - 0x1e0]
cmp r15, rax
jne 0x14003efb1
mov edx, dword [rsi + 0x34]
mov eax, edx
shr eax, 0x18
and eax, 0x1f
sub eax, 0xf
cmp eax, 4
ja 0x14003ee5a
mov rcx, rdi
mov dword [rdi + 0xba], 0x5b0e01d3
mov word [rdi + 0xb8], dx
call fcn.14005e650
mov edx, eax
movzx ecx, word [rsi + 0x30]
mov eax, 0x3b09
mov word [rdi + 0xb8], cx
mov rcx, rdi
mov word [rdi + 0xbc], ax
mov word [rdi + 0xba], dx
call fcn.14005e650
mov r15d, eax
jmp 0x14003efbd
cmp r9b, 0x38
mov r8d, r12d
mov rcx, rdi
setne bl
add bx, 0x42
movzx edx, bx
call fcn.14005feb0
movzx r14d, byte [rsp + 0x78]
test eax, eax
jne 0x14003efa6
cmp r14b, 0x3a
jne 0x14003eeea
lea r8, [rdi - 0x1e0]
mov rcx, rdi
lea edx, [rax + 0x1a]
call fcn.1400547f0
mov ecx, 0x989
mov word [rdi + 0xb8], r12w
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005e650
cmp dword [rsi + 0x44], 0
je 0x14003ef42
test r13, r13
jne 0x14003ef50
movzx eax, word [rsi + 0x30]
mov rcx, rdi
mov word [rdi + 0xb8], ax
mov dword [rdi + 0xba], 0x450b0005
call fcn.14005e650
lea edx, [r13 + 0xb]
mov rcx, rdi
mov ebx, eax
call fcn.140054680
mov ecx, 0x88b
mov word [rdi + 0xb8], bx
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005e650
mov ebx, dword [rsp + 0x88]
mov r15d, dword [rsp + 0x20]
jmp 0x14003efc3
mov rax, qword [r15]
sar rax, 0x2f
cmp eax, 0xfffffff2
jae 0x14003ef63
mov ecx, 0xe
jmp 0x14003ef69
not ax
movzx ecx, ax
shl bx, 8
mov eax, 0x80
or bx, cx
mov word [rdi + 0xb8], r12w
or bx, ax
xor ebp, ebp
mov rcx, rdi
mov word [rdi + 0xbc], bx
mov word [rdi + 0xba], bp
call fcn.14005e650
mov ebx, dword [rsp + 0x88]
mov r15d, dword [rsp + 0x20]
jmp 0x14003efc5
mov r15d, dword [rsp + 0x20]
xor ebp, ebp
mov ebx, ebp
jmp 0x14003efc5
mov ebx, dword [rsp + 0x88]
mov r15d, dword [rsp + 0x20]
movzx r14d, byte [rsp + 0x78]
xor ebp, ebp
mov r8d, dword [rsi + 0x38]
mov eax, r8d
shr eax, 0x18
mov edx, r8d
and eax, 0x1f
sub eax, 0xf
cmp eax, 4
ja 0x14003f000
mov rcx, rdi
mov dword [rdi + 0xba], 0x5b0e01d3
mov word [rdi + 0xb8], r8w
call fcn.14005e650
mov edx, eax
mov dword [rsi + 0x38], eax
movzx r8d, ax
shr edx, 0x18
mov ecx, 0x4b00
and dx, 0x1f
mov word [rdi + 0xb8], r15w
mov eax, 0x4a00
mov word [rdi + 0xba], r8w
cmp r14b, 0x38
cmove cx, ax
or dx, cx
mov rcx, rdi
mov word [rdi + 0xbc], dx
call fcn.14005e650
test ebx, ebx
jne 0x14003f04e
movzx eax, byte [rsi + 0x3b]
and eax, 0x1f
sub eax, 4
cmp eax, 8
ja 0x14003f06b
movzx eax, word [rsi + 0x30]
mov rcx, rdi
mov word [rdi + 0xb8], ax
mov dword [rdi + 0xba], 0x58000000
call fcn.14005e650
mov ecx, dword [rsi + 0x34]
mov eax, ecx
and eax, 0x1f000000
cmp eax, 0x4000000
jne 0x14003f107
mov eax, 0x8000
cmp cx, ax
jae 0x14003f0bc
mov rax, qword [rdi + 0x20]
movzx ecx, cx
mov rdx, qword [rax + rcx*8 + 8]
lea rax, [rdi - 0x130]
nop dword [rax]
cmp qword [rax], rdx
je 0x14003f0bc
inc ebp
add rax, 8
cmp ebp, 5
jbe 0x14003f0a0
mov byte [rdi + 0xb5], 1
jmp 0x14003edfe
movzx eax, word [rsi + 0x30]
mov rcx, rdi
mov word [rdi + 0xb8], ax
mov dword [rdi + 0xba], 0x3e09000a
call fcn.14005e650
xor edx, edx
mov rcx, rdi
mov ebx, eax
call fcn.1400545d0
mov ecx, 0x4d10
mov word [rdi + 0xb8], bx
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005e650
mov byte [rdi + 0xb5], 1
jmp 0x14003edfe
mov edx, 0x11
mov rcx, rdi
call fcn.140019fd0
int3
mov edx, 0x12
mov rcx, rdi
call fcn.140019fd0
int3
mov edx, 0x13
mov rcx, rdi
call fcn.140019fd0
int3