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

Disassembly:
mov rax, rsp
mov word [rax + 0x20], r9w
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
xor r12d, r12d
movzx r15d, r9w
mov r14, r8
mov r10, rdx
mov r11, rcx
mov edi, r12d
mov esi, r12d
cmp word [rsp + 0x110], r12w
je 0x1403a217d
mov rax, qword [rcx]
mov r9, qword [rax]
test byte [r9 + 0x60], 0x40
jne 0x1403a2977
movzx ebx, word [rdx]
mov word [rsp + 0x56], bx
cmp ebx, 0x3f
ja 0x1403a2977
mov r8d, 1
mov dword [rsp + 0x3c], ebx
mov ecx, ebx
mov qword [rsp + 0x70], r12
mov edx, r8d
mov qword [rsp + 0x60], r12
shl rdx, cl
mov r13b, r8b
sub rdx, r8
mov dword [rsp + 0x38], r13d
mov r8d, dword [rsp + 0x3c]
mov ecx, 0x803
movzx eax, r15w
mov qword [rsp + 0x78], rdx
and ax, cx
mov rbx, r12
neg ax
mov qword [rsp + 0x80], rbx
mov ecx, r12d
mov rbp, r12
sbb r9w, r9w
mov dword [rsp + 0x50], ecx
neg r9w
add r9w, 0x182
mov word [rsp + 0x30], r9w
cmp rsi, rdx
jae 0x1403a2919
movzx eax, word [rsp + 0x110]
cmp ecx, eax
jg 0x1403a293b
test ecx, ecx
jle 0x1403a221d
or rbp, qword [rdi + 8]
mov qword [rsp + 0x60], rbp
cmp ecx, eax
jge 0x1403a223f
bt r15w, 0xb
mov rax, qword [r14 + 0x18]
mov rdi, qword [rax + rbx*8]
mov qword [rsp + 0x88], rdi
jb 0x1403a28f2
jmp 0x1403a224f
mov rdi, qword [rsp + 0x118]
mov qword [rsp + 0x88], rdi
test dword [rdi + 0x38], 0x400
jne 0x1403a2921
movzx eax, r15w
mov ecx, 0x80
and ax, cx
mov word [rsp + 0x54], ax
je 0x1403a2274
mov word [rdi + 0x1e], r12w
movzx eax, byte [rdi + 0x10]
mov ebp, r12d
imul rcx, rax, 0x68
mov rax, qword [r11 + 8]
mov edx, dword [rcx + rax + 0x4c]
mov ecx, 1
mov dword [rsp + 0x44], edx
test r8d, r8d
je 0x1403a2400
mov r13d, dword [rsp + 0x3c]
mov eax, ebp
bt rsi, rax
jb 0x1403a23df
mov r14d, ebp
shl r14, 5
mov r12d, ebp
mov rcx, qword [r14 + r10 + 8]
call fcn.14035dcc8
xor r15d, r15d
mov rbx, rax
test rax, rax
je 0x1403a23da
mov al, byte [rax]
add al, 0x59
test al, 0xfd
jne 0x1403a23da
cmp dword [rbx + 0x2c], edx
jne 0x1403a23da
movsx r8d, word [rbx + 0x30]
lea rcx, [r11 + 0x80]
movzx eax, r9w
mov r9, qword [rsp + 0x60]
not r9
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], eax
call fcn.1403932a8
xor r11d, r11d
mov r15, rax
test rax, rax
je 0x1403a23c0
lea r9d, [r11 + 1]
cmp word [rax + 0x14], r9w
jne 0x1403a2345
movzx edx, word [rdi + 0x3c]
mov ecx, r11d
test edx, edx
je 0x1403a2341
mov r8, qword [rdi + 0x48]
movsxd rax, ecx
cmp r15, qword [r8 + rax*8]
je 0x1403a2341
add ecx, r9d
cmp ecx, edx
jl 0x1403a2331
cmp ecx, edx
jge 0x1403a23c0
test byte [r15 + 0x14], 0x82
je 0x1403a23bc
cmp word [rbx + 0x30], r11w
jl 0x1403a23bc
mov rbx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xf8]
mov rbx, qword [rbx]
mov rdx, qword [r14 + rdx + 8]
mov rcx, rbx
call fcn.14035c440
mov r14, rax
test rax, rax
jne 0x1403a2382
mov rax, qword [rbx]
mov r14, qword [rax + 0x10]
mov rax, qword [r15]
test dword [rax + 4], 0x400
je 0x1403a2398
mov rdx, qword [rax + 0x18]
mov r8, qword [rax + 0x10]
jmp 0x1403a23a0
mov rdx, qword [rax + 0x10]
mov r8, qword [rax + 0x18]
mov rcx, rbx
call fcn.140350080
test rax, rax
je 0x1403a23c0
mov rdx, qword [rax]
mov rcx, qword [r14]
call fcn.14037ead8
test eax, eax
jne 0x1403a23c0
bts rsi, r12
movzx r9d, word [rsp + 0x30]
mov edx, dword [rsp + 0x44]
mov r11, qword [rsp + 0xf0]
mov r10, qword [rsp + 0xf8]
mov ecx, 1
add ebp, ecx
cmp ebp, r13d
jl 0x1403a229e
mov r13d, dword [rsp + 0x38]
xor r12d, r12d
movzx r15d, word [rsp + 0x108]
mov r8d, dword [rsp + 0x3c]
test dword [rdi + 0x38], 0x1000
jne 0x1403a2811
test dword [rdi + 0x38], 0x100
je 0x1403a2424
mov r14, r12
mov word [rsp + 0x4c], r12w
movzx eax, cx
jmp 0x1403a2465
mov r14, qword [rdi + 0x20]
test r14, r14
je 0x1403a2977
test byte [r14 + 0x64], 4
jne 0x1403a2977
movzx eax, word [r14 + 0x5e]
mov word [rsp + 0x4c], ax
movzx eax, word [r14 + 0x60]
cmp byte [r14 + 0x62], r12b
je 0x1403a245d
test dword [rdi + 0x38], 0x8000
mov r13b, cl
je 0x1403a2460
mov r13b, r12b
mov dword [rsp + 0x38], r13d
movzx eax, ax
mov r11b, r12b
mov byte [rsp + 0x34], r12b
mov ebx, r12d
mov byte [rsp + 0x33], r12b
mov dword [rsp + 0x48], r11d
mov dword [rsp + 0x68], eax
test eax, eax
je 0x1403a2811
mov edx, 1
movzx r8d, word [rdi + 0x18]
mov bpl, dl
cmp ebx, r8d
jge 0x1403a24fc
movzx eax, word [rdi + 0x3e]
cmp ebx, eax
jl 0x1403a24fc
mov r9, qword [rdi + 0x48]
movsxd rax, ebx
mov rcx, qword [r9 + rax*8]
movzx eax, word [rcx + 0x14]
test word [rsp + 0x30], ax
je 0x1403a24d8
mov ecx, 0x180
test cx, ax
movzx eax, r13b
mov ecx, r12d
cmove ecx, eax
mov r13b, cl
mov dword [rsp + 0x38], r13d
jmp 0x1403a27f6
test dl, al
je 0x1403a24fc
mov r10, qword [rcx]
lea edx, [rbx + 1]
jmp 0x1403a24f2
movsxd rax, edx
mov rcx, qword [r9 + rax*8]
cmp qword [rcx], r10
je 0x1403a24f9
inc edx
cmp edx, r8d
jl 0x1403a24e4
jmp 0x1403a24fc
mov bpl, r12b
test r14, r14
je 0x1403a2536
mov rax, qword [r14 + 8]
movsxd rcx, ebx
movsx r9d, word [rax + rcx*2]
mov rax, qword [r14 + 0x38]
mov dl, byte [rcx + rax]
mov rax, qword [r14 + 0x18]
and dl, 1
mov byte [rsp + 0x32], dl
movsx ecx, word [rax + 0x34]
mov eax, 0xffffffff
cmp r9d, ecx
cmove r9d, eax
mov dword [rsp + 0x58], r9d
jmp 0x1403a2545
or eax, 0xffffffff
mov byte [rsp + 0x32], r12b
mov r9d, eax
mov dword [rsp + 0x58], eax
test r13b, r13b
je 0x1403a2584
test r9d, r9d
js 0x1403a2573
cmp ebx, r8d
jl 0x1403a2584
movsxd rax, r9d
lea rdx, [rax + rax*2]
mov rax, qword [r14 + 0x18]
mov rcx, qword [rax + 8]
test byte [rcx + rdx*8 + 8], 0xf
jne 0x1403a2584
mov al, r12b
mov dword [rsp + 0x38], eax
jmp 0x1403a2584
cmp r9d, 0xfffffffe
movzx r13d, r13b
cmove r13d, r12d
mov dword [rsp + 0x38], r13d
test bpl, bpl
je 0x1403a2743
cmp r12d, dword [rsp + 0x3c]
jge 0x1403a273e
mov eax, r12d
bt rsi, rax
jb 0x1403a26aa
mov r10, qword [rsp + 0xf8]
movsxd rax, r12d
shl rax, 5
mov qword [rsp + 0x90], rax
mov rcx, qword [rax + r10 + 8]
call fcn.14035dcc8
mov rdx, rax
test rax, rax
je 0x1403a26aa
mov al, r15b
and al, 0xc0
neg al
sbb al, al
or r8d, 0xffffffff
and al, bpl
mov byte [rsp + 0x40], al
mov bpl, al
cmp r9d, r8d
jl 0x1403a2627
cmp byte [rdx], 0xa7
je 0x1403a25fc
cmp byte [rdx], 0xa9
jne 0x1403a26aa
mov ecx, dword [rsp + 0x44]
mov bpl, al
cmp dword [rdx + 0x2c], ecx
jne 0x1403a26aa
movsx eax, word [rdx + 0x30]
cmp eax, r9d
jne 0x1403a26aa
movsxd r13, ebx
cmp r9d, r8d
je 0x1403a26df
jmp 0x1403a2665
mov rax, qword [r14 + 0x50]
movsxd r13, ebx
mov rcx, r13
shl rcx, 5
mov rcx, qword [rcx + rax + 8]
call fcn.14035dcc8
mov rcx, rdx
mov r8, rax
call fcn.14035dcc8
mov r9d, dword [rsp + 0x44]
mov rdx, rax
xor ecx, ecx
call fcn.14035c5ec
test eax, eax
jne 0x1403a26aa
mov r10, qword [rsp + 0xf8]
mov rax, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0x90]
mov r15, qword [rax]
mov rdx, qword [rdx + r10 + 8]
mov rcx, r15
call fcn.14035c440
test rax, rax
jne 0x1403a2691
mov rax, qword [r15]
mov rax, qword [rax + 0x10]
mov rdx, qword [r14 + 0x40]
mov rcx, qword [rax]
mov bpl, byte [rsp + 0x40]
mov rdx, qword [rdx + r13*8]
call fcn.14037ead8
test eax, eax
je 0x1403a26c9
inc r12d
test bpl, bpl
je 0x1403a273e
mov r9d, dword [rsp + 0x58]
movzx r15d, word [rsp + 0x108]
jmp 0x1403a258d
mov r9d, dword [rsp + 0x58]
movzx r15d, word [rsp + 0x108]
mov r10, qword [rsp + 0xf8]
xor ebp, ebp
lea r13d, [rbp + 1]
cmp word [rsp + 0x54], bp
je 0x1403a26f4
lea eax, [rbx + r13]
mov word [rdi + 0x1e], ax
test r15b, 0x40
jne 0x1403a27ac
mov r15b, byte [rsp + 0x34]
movsxd rax, r12d
shl rax, 5
mov dl, byte [rax + r10 + 0x18]
and dl, r13b
test r15b, r15b
je 0x1403a277d
mov r11b, byte [rsp + 0x33]
mov ecx, ebp
mov r8b, byte [rsp + 0x32]
xor r8b, r11b
movzx eax, r13b
cmp r8b, dl
mov byte [rsp + 0x33], r11b
mov byte [rsp + 0x34], r15b
cmove ecx, eax
test cl, cl
jne 0x1403a27a3
mov r11d, dword [rsp + 0x48]
xor r12d, r12d
test ebx, ebx
je 0x1403a2753
movzx eax, word [rsp + 0x4c]
cmp ebx, eax
jge 0x1403a275a
mov al, r12b
mov dword [rsp + 0x38], eax
mov r10, qword [rsp + 0xf8]
mov edx, 1
test r11b, r11b
je 0x1403a2807
mov r13b, dl
mov dword [rsp + 0x38], r13d
jmp 0x1403a281f
xor dl, byte [rsp + 0x32]
mov byte [rsp + 0x33], dl
je 0x1403a279e
mov rdx, qword [rsp + 0x120]
movsxd rax, dword [rsp + 0x50]
mov rcx, qword [rdx]
bts rcx, rax
mov qword [rdx], rcx
mov byte [rsp + 0x34], r13b
movzx r15d, word [rsp + 0x108]
movsxd rcx, r12d
mov rax, rcx
shl rax, 5
test byte [rax + r10 + 0x18], 2
je 0x1403a27cf
movzx eax, word [rdi + 0x18]
cmp ebx, eax
jne 0x1403a273e
bts dword [rdi + 0x38], 0x13
mov r11d, dword [rsp + 0x48]
or eax, 0xffffffff
cmp r9d, eax
movzx r11d, r11b
cmove r11d, r13d
bts rsi, rcx
mov r13d, dword [rsp + 0x38]
lea edx, [rax + 2]
xor r12d, r12d
mov dword [rsp + 0x48], r11d
add ebx, edx
cmp ebx, dword [rsp + 0x68]
jge 0x1403a2767
jmp 0x1403a248e
mov r13d, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x3c]
test r13b, r13b
je 0x1403a28c5
mov edx, 1
mov rbp, qword [rsp + 0x70]
mov ebx, r12d
or rbp, qword [rdi + 8]
mov r12d, dword [rsp + 0x3c]
mov qword [rsp + 0x70], rbp
test r12d, r12d
je 0x1403a28bf
mov r13, qword [rsp + 0xf0]
mov rdi, rbp
mov eax, ebx
bt rsi, rax
jb 0x1403a28a3
mov eax, ebx
lea rcx, [r13 + 0x268]
shl rax, 5
mov r15d, ebx
mov rbp, qword [rax + r10 + 8]
mov rdx, rbp
call fcn.140393140
mov r14, rax
test rax, rax
jne 0x1403a2888
xor r8d, r8d
lea edx, [rax + 1]
mov rcx, rbp
call fcn.140309e74
test eax, eax
je 0x1403a289e
mov rax, rdi
mov edx, 1
not rax
test r14, rax
jne 0x1403a28a3
bts rsi, r15
jmp 0x1403a28a3
mov edx, 1
mov r10, qword [rsp + 0xf8]
add ebx, edx
cmp ebx, r12d
jl 0x1403a2849
mov rdi, qword [rsp + 0x88]
mov r13d, dword [rsp + 0x38]
mov r8d, r12d
xor r12d, r12d
movzx r15d, word [rsp + 0x108]
mov ecx, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x78]
mov r11, qword [rsp + 0xf0]
movzx r9d, word [rsp + 0x30]
mov rbp, qword [rsp + 0x60]
mov r14, qword [rsp + 0x100]
mov eax, 1
add qword [rsp + 0x80], rax
add ecx, eax
mov rbx, qword [rsp + 0x80]
mov dword [rsp + 0x50], ecx
test r13b, r13b
jne 0x1403a21f7
cmp rsi, rdx
jne 0x1403a293b
mov al, byte [rsp + 0x56]
jmp 0x1403a2979
cmp byte [rdi + 0x20], r12b
je 0x1403a293b
mov eax, 0x280
and r15w, ax
mov eax, 0x80
cmp r15w, ax
jne 0x1403a291b
test r13b, r13b
jne 0x1403a2991
mov edx, dword [rsp + 0x3c]
dec edx
test edx, edx
jle 0x1403a2977
mov r8d, 1
mov ecx, edx
mov rax, r8
shl rax, cl
mov rcx, r12
sub rax, r8
cmp edx, 0x40
cmovl rcx, rax
mov rax, rcx
and rax, rsi
cmp rax, rcx
je 0x1403a298d
sub edx, r8d
test edx, edx
jg 0x1403a2950
xor al, al
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov al, dl
jmp 0x1403a2979
or eax, 0xffffffff
jmp 0x1403a2979