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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0x38
xor r13d, r13d
mov qword [rsp + 0x70], r14
mov rdi, rcx
mov qword [rsp + 0x30], r15
mov ecx, dword [rdx + 0x30]
mov rsi, rdx
mov ebx, 0x8000
movabs r12, 0x7fffffffffff
lea ebp, [r13 + 0xe]
nop word [rax + rax]
and ecx, 0x1f000000
cmp ecx, 0xb000000
je 0x14003e5d1
cmp dword [rsi + 0x38], r13d
mov r8d, r13d
mov rdx, rsi
mov rcx, rdi
setne r8b
call fcn.1400406a0
test eax, eax
je 0x14003ed44
jmp 0x14003e86e
mov rax, qword [rsi + 8]
cmp rax, 0xffffffffffffffff
je 0x14003e5ef
sar rax, 0x2f
cmp eax, 0xfffffff2
jae 0x14003e625
movsd xmm0, qword [rsi + 8]
ucomisd xmm0, xmm0
jnp 0x14003e625
cmp dword [rsi + 0x38], r13d
jne 0x14003ed36
cmp word [rsi + 0x34], bx
jae 0x14003e625
cmp dword [rsi + 0x44], r13d
je 0x14003e61b
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.1400406a0
test eax, eax
jne 0x14003e86e
mov eax, 0x7fff
jmp 0x14003e9c1
lea r9, [rsp + 0x80]
mov rdx, rsi
lea r8, [rsp + 0x24]
mov rcx, rdi
call fcn.140042a50
mov rcx, qword [rdi + 0x20]
movzx r15d, ax
mov dword [rsp + 0x20], eax
movzx ebx, byte [rcx + r15*8 + 5]
mov byte [rsp + 0x78], bl
cmp bl, 0x1a
jne 0x14003e65f
mov r14, qword [rcx + r15*8 + 8]
jmp 0x14003e663
mov r14, qword [rsi + 0x28]
mov ecx, dword [rsi + 0x38]
test ecx, ecx
jne 0x14003e748
mov rbx, qword [r14]
sar rbx, 0x2f
cmp ebx, 0xfffffff2
jae 0x14003e67e
mov ebx, ebp
jmp 0x14003e680
not ebx
lea r8, [rdi - 0x1e0]
cmp r14, r8
jne 0x14003e6c3
mov edx, 0x1a
mov rcx, rdi
call fcn.140054ce0
mov ecx, 0x889
mov word [rdi + 0xb8], r15w
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005f2c0
mov ebp, 0x7fff
jmp 0x14003e6fa
cmp byte [rsp + 0x78], 0x38
mov eax, 0x4380
mov ecx, 0x4280
mov word [rdi + 0xb8], r15w
cmove ax, cx
mov word [rdi + 0xba], r13w
or ax, bx
mov rcx, rdi
mov word [rdi + 0xbc], ax
call fcn.14005f2c0
mov ebp, eax
mov edx, dword [rsp + 0x24]
movzx ecx, bp
cmp ecx, edx
jae 0x14003e71b
mov rcx, rdi
call fcn.140055070
movzx ecx, byte [rsp + 0x80]
mov byte [rdi + 0xb6], cl
test ebx, ebx
jne 0x14003e90d
cmp dword [rsi + 0x44], r13d
je 0x14003e912
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call fcn.1400406a0
test eax, eax
je 0x14003e912
jmp 0x14003e864
mov rax, qword [rsi]
and rax, r12
mov r12, qword [rax + 0x20]
movzx eax, byte [rsi + 0x37]
and eax, 0x1f
sub eax, 4
cmp eax, 8
ja 0x14003e774
mov dword [rsp + 0x88], 1
test ecx, 0x1f000000
jne 0x14003e77c
mov dword [rsp + 0x88], r13d
mov edx, dword [rsp + 0x24]
cmp r15d, edx
jae 0x14003e79b
mov rcx, rdi
call fcn.140055070
movzx eax, byte [rsp + 0x80]
mov byte [rdi + 0xb6], al
cmp qword [r14], 0xffffffffffffffff
jne 0x14003eaa9
cmp dword [rsi + 0x44], r13d
je 0x14003e7ec
test r12, r12
je 0x14003e7ec
mov rdx, qword [rdi - 0x128]
mov rcx, r12
call fcn.1400142a0
test rax, rax
je 0x14003e7ec
cmp qword [rax], 0xffffffffffffffff
je 0x14003e7ec
cmp bl, 0x38
mov word [rdi + 0xba], r13w
mov eax, 0x4380
mov ecx, 0x4280
cmove ax, cx
mov word [rdi + 0xbc], ax
jmp 0x14003e827
cmp bl, 0x3a
jne 0x14003e837
lea rbx, [rdi - 0x1e0]
mov edx, 0x1a
mov r8, rbx
mov rcx, rdi
call fcn.140054ce0
cmp r14, rbx
mov word [rdi + 0xba], ax
mov ecx, 0x989
mov edx, 0x889
cmove cx, dx
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xb8], r15w
call fcn.14005f2c0
cmp dword [rsi + 0x44], r13d
je 0x14003e9e0
mov r8d, 1
mov rdx, rsi
mov rcx, rdi
call fcn.1400406a0
test eax, eax
je 0x14003e9e0
movabs r12, 0x7fffffffffff
mov ebx, 0x8000
mov ebp, 0xe
mov ecx, dword [rsi + 0x40]
and ecx, 0x1f000000
cmp ecx, 0x8000000
je 0x14003e926
cmp dword [rsi + 0x3c], 0x7fff
jne 0x14003e8f1
cmp dword [rsi + 0x38], r13d
jne 0x14003e8f1
mov eax, dword [rsi + 0x30]
and eax, 0x1f000000
cmp eax, 0xc000000
jne 0x14003e8f1
mov rax, qword [rsi]
and rax, r12
cmp byte [rax + 0xa], 3
jne 0x14003e8f1
cmp ecx, 0xb000000
jne 0x14003e8f1
mov ecx, dword [rsi + 0x34]
mov eax, ecx
and eax, 0x1f000000
cmp eax, 0x4000000
jne 0x14003e8f1
cmp cx, bx
jae 0x14003e8f1
mov rdx, qword [rsi + 8]
mov rcx, qword [rsi + 0x18]
and rdx, r12
and rcx, r12
call fcn.1400142a0
mov rdx, rax
mov rcx, rdi
call fcn.14003e4f0
test eax, eax
jne 0x14003e9c1
sub dword [rsi + 0x44], 1
mov rax, qword [rsi + 0x18]
mov ecx, dword [rsi + 0x40]
mov qword [rsi], rax
mov dword [rsi + 0x30], ecx
je 0x14003ed52
jmp 0x14003e5a0
cmp ebx, 2
ja 0x14003e91f
mov ebp, ebx
shl ebp, 0x18
sub ebp, ebx
add ebp, 0x7fff
mov eax, ebp
jmp 0x14003e9c1
cmp dword [rsi + 0x38], r13d
lea rax, [0x140003297]
lea rdx, [0x1400031a0]
mov rcx, rdi
cmovne rdx, rax
call fcn.140043600
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, r12
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 0x14003e9d8
mov dword [r8 + r9*4 + 0x10], eax
mov r8d, 3
mov rax, qword [rsi + 0x10]
mov qword [r10 + r9*8 + 0x20], rax
call fcn.14003e490
xor eax, eax
mov r15, qword [rsp + 0x30]
mov r14, qword [rsp + 0x70]
add rsp, 0x38
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov r8d, 2
jmp 0x14003e9ba
lea rax, [rdi - 0x1e0]
cmp r14, rax
jne 0x14003ebd8
mov ebx, dword [rsi + 0x34]
mov eax, ebx
shr eax, 0x18
and eax, 0x1f
sub eax, 0xf
cmp eax, 4
ja 0x14003ea20
mov rcx, rdi
mov dword [rdi + 0xba], 0x5b0e01d3
mov word [rdi + 0xb8], bx
call fcn.14005f2c0
mov ebx, eax
jmp 0x14003ea78
mov eax, ebx
and eax, 0x1f000000
cmp eax, 0xe000000
jne 0x14003ea78
mov eax, 0x8000
cmp bx, ax
jae 0x14003ea56
movabs rax, 0x8000000000000000
cmp qword [rsi + 8], rax
jne 0x14003ea78
xor edx, edx
mov rcx, rdi
call fcn.140054c00
mov ebx, eax
jmp 0x14003ea78
mov eax, 0x88e
mov word [rdi + 0xb8], bx
mov rcx, rdi
mov word [rdi + 0xbc], ax
mov word [rdi + 0xba], bx
call fcn.14005f2c0
movzx eax, word [rsi + 0x30]
mov ecx, 0x3b09
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xb8], ax
mov word [rdi + 0xba], bx
call fcn.14005f2c0
mov r14d, eax
mov ebx, r13d
jmp 0x14003ebe4
cmp byte [rsp + 0x78], 0x38
mov ebx, r13d
mov r8d, r15d
mov rcx, rdi
setne bl
add bx, 0x42
movzx edx, bx
call fcn.140060ae0
movzx ebp, byte [rsp + 0x78]
test eax, eax
jne 0x14003ebce
cmp bpl, 0x3a
jne 0x14003eb0e
lea r8, [rdi - 0x1e0]
mov rcx, rdi
lea edx, [rax + 0x1a]
call fcn.140054ce0
mov ecx, 0x989
mov word [rdi + 0xb8], r15w
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005f2c0
cmp dword [rsi + 0x44], r13d
je 0x14003ebc0
test r12, r12
jne 0x14003eb79
movzx eax, word [rsi + 0x30]
mov rcx, rdi
mov word [rdi + 0xb8], ax
mov dword [rdi + 0xba], 0x450b0005
call fcn.14005f2c0
lea edx, [r12 + 0xb]
mov rcx, rdi
mov ebx, eax
call fcn.140054b70
mov ecx, 0x88b
mov word [rdi + 0xb8], bx
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005f2c0
mov ebx, dword [rsp + 0x88]
mov r14d, dword [rsp + 0x20]
jmp 0x14003ebe9
mov rax, qword [r14]
sar rax, 0x2f
cmp eax, 0xfffffff2
jae 0x14003eb8c
mov ecx, 0xe
jmp 0x14003eb92
not ax
movzx ecx, ax
shl bx, 8
mov eax, 0x80
or bx, cx
mov word [rdi + 0xb8], r15w
or bx, ax
mov word [rdi + 0xba], r13w
mov rcx, rdi
mov word [rdi + 0xbc], bx
call fcn.14005f2c0
mov ebx, dword [rsp + 0x88]
mov r14d, dword [rsp + 0x20]
jmp 0x14003ebe9
mov r14d, dword [rsp + 0x20]
mov ebx, r13d
jmp 0x14003ebe9
mov ebx, dword [rsp + 0x88]
mov r14d, dword [rsp + 0x20]
movzx ebp, byte [rsp + 0x78]
mov r8d, dword [rsi + 0x38]
mov eax, r8d
shr eax, 0x18
mov edx, r8d
and eax, 0x1f
sub eax, 0xf
cmp eax, 4
ja 0x14003ec24
mov rcx, rdi
mov dword [rdi + 0xba], 0x5b0e01d3
mov word [rdi + 0xb8], r8w
call fcn.14005f2c0
mov edx, eax
mov dword [rsi + 0x38], eax
movzx r8d, ax
shr edx, 0x18
mov ecx, 0x4b00
and dx, 0x1f
mov word [rdi + 0xb8], r14w
mov eax, 0x4a00
mov word [rdi + 0xba], r8w
cmp bpl, 0x38
cmove cx, ax
or dx, cx
mov rcx, rdi
mov word [rdi + 0xbc], dx
call fcn.14005f2c0
test ebx, ebx
jne 0x14003ec72
movzx eax, byte [rsi + 0x3b]
and eax, 0x1f
sub eax, 4
cmp eax, 8
ja 0x14003ec8f
movzx eax, word [rsi + 0x30]
mov rcx, rdi
mov word [rdi + 0xb8], ax
mov dword [rdi + 0xba], 0x58000000
call fcn.14005f2c0
mov ecx, dword [rsi + 0x34]
mov eax, ecx
and eax, 0x1f000000
cmp eax, 0x4000000
jne 0x14003ed2a
mov eax, 0x8000
cmp cx, ax
jae 0x14003ecdf
mov rax, qword [rdi + 0x20]
movzx ecx, cx
mov rdx, qword [rax + rcx*8 + 8]
lea rax, [rdi - 0x130]
cmp qword [rax], rdx
je 0x14003ecdf
inc r13d
add rax, 8
cmp r13d, 5
jbe 0x14003ecc1
mov byte [rdi + 0xb5], 1
jmp 0x14003e9bf
movzx eax, word [rsi + 0x30]
mov rcx, rdi
mov word [rdi + 0xb8], ax
mov dword [rdi + 0xba], 0x3e09000a
call fcn.14005f2c0
xor edx, edx
mov rcx, rdi
mov ebx, eax
call fcn.140054ac0
mov ecx, 0x4d10
mov word [rdi + 0xb8], bx
mov word [rdi + 0xbc], cx
mov rcx, rdi
mov word [rdi + 0xba], ax
call fcn.14005f2c0
mov byte [rdi + 0xb5], 1
jmp 0x14003e9bf
mov edx, 0x11
mov rcx, rdi
call fcn.140016e60
int3
mov edx, 0x12
mov rcx, rdi
call fcn.140016e60
int3
mov edx, 0x13
mov rcx, rdi
call fcn.140016e60
int3