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

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x118
mov rax, qword [0x1400d1090]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov rax, qword [rcx]
mov rsi, r8
mov qword [rsp + 0x48], rdx
mov rax, qword [rax]
mov r8, rdx
mov rdx, rcx
mov rdi, qword [rdx + 0x18]
mov qword [rsp + 0x70], rcx
mov rcx, qword [rax]
mov word [rsp + 0x38], r9w
xor r9d, r9d
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x78], rcx
mov ebp, r9d
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x58], r9
cmp byte [rcx + 0x63], r9b
je 0x14006c358
lea eax, [r9 + 7]
jmp 0x14006cb87
mov eax, dword [rdi + 0x28]
mov dword [rsp + 0x60], eax
and al, 0x20
neg al
sbb ecx, ecx
and ecx, 0xfffffe59
add ecx, 0x1bf
test byte [rsi + 0x64], 4
je 0x14006c37a
and ecx, 0xffffffc3
movzx r9d, word [rdi + 0x1a]
movzx eax, word [rdi + 0x18]
mov r8d, dword [r8 + 0x44]
mov rdx, qword [rdx + 8]
mov word [rsp + 0x40], r9w
movzx r9d, word [rdi + 0x1c]
mov word [rsp + 0x42], r9w
movzx r9d, word [rdi + 0x2e]
mov qword [rsp + 0x28], rsi
mov word [rsp + 0x44], r9w
movzx r9d, word [rdi + 0x2c]
mov dword [rsp + 0x20], ecx
mov word [rsp + 0x3e], r9w
mov r9, qword [rdi]
lea rcx, [rsp + 0x90]
mov qword [rsp + 0x80], r9
movzx r9d, word [rdi + 0x16]
mov word [rsp + 0x30], ax
mov word [rsp + 0x3a], r9w
mov r9d, eax
mov dword [rsp + 0x68], eax
call fcn.14006abfc
xor r11d, r11d
mov rbx, rax
mov word [rdi + 0x12], r11w
mov rax, qword [rsi + 0x10]
movzx eax, word [rax]
lea ecx, [r11 + 0xa]
mov word [rsp + 0x64], ax
cmp ax, cx
jg 0x14006c412
mov word [rsp + 0x3c], r11w
jmp 0x14006c424
movsx rcx, ax
call fcn.1400074f8
sub ax, 0x21
mov word [rsp + 0x3c], ax
mov edx, 0x10
mov ecx, 0x100
lea r10d, [rdx - 0xf]
test rbx, rbx
je 0x14006ca4e
movzx r8d, word [rbx + 0x14]
mov dword [rsp + 0x34], r11d
mov word [rsp + 0x32], r8w
cmp r8w, cx
je 0x14006c45b
test byte [rbx + 0x12], 0x80
je 0x14006c4f8
movzx r9d, word [rsp + 0x30]
mov rax, qword [rsi + 8]
movsx rdx, word [rax + r9*2]
test edx, edx
js 0x14006c484
mov rax, qword [rsi + 0x18]
mov rcx, rdx
mov rax, qword [rax + 8]
shl rcx, 5
movzx edx, byte [rax + rcx + 0x18]
jmp 0x14006c490
cmp edx, 0xffffffff
je 0x14006ca1e
mov edx, r11d
test edx, edx
jne 0x14006ca1e
mov ecx, 0x100
mov edx, 0x10
mov rax, qword [rdi + 8]
test qword [rbx + 0x28], rax
jne 0x14006ca1e
test word [rbx + 0x12], cx
je 0x14006c4c0
cmp r8w, dx
je 0x14006ca1e
mov rax, qword [rsp + 0x48]
test byte [rax + 0x3c], 8
je 0x14006c4d8
mov rax, qword [rbx]
test byte [rax + 4], r10b
je 0x14006ca1e
cmp byte [rsi + 0x62], r11b
je 0x14006c500
movzx eax, word [rsi + 0x5e]
movzx ecx, r9w
sub eax, r10d
cmp ecx, eax
jne 0x14006c500
mov rax, qword [rsp + 0x70]
or byte [rax + 0x28], 2
jmp 0x14006c509
movzx r9d, word [rsp + 0x30]
jmp 0x14006c4a2
mov rax, qword [rsp + 0x70]
or byte [rax + 0x28], r10b
mov eax, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
mov rdx, rdi
mov dword [rdi + 0x28], eax
movzx eax, word [rsp + 0x40]
mov word [rdi + 0x18], r9w
mov word [rdi + 0x1a], ax
movzx eax, word [rsp + 0x42]
mov word [rdi + 0x1c], ax
movzx eax, word [rsp + 0x3e]
lea r8d, [r10 + rax]
mov word [rdi + 0x2c], ax
call fcn.14006baf0
xor r11d, r11d
test eax, eax
jne 0x14006ca48
movzx ecx, word [rdi + 0x2c]
mov rax, qword [rdi + 0x38]
movzx r10d, word [rsp + 0x32]
mov qword [rax + rcx*8], rbx
mov rcx, qword [rsp + 0x80]
mov rax, qword [rdi + 8]
lea edx, [r11 + 1]
not rax
add word [rdi + 0x2c], dx
or rcx, qword [rbx + 0x28]
and rcx, rax
mov qword [rdi], rcx
test dl, r10b
je 0x14006c6a0
mov r8, qword [rbx]
test dword [r8 + 4], 0x800
je 0x14006c5da
movzx eax, word [rdi + 0x2c]
lea r11d, [rdx + 0x2d]
xor r9d, r9d
sub eax, edx
mov dword [rsp + 0x34], r11d
test eax, eax
jle 0x14006c5fb
movzx eax, word [rdi + 0x2c]
mov rcx, qword [rdi + 0x38]
lea ebp, [r11 - 0x2d]
sub eax, edx
mov edx, eax
cmp qword [rcx], r9
je 0x14006c5ca
mov rax, qword [rcx]
cmp qword [rax], r8
cmove r11d, r9d
add rcx, 8
sub rdx, rbp
jne 0x14006c5bb
mov dword [rsp + 0x34], r11d
jmp 0x14006c5fb
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x14006c5f6
cmp dword [rax], r11d
je 0x14006c5f6
movsxd rcx, dword [rax]
call fcn.1400074f8
movsx r11d, ax
jmp 0x14006c5d3
mov r11d, dword [rsp + 0x34]
test byte [rsi + 0x64], 0x80
je 0x14006c64f
movzx ebp, word [rsp + 0x3c]
mov edx, 0xa
cmp bp, dx
jl 0x14006c64f
movzx ecx, word [rsp + 0x30]
mov rax, qword [rsi + 0x10]
movzx r9d, word [rax + rcx*2]
cmp r11w, dx
jg 0x14006c628
xor eax, eax
jmp 0x14006c635
movsx rcx, r11w
call fcn.1400074f8
sub ax, 0x21
movsx ecx, ax
movsx eax, r9w
lea edx, [rcx + rax + 0xa]
movsx eax, bp
add eax, r11d
cmp edx, eax
jge 0x14006c64f
bts dword [rdi + 0x28], 0x14
or dword [rdi + 0x28], 4
movzx r9d, word [rsp + 0x30]
mov edx, 1
mov r11, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x48]
test byte [rdi + 0x28], 2
je 0x14006c8d7
movsx r8d, word [rdi + 0x16]
xor r9d, r9d
movzx edx, r8w
test rax, rax
je 0x14006c869
cmp word [rax + 0x10], r9w
jg 0x14006c85f
add dx, word [rax + 0x10]
jmp 0x14006c869
test r10b, 0x82
je 0x14006c721
mov rax, qword [rsi + 8]
movzx r9d, word [rsp + 0x30]
mov ebp, 1
movsx edx, word [rax + r9*2]
or dword [rdi + 0x28], ebp
mov ecx, dword [rdi + 0x28]
cmp edx, 0xffffffff
je 0x14006c700
test edx, edx
js 0x14006c707
cmp word [rsp + 0x38], r11w
jne 0x14006c707
movzx edx, word [rsi + 0x5e]
movzx r8d, r9w
mov eax, edx
sub eax, ebp
cmp r8d, eax
jne 0x14006c707
test byte [rsi + 0x64], 8
jne 0x14006c700
cmp dx, bp
jne 0x14006c6fa
cmp byte [rsi + 0x62], r11b
je 0x14006c6fa
cmp r10w, 2
je 0x14006c700
bts ecx, 0x10
jmp 0x14006c704
bts ecx, 0xc
mov dword [rdi + 0x28], ecx
mov rdx, rbp
cmp byte [rsp + 0xb2], dl
jbe 0x14006c65e
bts dword [rdi + 0x28], 0x15
jmp 0x14006c65e
mov eax, 0x100
test ax, r10w
je 0x14006c73b
or dword [rdi + 0x28], 8
movzx r9d, word [rsp + 0x30]
jmp 0x14006c65e
mov r9d, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x20], rbx
mov r8, rsi
test r10b, 0x24
je 0x14006c7f0
mov rax, qword [rsp + 0x48]
or dword [rdi + 0x28], 0x22
mov edx, dword [rax + 0x44]
call fcn.14006c174
xor ecx, ecx
mov edx, 0x100
mov word [rdi + 0x1a], ax
mov rax, rbx
mov qword [rsp + 0x58], rbx
mov r11d, ecx
mov qword [rsp + 0x50], rcx
test word [rbx + 0x12], dx
je 0x14006c849
movzx r8d, word [rdi + 0x2c]
mov rcx, qword [rsp + 0x78]
lea rax, [rbx + 0x38]
inc r8d
mov rdx, rdi
mov qword [rsp + 0x50], rax
call fcn.14006baf0
xor r9d, r9d
test eax, eax
jne 0x14006ca48
mov rax, qword [rdi + 0x38]
movzx ecx, word [rdi + 0x2c]
mov r11, qword [rsp + 0x50]
movzx r10d, word [rsp + 0x32]
mov qword [rax + rcx*8], r11
lea edx, [r9 + 1]
add word [rdi + 0x2c], dx
movzx r9d, word [rsp + 0x30]
lea eax, [rdx + 0xf]
or dword [rdi + 0x28], eax
mov word [rdi + 0x1c], dx
mov rax, rbx
jmp 0x14006c668
or dword [rdi + 0x28], 0x12
mov rbp, qword [rsp + 0x48]
mov edx, dword [rbp + 0x44]
call fcn.14006c174
test byte [rdi + 0x28], 0x20
movzx r10d, word [rsp + 0x32]
movzx r9d, word [rsp + 0x30]
mov word [rdi + 0x1c], ax
mov r11, rbx
mov qword [rsp + 0x50], rbx
mov edx, 1
je 0x14006c83b
movzx ecx, word [rdi + 0x2c]
mov rax, qword [rdi + 0x38]
mov rax, qword [rax + rcx*8 - 0x10]
mov qword [rsp + 0x58], rax
jmp 0x14006c66d
xor ecx, ecx
mov eax, ecx
mov qword [rsp + 0x58], rcx
jmp 0x14006c66d
movzx r10d, word [rsp + 0x32]
movzx r9d, word [rsp + 0x30]
mov edx, 1
jmp 0x14006c668
test byte [rax + 0x12], 0x80
jne 0x14006c869
lea edx, [r8 - 0x14]
test r11, r11
je 0x14006c887
cmp word [r11 + 0x10], r9w
jg 0x14006c87c
add dx, word [r11 + 0x10]
jmp 0x14006c887
test byte [r11 + 0x12], 0x80
jne 0x14006c887
sub dx, 0x14
test rax, rax
je 0x14006c8a3
cmp word [rax + 0x10], r9w
jle 0x14006c8a3
test r11, r11
je 0x14006c8a3
cmp word [r11 + 0x10], r9w
jle 0x14006c8a3
sub dx, 0x14
test rax, rax
mov eax, r9d
mov ecx, r9d
setne cl
test r11, r11
setne al
add ecx, eax
mov eax, 0xa
sub r8d, ecx
cmp dx, ax
jge 0x14006c8c6
mov edx, eax
movsx eax, dx
cmp eax, r8d
cmovl r8d, eax
mov word [rdi + 0x16], r8w
jmp 0x14006c934
add word [rdi + 0x18], dx
movzx edx, word [rbx + 0x10]
movzx r8d, word [rdi + 0x18]
test dx, dx
jg 0x14006c90a
mov rax, qword [rsi + 8]
movzx ecx, r9w
xor r9d, r9d
cmp word [rax + rcx*2], r9w
jl 0x14006c90a
mov r10d, dword [rsp + 0x34]
sub dx, r10w
add word [rdi + 0x16], dx
jmp 0x14006c939
mov rax, qword [rsi + 0x10]
movzx ecx, word [rax + r8*2]
sub cx, word [rax + r8*2 - 2]
add word [rdi + 0x16], cx
movzx eax, word [rdi + 0x16]
mov ecx, 0x100
test cx, r10w
je 0x14006c934
add ax, 0xa
mov word [rdi + 0x16], ax
mov r10d, dword [rsp + 0x34]
mov rax, qword [rbp + 0x20]
movsx edx, word [rsi + 0x5c]
movsx ecx, word [rax + 0x4c]
imul edx, edx, 0xf
mov eax, edx
cdq
idiv ecx
movzx ecx, word [rsp + 0x3c]
mov edx, 1
add ax, word [rdi + 0x16]
add dx, ax
call fcn.14000748c
test dword [rdi + 0x28], 0x140
mov word [rdi + 0x14], ax
jne 0x14006c984
movzx edx, word [rdi + 0x16]
movzx ecx, ax
add dx, 0x10
call fcn.14000748c
mov word [rdi + 0x14], ax
movzx ecx, word [rsp + 0x38]
movzx ebx, word [rdi + 0x16]
mov rbp, qword [rsp + 0x70]
movzx r8d, word [rsp + 0x64]
lea eax, [r10 + rcx]
mov rdx, rdi
add word [rdi + 0x14], ax
lea eax, [r10 + rcx]
add word [rdi + 0x16], ax
mov rcx, qword [rbp + 8]
call fcn.14006c02c
mov rdx, rdi
mov rcx, rbp
call fcn.14006bde8
test byte [rdi + 0x28], 2
movzx edx, word [rsp + 0x3a]
cmovne bx, dx
mov ebp, eax
mov eax, 0x10
mov word [rdi + 0x16], bx
test byte [rdi + 0x28], al
jne 0x14006ca1a
movzx ecx, word [rdi + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x14006ca1a
cmp cx, word [rsi + 0x5e]
jb 0x14006c9f5
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, 2
je 0x14006ca1a
movzx r9d, word [rsp + 0x38]
mov eax, dword [rsp + 0x34]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
add r9w, ax
mov r8, rsi
call fcn.14006c2e8
movzx edx, word [rsp + 0x3a]
mov word [rdi + 0x16], dx
lea rcx, [rsp + 0x90]
call fcn.14006a99c
xor r11d, r11d
mov ecx, 0x100
mov rbx, rax
lea edx, [r11 + 0x10]
lea r10d, [r11 + 1]
test ebp, ebp
je 0x14006c432
jmp 0x14006ca4e
mov r10d, 1
mov rax, qword [rsp + 0x80]
movzx edx, word [rsp + 0x30]
movzx ecx, word [rsp + 0x44]
movzx r8d, word [rsp + 0x3e]
mov qword [rdi], rax
movzx eax, word [rsp + 0x40]
mov word [rdi + 0x1a], ax
movzx eax, word [rsp + 0x42]
mov word [rdi + 0x18], dx
mov word [rdi + 0x1c], ax
mov eax, dword [rsp + 0x60]
mov word [rdi + 0x2e], cx
mov dword [rdi + 0x28], eax
movzx eax, word [rsp + 0x3a]
mov word [rdi + 0x2c], r8w
mov word [rdi + 0x16], ax
cmp dx, cx
jne 0x14006cb85
movzx ecx, word [rsi + 0x5e]
movzx eax, dx
inc eax
cmp eax, ecx
jge 0x14006cb85
cmp dx, r8w
jne 0x14006cb85
test byte [rsi + 0x64], 0x40
jne 0x14006cb85
test byte [rsi + 0x64], 0x80
je 0x14006cb85
mov rcx, qword [rsp + 0x78]
test dword [rcx + 0x5c], 0x4000
jne 0x14006cb85
mov rax, qword [rsi + 0x10]
movzx ebx, dx
cmp word [rax + rbx*2 + 2], 0x2a
jl 0x14006cb85
movzx r8d, r8w
mov rdx, rdi
add r8d, r10d
call fcn.14006baf0
xor edx, edx
mov ebp, eax
test eax, eax
jne 0x14006cb85
movzx ecx, word [rdi + 0x2c]
lea r8d, [rax + 1]
mov rax, qword [rdi + 0x38]
add word [rdi + 0x18], r8w
add word [rdi + 0x2e], r8w
mov qword [rax + rcx*8], rdx
add word [rdi + 0x2c], r8w
bts dword [rdi + 0x28], 0xf
mov rax, qword [rsi + 0x10]
movzx r9d, word [rax + rbx*2]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
sub r9w, word [rax + rbx*2 + 2]
mov r8, rsi
sub word [rdi + 0x16], r9w
add r9w, word [rsp + 0x38]
add r9w, 5
call fcn.14006c2e8
movzx eax, word [rsp + 0x3a]
movzx r9d, word [rsp + 0x44]
mov word [rdi + 0x16], ax
movzx eax, word [rsp + 0x30]
mov word [rdi + 0x2e], r9w
mov word [rdi + 0x18], ax
mov eax, dword [rsp + 0x60]
mov dword [rdi + 0x28], eax
mov eax, ebp
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.14009e400
add rsp, 0x118
pop rdi
pop rsi
pop rbp
pop rbx
ret