Function at 0x1403a0014
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, 0x148
mov rax, qword [0x14051efc0]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov rax, qword [rcx]
xor r10d, r10d
mov rbx, qword [rcx + 0x10]
mov rsi, r8
mov qword [rsp + 0xb8], r8
movzx ebp, r9w
mov word [rsp + 0x32], r9w
mov r8, rdx
mov rax, qword [rax]
mov r13, rcx
mov qword [rsp + 0x80], rdx
mov r14d, r10d
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x60], rax
mov rdi, qword [rax]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x68], r10
mov qword [rsp + 0xb0], rbx
cmp byte [rdi + 0x67], r10b
je 0x1403a00a3
lea eax, [r10 + 7]
jmp 0x1403a0b03
mov eax, dword [rbx + 0x38]
movzx r15d, word [rbx + 0x18]
mov r8d, dword [r8 + 0x44]
mov r9d, r15d
mov dword [rsp + 0x74], eax
and al, 0x20
neg al
mov qword [rsp + 0x28], rsi
movzx eax, word [rbx + 0x1a]
mov word [rsp + 0x4a], ax
sbb edx, edx
movzx eax, word [rbx + 0x1c]
and edx, 0xfffffe59
mov word [rsp + 0x4c], ax
add edx, 0x1bf
movzx eax, word [rbx + 0x3e]
mov ecx, edx
mov word [rsp + 0x50], ax
and ecx, 0xffffffc3
movzx eax, word [rbx + 0x3c]
mov word [rsp + 0x4e], ax
mov rax, qword [rbx]
mov qword [rsp + 0xa8], rax
movzx eax, word [rbx + 0x16]
mov word [rsp + 0x38], ax
mov eax, dword [rsi + 0x64]
test al, 4
mov word [rsp + 0x30], r15w
cmove ecx, edx
mov dword [rsp + 0x78], r15d
mov rdx, qword [r13 + 8]
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0xc0]
call fcn.1403a3ab4
xor r9d, r9d
mov qword [rsp + 0xa0], rax
mov word [rbx + 0x12], r9w
mov r12, rax
mov rax, qword [rsi + 0x10]
lea ecx, [r9 + 0xa]
movsx rax, word [rax]
mov word [rsp + 0x70], ax
cmp ax, cx
jg 0x1403a0163
mov word [rsp + 0x3a], r9w
jmp 0x1403a0174
mov rcx, rax
call fcn.140371cbc
sub ax, 0x21
mov word [rsp + 0x3a], ax
mov edx, 2
mov ecx, pe_nt_image_headers64
lea r8d, [rdx + 0xe]
lea r10d, [rdx - 1]
test r12, r12
je 0x1403a09d7
movzx edi, word [r12 + 0x14]
mov eax, dword [r13 + 0x28]
mov word [rsp + 0x48], di
mov dword [rsp + 0x34], r9d
mov dword [rsp + 0x90], eax
cmp di, cx
je 0x1403a01b7
test byte [r12 + 0x12], 0x80
je 0x1403a01ff
mov rax, qword [rsi + 8]
movzx ecx, r15w
movsx r8, word [rax + rcx*2]
test r8d, r8d
js 0x1403a01ea
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
test dword [rax + rcx*8 + 8], 0xf
jne 0x1403a0983
mov edx, 2
jmp 0x1403a01f4
cmp r8d, 0xffffffff
je 0x1403a0983
mov ecx, pe_nt_image_headers64
mov r8d, 0x10
mov rax, qword [rbx + 8]
test qword [r12 + 0x28], rax
jne 0x1403a0983
test word [r12 + 0x12], cx
je 0x1403a0220
cmp di, r8w
je 0x1403a0983
mov rax, qword [rsp + 0x80]
test byte [rax + 0x3c], 0x58
je 0x1403a0248
mov rcx, qword [r12]
test byte [rcx + 4], 3
je 0x1403a0983
mov eax, dword [rax + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x1403a0983
cmp byte [rsi + 0x62], r9b
je 0x1403a0263
movzx eax, word [rsi + 0x5e]
sub eax, r10d
movzx ecx, r15w
cmp ecx, eax
jne 0x1403a0263
or byte [r13 + 0x2c], dl
jmp 0x1403a0267
or byte [r13 + 0x2c], r10b
mov eax, dword [rsp + 0x74]
mov rdx, rbx
mov rcx, qword [rsp + 0x40]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x4a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x4c]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x4e]
mov word [rbx + 0x18], r15w
mov word [rbx + 0x3c], ax
lea r8d, [r10 + rax]
call fcn.1403a1e18
xor r9d, r9d
test eax, eax
jne 0x1403a09cc
movzx ecx, word [rbx + 0x3c]
lea r11d, [r9 + 1]
mov rax, qword [rbx + 0x48]
movzx r15d, di
mov qword [rax + rcx*8], r12
movzx edx, word [rbx + 0x3c]
mov rcx, qword [rsp + 0xa8]
add dx, r11w
mov rax, qword [rbx + 8]
mov word [rbx + 0x3c], dx
not rax
or rcx, qword [r12 + 0x28]
and rcx, rax
mov qword [rbx], rcx
and r15w, r11w
je 0x1403a0423
mov r8, qword [r12]
test dword [r8 + 4], 0x1000
je 0x1403a0337
movzx ecx, dx
lea r11d, [r9 + 0x2e]
dec ecx
mov dword [rsp + 0x34], r11d
test ecx, ecx
jle 0x1403a0358
mov rax, qword [rbx + 0x48]
lea r10d, [r9 + 1]
mov edx, ecx
mov rcx, qword [rax]
test rcx, rcx
je 0x1403a0327
cmp qword [rcx], r8
cmove r11d, r9d
add rax, 8
sub rdx, r10
jne 0x1403a0318
mov dword [rsp + 0x34], r11d
jmp 0x1403a0358
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x1403a0353
cmp dword [rax], r9d
je 0x1403a0353
movsxd rcx, dword [rax]
call fcn.140371cbc
movsx r11d, ax
jmp 0x1403a0330
mov r11d, dword [rsp + 0x34]
test byte [rsi + 0x64], 0x80
je 0x1403a041b
movzx edi, word [rsp + 0x3a]
mov edx, 0xa
cmp di, dx
jl 0x1403a041b
movzx r10d, word [rsp + 0x30]
mov rax, qword [rsi + 0x10]
movzx r9d, word [rax + r10*2]
cmp r11w, dx
jg 0x1403a0393
xor r8d, r8d
movzx eax, r8w
jmp 0x1403a03a5
movsx rcx, r11w
call fcn.140371cbc
sub ax, 0x21
mov edx, 0xa
sub ax, r11w
sub ax, di
add ax, r9w
add ax, dx
jns 0x1403a03da
mov rdi, qword [rsp + 0x40]
mov eax, 2
cmp bp, ax
jge 0x1403a09bf
test dword [rdi + 0x60], 0x20000
jne 0x1403a09bf
bts dword [rbx + 0x38], 0x14
xor r9d, r9d
or dword [rbx + 0x38], 4
mov r11d, 1
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x58]
mov r14, qword [rsp + 0x60]
test byte [rbx + 0x38], 2
je 0x1403a05fc
mov r8, rcx
mov qword [rsp + 0x20], rbx
mov rcx, r14
mov r9, rax
mov rdx, r13
call fcn.1403a31ac
jmp 0x1403a0898
movzx r10d, word [rsp + 0x30]
jmp 0x1403a03dd
test dil, 0x82
je 0x1403a04ae
mov rax, qword [rsi + 8]
mov edx, dword [rbx + 0x38]
movzx r10d, word [rsp + 0x30]
or edx, r11d
movsx r8d, word [rax + r10*2]
mov dword [rbx + 0x38], edx
cmp r8d, 0xffffffff
je 0x1403a048b
mov ecx, edx
test r8d, r8d
js 0x1403a0494
test bp, bp
jne 0x1403a0494
movzx r8d, word [rsi + 0x5e]
mov eax, r8d
sub eax, r11d
cmp r10d, eax
jne 0x1403a0494
test byte [rsi + 0x64], 8
jne 0x1403a048b
cmp r8w, r11w
jne 0x1403a0485
xor r8d, r8d
cmp byte [rsi + 0x62], r8b
je 0x1403a0485
lea eax, [r8 + 2]
cmp di, ax
je 0x1403a048b
bts ecx, 0x10
jmp 0x1403a0491
mov ecx, edx
bts ecx, 0xc
mov dword [rbx + 0x38], ecx
cmp byte [rsp + 0xe9], r11b
jbe 0x1403a03e7
bts ecx, 0x15
mov dword [rbx + 0x38], ecx
jmp 0x1403a03e7
bt di, 8
mov eax, dword [rbx + 0x38]
jae 0x1403a04c9
movzx r10d, word [rsp + 0x30]
or eax, 8
mov dword [rbx + 0x38], eax
jmp 0x1403a03e7
mov r9d, dword [rsp + 0x78]
mov r8, rsi
mov qword [rsp + 0x20], r12
test dil, 0x24
je 0x1403a0587
mov rcx, qword [rsp + 0x60]
or eax, 0x22
mov dword [rbx + 0x38], eax
mov rax, qword [rsp + 0x80]
mov edx, dword [rax + 0x44]
call fcn.1403a3910
xor r9d, r9d
mov word [rbx + 0x1a], ax
mov edx, pe_nt_image_headers64
mov eax, r9d
mov rcx, r12
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
test word [r12 + 0x12], dx
je 0x1403a05eb
movzx r8d, word [rbx + 0x3c]
lea rax, [r12 + 0x38]
mov rdi, qword [rsp + 0x40]
inc r8d
mov rcx, rdi
mov qword [rsp + 0x58], rax
mov rdx, rbx
call fcn.1403a1e18
xor r9d, r9d
test eax, eax
jne 0x1403a09d1
movzx ecx, word [rbx + 0x3c]
lea r11d, [r9 + 1]
mov rax, qword [rbx + 0x48]
mov rdx, qword [rsp + 0x58]
movzx r10d, word [rsp + 0x30]
mov qword [rax + rcx*8], rdx
lea eax, [r9 + 0x10]
add word [rbx + 0x3c], r11w
mov rcx, r12
or dword [rbx + 0x38], eax
mov rax, rdx
mov word [rbx + 0x1c], r11w
jmp 0x1403a03f1
mov r14, qword [rsp + 0x60]
or eax, 0x12
mov dword [rbx + 0x38], eax
mov rcx, r14
mov rax, qword [rsp + 0x80]
mov edx, dword [rax + 0x44]
call fcn.1403a3910
movzx r10d, word [rsp + 0x30]
xor r9d, r9d
test byte [rbx + 0x38], 0x20
mov word [rbx + 0x1c], ax
mov rax, r12
mov qword [rsp + 0x58], rax
lea r11d, [r9 + 1]
je 0x1403a05de
mov rax, qword [rbx + 0x48]
movzx ecx, word [rbx + 0x3c]
mov rcx, qword [rax + rcx*8 - 0x10]
mov rax, r12
mov qword [rsp + 0x68], rcx
jmp 0x1403a03f6
mov rcx, r9
mov qword [rsp + 0x68], rcx
jmp 0x1403a03f6
movzx r10d, word [rsp + 0x30]
mov r11d, 1
jmp 0x1403a03f1
movzx eax, word [rbx + 0x18]
add ax, r11w
movzx edi, ax
mov word [rbx + 0x18], di
movzx edx, word [r12 + 0x10]
mov dword [rsp + 0x7c], edi
test dx, dx
jg 0x1403a063b
mov rax, qword [rsi + 8]
movzx ecx, r10w
cmp word [rax + rcx*2], r9w
jl 0x1403a063b
mov r15d, dword [rsp + 0x34]
sub dx, r15w
add word [rbx + 0x16], dx
jmp 0x1403a089d
mov dword [rsp + 0x8c], r9d
mov dword [rsp + 0x54], r9d
cmp word [rsp + 0x32], r9w
jne 0x1403a0864
cmp dword [rsi + 0x68], r9d
je 0x1403a0864
cmp edi, dword [rsi + 0x6c]
jg 0x1403a0864
test r15w, r15w
je 0x1403a067e
mov rax, qword [r12]
test dword [rax + 4], 0x1000
jne 0x1403a0864
mov rax, qword [rsp + 0x40]
test dword [rax + 0x60], 0x800
jne 0x1403a0864
mov rax, qword [r12]
mov ecx, 0x182
test word [rsp + 0x48], cx
je 0x1403a06c2
mov r8, qword [rax + 0x18]
lea r9, [rsp + 0x54]
mov rdx, r13
mov rcx, r14
call fcn.14039f218
mov ebp, dword [rsp + 0x54]
mov ecx, eax
xor r9d, r9d
jmp 0x1403a0782
mov r15, qword [rax + 0x20]
mov rax, qword [r13 + 0x10]
mov rcx, qword [rax + 0x20]
mov rax, qword [rcx + 0x10]
movzx ecx, word [rax]
call fcn.140371e34
mov rbx, qword [rsp + 0x98]
xor r9d, r9d
mov rbp, qword [rsp + 0x60]
mov r12, rax
mov eax, dword [r13 + 0x28]
mov ecx, r9d
mov dword [rsp + 0x88], eax
lea r13, [r15 + 8]
mov r14d, r9d
mov esi, r9d
mov edi, r12d
cmp esi, dword [r15]
jge 0x1403a0747
mov r8, qword [r13]
lea r9, [rsp + 0x54]
mov rdx, rbx
mov dword [rsp + 0x54], r12d
mov rcx, rbp
mov edi, r12d
call fcn.14039f218
add r14d, dword [rsp + 0x54]
mov ecx, eax
mov eax, dword [rsp + 0x88]
xor r9d, r9d
inc esi
mov dword [rbx + 0x28], eax
add r13, 0x20
test ecx, ecx
je 0x1403a0708
mov rbx, qword [rsp + 0xb0]
mov ebp, dword [rsp + 0x8c]
test ecx, ecx
jne 0x1403a0766
mov eax, r14d
mov ebp, edi
cmp rax, r12
cmovle ebp, r14d
mov rsi, qword [rsp + 0xb8]
mov edi, dword [rsp + 0x7c]
mov r12, qword [rsp + 0xa0]
mov r13, qword [rsp + 0x98]
cmp ecx, 0xc
mov r14d, r9d
cmovne r14d, ecx
test r14d, r14d
jne 0x1403a09c7
test ebp, ebp
je 0x1403a0864
mov eax, ebp
lea r8d, [r14 + 0x28]
movzx ecx, r8w
cmp rax, 8
jae 0x1403a07c8
cmp rax, 2
jae 0x1403a07b9
movzx ecx, r9w
jmp 0x1403a0805
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x1403a07b9
jmp 0x1403a07f3
mov edx, 0xff
jmp 0x1403a07d7
add cx, r8w
shr rax, 4
cmp rax, rdx
ja 0x1403a07cf
cmp rax, 0xf
jbe 0x1403a07f3
mov edx, 0xa
add cx, dx
shr rax, 1
cmp rax, 0xf
ja 0x1403a07e7
and eax, 7
lea rdx, [0x14051a640]
sub cx, 0xa
add cx, word [rdx + rax*2]
mov eax, 1
mov word [rbx + 0x16], cx
cmp di, ax
jne 0x1403a0841
mov rax, qword [rsi + 0x10]
movsx edx, cx
add edx, 0xa
movsx ecx, word [rax]
cmp edx, ecx
jle 0x1403a0841
mov eax, 0x4000
or word [r12 + 0x12], ax
mov eax, 0x2000
test word [r12 + 0x12], ax
je 0x1403a0841
or byte [r13 + 0x2d], 4
movzx eax, word [rbx + 0x16]
cmp ax, word [rsp + 0x38]
mov r15d, dword [rsp + 0x34]
cmovg ax, word [rsp + 0x38]
movzx ebp, word [rsp + 0x32]
sub ax, r15w
mov word [rbx + 0x16], ax
jmp 0x1403a089d
mov rax, qword [rsi + 0x10]
movzx ebp, word [rsp + 0x32]
movzx ecx, di
movzx edx, word [rax + rcx*2]
sub dx, word [rax + rcx*2 - 2]
mov ecx, pe_nt_image_headers64
add dx, word [rbx + 0x16]
movzx eax, dx
mov word [rbx + 0x16], dx
test word [rsp + 0x48], cx
je 0x1403a0898
add ax, 0xa
mov word [rbx + 0x16], ax
mov r15d, dword [rsp + 0x34]
movsx eax, word [rsi + 0x5c]
mov r12, qword [rsp + 0x80]
movzx edi, word [rbx + 0x16]
imul eax, eax, 0xf
mov rcx, qword [r12 + 0x20]
cdq
movsx r8d, word [rcx + 0x3c]
movzx ecx, word [rsp + 0x3a]
idiv r8d
lea edx, [rdi + rax]
inc dx
call fcn.140371d1c
test dword [rbx + 0x38], 0x140
jne 0x1403a08e6
mov edx, 0x10
movzx ecx, ax
add edx, edi
call fcn.140371d1c
movzx r8d, word [rsp + 0x70]
add ax, r15w
add ax, bp
mov rdx, rbx
mov word [rbx + 0x14], ax
lea eax, [r15 + rdi]
add ax, bp
mov word [rbx + 0x16], ax
mov rcx, qword [r13 + 8]
call fcn.1403a1c64
mov rdx, rbx
mov rcx, r13
call fcn.1403a1a8c
mov edx, dword [rbx + 0x38]
mov r8d, 2
movzx ecx, word [rsp + 0x38]
test r8b, dl
mov r14d, eax
cmove cx, di
lea eax, [r8 + 0xe]
mov word [rbx + 0x16], cx
test al, dl
jne 0x1403a0969
movzx ecx, word [rbx + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x1403a0969
cmp cx, word [rsi + 0x5e]
jb 0x1403a0957
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, r8b
je 0x1403a0969
lea r9d, [r15 + rbp]
mov r8, rsi
mov rdx, r12
mov rcx, r13
call fcn.1403a0014
movzx ecx, word [rsp + 0x38]
mov eax, dword [rsp + 0x90]
movzx r15d, word [rsp + 0x30]
mov word [rbx + 0x16], cx
mov dword [r13 + 0x28], eax
mov rdi, qword [rsp + 0x40]
lea rcx, [rsp + 0xc0]
call fcn.1403a3ba8
xor r9d, r9d
mov qword [rsp + 0xa0], rax
mov r12, rax
mov ecx, pe_nt_image_headers64
lea edx, [r9 + 2]
lea r10d, [r9 + 1]
lea r8d, [r9 + 0x10]
test r14d, r14d
je 0x1403a0186
jmp 0x1403a09d7
movzx r15d, word [rsp + 0x30]
jmp 0x1403a0988
movzx ebp, word [rsp + 0x32]
mov rdi, qword [rsp + 0x40]
mov r10d, 1
mov rax, qword [rsp + 0xa8]
movzx r15d, word [rsp + 0x30]
movzx r12d, word [rsp + 0x38]
movzx r8d, word [rsp + 0x4e]
mov ecx, dword [rsp + 0x74]
mov qword [rbx], rax
movzx eax, word [rsp + 0x4a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x4c]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x50]
mov word [rbx + 0x18], r15w
mov word [rbx + 0x3e], ax
mov dword [rbx + 0x38], ecx
mov word [rbx + 0x16], r12w
mov word [rbx + 0x3c], r8w
cmp r15w, ax
jne 0x1403a0b00
movzx ecx, word [rsi + 0x5e]
lea eax, [r15 + 1]
cmp eax, ecx
jae 0x1403a0b00
cmp r15w, r8w
jne 0x1403a0b00
test byte [rsi + 0x64], 0x40
jne 0x1403a0b00
test byte [rsi + 0x64], 0x80
je 0x1403a0b00
mov eax, 0x4000
test dword [rdi + 0x60], eax
jne 0x1403a0b00
mov rax, qword [rsi + 0x10]
cmp word [rax + r15*2 + 2], 0x2a
jl 0x1403a0b00
mov rcx, qword [rsp + 0x40]
add r8d, r10d
mov rdx, rbx
call fcn.1403a1e18
xor r8d, r8d
mov r14d, eax
test eax, eax
jne 0x1403a0b00
movzx ecx, word [rbx + 0x3c]
lea edx, [rax + 1]
add word [rbx + 0x18], dx
add word [rbx + 0x3e], dx
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], r8
mov r8, rsi
add word [rbx + 0x3c], dx
mov rcx, r13
bts dword [rbx + 0x38], 0xf
mov r9, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x80]
movzx r10d, word [r9 + r15*2]
sub r10w, word [r9 + r15*2 + 2]
sub word [rbx + 0x16], r10w
lea r9d, [r10 + rbp]
add r9w, 5
call fcn.1403a0014
movzx eax, word [rsp + 0x50]
mov word [rbx + 0x3e], ax
mov eax, dword [rsp + 0x74]
mov dword [rbx + 0x38], eax
mov word [rbx + 0x16], r12w
mov word [rbx + 0x18], r15w
mov eax, r14d
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.1403ab020
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret