Function at 0x140299bbc
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 [0x1403cdfa8]
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 0x140299c4b
lea eax, [r10 + 7]
jmp 0x14029a6ab
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.14029d658
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 0x140299d0b
mov word [rsp + 0x3a], r9w
jmp 0x140299d1c
mov rcx, rax
call fcn.14026b880
sub ax, 0x21
mov word [rsp + 0x3a], ax
mov edx, 2
mov ecx, 0x100
lea r8d, [rdx + 0xe]
lea r10d, [rdx - 1]
test r12, r12
je 0x14029a57f
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 0x140299d5f
test byte [r12 + 0x12], 0x80
je 0x140299da7
mov rax, qword [rsi + 8]
movzx ecx, r15w
movsx r8, word [rax + rcx*2]
test r8d, r8d
js 0x140299d92
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
test dword [rax + rcx*8 + 8], 0xf
jne 0x14029a52b
mov edx, 2
jmp 0x140299d9c
cmp r8d, 0xffffffff
je 0x14029a52b
mov ecx, 0x100
mov r8d, 0x10
mov rax, qword [rbx + 8]
test qword [r12 + 0x28], rax
jne 0x14029a52b
test word [r12 + 0x12], cx
je 0x140299dc8
cmp di, r8w
je 0x14029a52b
mov rax, qword [rsp + 0x80]
test byte [rax + 0x3c], 0x58
je 0x140299df0
mov rcx, qword [r12]
test byte [rcx + 4], 3
je 0x14029a52b
mov eax, dword [rax + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x14029a52b
cmp byte [rsi + 0x62], r9b
je 0x140299e0b
movzx eax, word [rsi + 0x5e]
sub eax, r10d
movzx ecx, r15w
cmp ecx, eax
jne 0x140299e0b
or byte [r13 + 0x2c], dl
jmp 0x140299e0f
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.14029b9bc
xor r9d, r9d
test eax, eax
jne 0x14029a574
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 0x140299fcb
mov r8, qword [r12]
test dword [r8 + 4], 0x1000
je 0x140299edf
movzx ecx, dx
lea r11d, [r9 + 0x2e]
dec ecx
mov dword [rsp + 0x34], r11d
test ecx, ecx
jle 0x140299f00
mov rax, qword [rbx + 0x48]
lea r10d, [r9 + 1]
mov edx, ecx
mov rcx, qword [rax]
test rcx, rcx
je 0x140299ecf
cmp qword [rcx], r8
cmove r11d, r9d
add rax, 8
sub rdx, r10
jne 0x140299ec0
mov dword [rsp + 0x34], r11d
jmp 0x140299f00
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x140299efb
cmp dword [rax], r9d
je 0x140299efb
movsxd rcx, dword [rax]
call fcn.14026b880
movsx r11d, ax
jmp 0x140299ed8
mov r11d, dword [rsp + 0x34]
test byte [rsi + 0x64], 0x80
je 0x140299fc3
movzx edi, word [rsp + 0x3a]
mov edx, 0xa
cmp di, dx
jl 0x140299fc3
movzx r10d, word [rsp + 0x30]
mov rax, qword [rsi + 0x10]
movzx r9d, word [rax + r10*2]
cmp r11w, dx
jg 0x140299f3b
xor r8d, r8d
movzx eax, r8w
jmp 0x140299f4d
movsx rcx, r11w
call fcn.14026b880
sub ax, 0x21
mov edx, 0xa
sub ax, r11w
sub ax, di
add ax, r9w
add ax, dx
jns 0x140299f82
mov rdi, qword [rsp + 0x40]
mov eax, 2
cmp bp, ax
jge 0x14029a567
test dword [rdi + 0x60], 0x20000
jne 0x14029a567
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 0x14029a1a4
mov r8, rcx
mov qword [rsp + 0x20], rbx
mov rcx, r14
mov r9, rax
mov rdx, r13
call fcn.14029cd50
jmp 0x14029a440
movzx r10d, word [rsp + 0x30]
jmp 0x140299f85
test dil, 0x82
je 0x14029a056
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 0x14029a033
mov ecx, edx
test r8d, r8d
js 0x14029a03c
test bp, bp
jne 0x14029a03c
movzx r8d, word [rsi + 0x5e]
mov eax, r8d
sub eax, r11d
cmp r10d, eax
jne 0x14029a03c
test byte [rsi + 0x64], 8
jne 0x14029a033
cmp r8w, r11w
jne 0x14029a02d
xor r8d, r8d
cmp byte [rsi + 0x62], r8b
je 0x14029a02d
lea eax, [r8 + 2]
cmp di, ax
je 0x14029a033
bts ecx, 0x10
jmp 0x14029a039
mov ecx, edx
bts ecx, 0xc
mov dword [rbx + 0x38], ecx
cmp byte [rsp + 0xe9], r11b
jbe 0x140299f8f
bts ecx, 0x15
mov dword [rbx + 0x38], ecx
jmp 0x140299f8f
bt di, 8
mov eax, dword [rbx + 0x38]
jae 0x14029a071
movzx r10d, word [rsp + 0x30]
or eax, 8
mov dword [rbx + 0x38], eax
jmp 0x140299f8f
mov r9d, dword [rsp + 0x78]
mov r8, rsi
mov qword [rsp + 0x20], r12
test dil, 0x24
je 0x14029a12f
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.14029d4b4
xor r9d, r9d
mov word [rbx + 0x1a], ax
mov edx, 0x100
mov eax, r9d
mov rcx, r12
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rcx
test word [r12 + 0x12], dx
je 0x14029a193
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.14029b9bc
xor r9d, r9d
test eax, eax
jne 0x14029a579
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 0x140299f99
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.14029d4b4
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 0x14029a186
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 0x140299f9e
mov rcx, r9
mov qword [rsp + 0x68], rcx
jmp 0x140299f9e
movzx r10d, word [rsp + 0x30]
mov r11d, 1
jmp 0x140299f99
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 0x14029a1e3
mov rax, qword [rsi + 8]
movzx ecx, r10w
cmp word [rax + rcx*2], r9w
jl 0x14029a1e3
mov r15d, dword [rsp + 0x34]
sub dx, r15w
add word [rbx + 0x16], dx
jmp 0x14029a445
mov dword [rsp + 0x8c], r9d
mov dword [rsp + 0x54], r9d
cmp word [rsp + 0x32], r9w
jne 0x14029a40c
cmp dword [rsi + 0x68], r9d
je 0x14029a40c
cmp edi, dword [rsi + 0x6c]
jg 0x14029a40c
test r15w, r15w
je 0x14029a226
mov rax, qword [r12]
test dword [rax + 4], 0x1000
jne 0x14029a40c
mov rax, qword [rsp + 0x40]
test dword [rax + 0x60], 0x800
jne 0x14029a40c
mov rax, qword [r12]
mov ecx, 0x182
test word [rsp + 0x48], cx
je 0x14029a26a
mov r8, qword [rax + 0x18]
lea r9, [rsp + 0x54]
mov rdx, r13
mov rcx, r14
call fcn.140298dc8
mov ebp, dword [rsp + 0x54]
mov ecx, eax
xor r9d, r9d
jmp 0x14029a32a
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.14026b9f8
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 0x14029a2ef
mov r8, qword [r13]
lea r9, [rsp + 0x54]
mov rdx, rbx
mov dword [rsp + 0x54], r12d
mov rcx, rbp
mov edi, r12d
call fcn.140298dc8
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 0x14029a2b0
mov rbx, qword [rsp + 0xb0]
mov ebp, dword [rsp + 0x8c]
test ecx, ecx
jne 0x14029a30e
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 0x14029a56f
test ebp, ebp
je 0x14029a40c
mov eax, ebp
lea r8d, [r14 + 0x28]
movzx ecx, r8w
cmp rax, 8
jae 0x14029a370
cmp rax, 2
jae 0x14029a361
movzx ecx, r9w
jmp 0x14029a3ad
add cx, 0xfff6
add rax, rax
cmp rax, 8
jb 0x14029a361
jmp 0x14029a39b
mov edx, 0xff
jmp 0x14029a37f
add cx, r8w
shr rax, 4
cmp rax, rdx
ja 0x14029a377
cmp rax, 0xf
jbe 0x14029a39b
mov edx, 0xa
add cx, dx
shr rax, 1
cmp rax, 0xf
ja 0x14029a38f
and eax, 7
lea rdx, [0x1403c9620]
sub cx, 0xa
add cx, word [rdx + rax*2]
mov eax, 1
mov word [rbx + 0x16], cx
cmp di, ax
jne 0x14029a3e9
mov rax, qword [rsi + 0x10]
movsx edx, cx
add edx, 0xa
movsx ecx, word [rax]
cmp edx, ecx
jle 0x14029a3e9
mov eax, 0x4000
or word [r12 + 0x12], ax
mov eax, 0x2000
test word [r12 + 0x12], ax
je 0x14029a3e9
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 0x14029a445
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, 0x100
add dx, word [rbx + 0x16]
movzx eax, dx
mov word [rbx + 0x16], dx
test word [rsp + 0x48], cx
je 0x14029a440
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.14026b8e0
test dword [rbx + 0x38], 0x140
jne 0x14029a48e
mov edx, 0x10
movzx ecx, ax
add edx, edi
call fcn.14026b8e0
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.14029b808
mov rdx, rbx
mov rcx, r13
call fcn.14029b630
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 0x14029a511
movzx ecx, word [rbx + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x14029a511
cmp cx, word [rsi + 0x5e]
jb 0x14029a4ff
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, r8b
je 0x14029a511
lea r9d, [r15 + rbp]
mov r8, rsi
mov rdx, r12
mov rcx, r13
call fcn.140299bbc
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.14029d74c
xor r9d, r9d
mov qword [rsp + 0xa0], rax
mov r12, rax
mov ecx, 0x100
lea edx, [r9 + 2]
lea r10d, [r9 + 1]
lea r8d, [r9 + 0x10]
test r14d, r14d
je 0x140299d2e
jmp 0x14029a57f
movzx r15d, word [rsp + 0x30]
jmp 0x14029a530
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 0x14029a6a8
movzx ecx, word [rsi + 0x5e]
lea eax, [r15 + 1]
cmp eax, ecx
jae 0x14029a6a8
cmp r15w, r8w
jne 0x14029a6a8
test byte [rsi + 0x64], 0x40
jne 0x14029a6a8
test byte [rsi + 0x64], 0x80
je 0x14029a6a8
mov eax, 0x4000
test dword [rdi + 0x60], eax
jne 0x14029a6a8
mov rax, qword [rsi + 0x10]
cmp word [rax + r15*2 + 2], 0x2a
jl 0x14029a6a8
mov rcx, qword [rsp + 0x40]
add r8d, r10d
mov rdx, rbx
call fcn.14029b9bc
xor r8d, r8d
mov r14d, eax
test eax, eax
jne 0x14029a6a8
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.140299bbc
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.1402a4c80
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret