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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
mov rbp, qword [rsp + 0x170]
mov edi, dword [rsp + 0x178]
mov qword [rsp + 0x158], rdx
movsxd rax, r8d
mov rdx, qword [rcx + 0x18]
lea rax, [rax + rax*2]
mov qword [rsp + 0x150], rcx
mov dword [rsp + 0x160], r8d
mov esi, r9d
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
shl rax, 9
add rax, qword [rdx + 0x38]
mov rbx, qword [rax + 0xc0]
mov qword [rsp + 0x30], rax
test rbx, rbx
je 0x14006fe84
cmp qword [rbx + 0x20], 0
je 0x1400701b6
test rbp, rbp
je 0x140070194
cmp edi, 0xe
jle 0x14006f8fc
mov rcx, qword [rax + 0xf8]
test rcx, rcx
je 0x140070189
mov edx, dword [rax + 0xf4]
mov eax, dword [rax + 0xf0]
cmp edx, eax
jl 0x14006f8cc
add eax, 0xa
mov r8d, 0x18
movsxd rdx, eax
call fcn.14036db20
test rax, rax
je 0x14006f8fc
mov rcx, qword [rsp + 0x30]
add dword [rcx + 0xf0], 0xa
mov qword [rcx + 0xf8], rax
mov edx, dword [rcx + 0xf4]
mov rcx, rax
movsxd rax, edx
add edx, 1
lea rax, [rax + rax*2]
lea rax, [rcx + rax*8]
mov qword [rax], rbp
mov dword [rax + 8], edi
mov dword [rax + 0xc], esi
mov dword [rax + 0x10], 0
mov dword [rax + 0x14], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0xf4], edx
mov r9, qword [rsp + 0x150]
mov r8, qword [rsp + 0x158]
xor edx, edx
mov rcx, rbx
mov dword [rsp + 0x20], 0
call fcn.140075e60
lea rax, [rsp + 0x90]
mov rcx, qword [rbx + 0x20]
mov rdx, rax
mov qword [rsp + 0x80], rax
call fcn.140043fe0
lea rcx, [rbx + 0x20]
mov r12d, eax
mov edx, 0x5aa
call fcn.140043c60
test r12d, r12d
mov dword [rsp + 0x5c], eax
jle 0x14006fdc2
shr eax, 0x1f
test al, al
jne 0x14006fdc2
lea rcx, [rsp + 0x98]
call fcn.140043ac0
test eax, eax
mov dword [rsp + 0x5c], eax
js 0x14006fdc2
lea rax, [rsp + 0xa0]
mov rcx, rax
mov qword [rsp + 0x88], rax
call fcn.1400947b0
mov r14, qword [rsp + 0x98]
mov r8d, 1
xor edx, edx
mov rbx, qword [rsp + 0x90]
mov rcx, r14
call fcn.14003aae0
xor edx, edx
mov rcx, r14
mov qword [rsp + 0x68], rax
call fcn.14003cd10
xor edx, edx
mov rcx, r14
call fcn.14003cd10
cmp r12d, 4
jle 0x14006fcf3
mov dword [rsp + 0x4c], 0
mov r15, r14
mov esi, dword [rbx]
lea edx, [r12 - 4]
lea rbp, [rbx + 4]
bswap esi
cmp esi, edx
ja 0x14006fffd
cmp esi, 0xc
jbe 0x14006fffd
movzx eax, byte [rbx + 5]
lea ecx, [rax + 0x40]
cmp cl, 3
jbe 0x1400700c2
add eax, 0x38
cmp al, 0xa
jbe 0x1400700c2
mov rax, qword [rsp + 0x30]
cmp esi, dword [rax + 0xd8]
jbe 0x14006fa2e
mov dword [rax + 0xd8], esi
mov rcx, qword [rsp + 0x30]
movzx edi, word [rbx + 6]
mov edx, dword [rbx + 8]
mov eax, dword [rcx + 0xc8]
rol di, 8
bswap edx
test eax, eax
jne 0x14007012a
xor r13d, r13d
movabs rax, 0x8000000000000000
cmp qword [rsp + 0xb0], rax
mov dword [rcx + 0xc8], edx
jne 0x1400700d1
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0xd0]
mov qword [rsp + 0xb0], rax
xor edx, edx
mov rcx, r15
add dword [rsp + 0x4c], 1
call fcn.14003bbc0
mov r8d, 2
mov rdx, rbp
mov rcx, r15
call fcn.14003b480
movzx edx, di
mov rcx, r15
call fcn.14003cd10
test r13d, r13d
je 0x1400700fc
mov edx, 4
mov rcx, r15
call fcn.14003cd10
mov r8d, 1
xor edx, edx
mov rcx, r15
call fcn.14003aae0
xor edx, edx
mov rcx, r15
mov qword [rsp + 0x60], rax
call fcn.14003cd10
mov edx, 0x10
mov rcx, r15
call fcn.14003bbc0
mov edx, 0xc
mov rcx, r15
call fcn.14003bbc0
lea rdx, str.rtpo
mov rcx, r15
mov r8d, 4
call fcn.14003b480
mov edx, r13d
mov rcx, r15
call fcn.14003bbc0
lea ecx, [r12 - 0x10]
lea rax, [rbx + 0x10]
mov dword [rsp + 0x58], 0
mov qword [rsp + 0x50], r15
mov dword [rsp + 0x78], ecx
lea ecx, [rsi - 0xc]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x7c], ecx
mov r13d, ecx
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0xf4]
mov dword [rsp + 0x3c], eax
nop word [rax + rax]
mov r9d, dword [rsp + 0x3c]
test r9d, r9d
jle 0x14006fc88
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0xf8]
mov ebp, dword [rcx + 0x10]
mov r12d, dword [rcx + 8]
test ebp, ebp
jne 0x14006fb99
xor ebp, ebp
cmp r12d, 5
jle 0x14006fb99
mov dword [rcx + 0x10], 5
mov ebp, 5
mov r15, qword [rcx]
movsxd r14, ebp
mov rdx, qword [rsp + 0x40]
mov r9d, r12d
xor r11d, r11d
sub r9d, ebp
lea r8, [r15 + r14]
cmp r13d, r11d
jle 0x14006fc4f
cmp r12d, ebp
jle 0x14006fc4f
mov esi, r13d
movzx edi, byte [rdx]
xor eax, eax
sub esi, r11d
xor ebx, ebx
cmp byte [r8], dil
je 0x14006fbf5
jmp 0x14006fc4f
cmp r9d, ebx
je 0x14006fbfc
movzx r10d, byte [r8 + rax + 1]
add rax, 1
cmp r10b, byte [rdx + rax]
jne 0x14006fbfc
add ebx, 1
cmp esi, ebx
jne 0x14006fbe0
cmp ebx, 8
jle 0x14006fc4f
test r11d, r11d
jle 0x14007006a
test ebp, ebp
jle 0x14007006a
movzx eax, byte [rdx - 1]
mov edi, r11d
mov esi, ebp
cmp byte [r15 + r14 - 1], al
jne 0x14006fc46
xor eax, eax
sub esi, 1
sub edi, 1
add ebx, 1
test esi, esi
jle 0x14006fc46
test edi, edi
jle 0x14006fc46
movzx r10d, byte [r8 + rax - 2]
sub rax, 1
cmp r10b, byte [rdx + rax - 1]
je 0x14006fc24
cmp ebx, 0xe
jg 0x14006fe90
add r11d, 1
add rdx, 1
cmp r11d, r13d
jl 0x14006fbb1
cmp ebp, 9
jg 0x140070010
cmp r12d, 0x14
jle 0x140070010
mov r9d, dword [rsp + 0x3c]
sar r12d, 1
mov dword [rcx + 0x10], r12d
test r9d, r9d
jg 0x14006fb6e
mov r15, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x40]
cmp r13d, 0xe
mov ebx, 0xe
mov edx, 1
cmovle ebx, r13d
mov rcx, r15
call fcn.14003a780
mov edx, ebx
mov rcx, r15
sub r13d, ebx
call fcn.14003a780
mov rdx, rsi
mov r8d, ebx
mov rcx, r15
call fcn.14003b480
movsxd rax, ebx
add rsi, rax
cmp ebx, 0xe
je 0x14006fce4
xor edx, edx
mov rcx, r15
add ebx, 1
call fcn.14003a780
cmp ebx, 0xe
jne 0x14006fcd2
add dword [rsp + 0x58], 1
test r13d, r13d
jg 0x14006fc92
jmp 0x14006ffa2
xor esi, esi
mov dword [rsp + 0x4c], 0
xor edx, edx
mov r8d, 1
mov rcx, r14
call fcn.14003aae0
mov rdx, qword [rsp + 0x68]
xor r8d, r8d
mov rcx, r14
mov rbx, rax
call fcn.14003aae0
mov edx, esi
mov rcx, r14
call fcn.14003cd10
xor r8d, r8d
mov rdx, rbx
mov rcx, r14
call fcn.14003aae0
mov rdi, qword [rsp + 0x80]
mov rcx, rdi
call fcn.14036dc30
mov rcx, qword [rsp + 0x98]
mov rdx, rdi
call fcn.140043fe0
mov dword [rsp + 0xc0], eax
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0xa8], rax
mov eax, dword [rsp + 0x160]
mov qword [rsp + 0xb8], rcx
mov dword [rsp + 0xc4], eax
mov rax, qword [rsp + 0x158]
test byte [rax + 0x28], 1
je 0x14006fda3
or dword [rsp + 0xc8], 1
mov r8d, dword [rsp + 0x4c]
test r8d, r8d
je 0x14006fdca
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x150]
call fcn.14006b4b0
mov rcx, qword [rsp + 0x90]
call fcn.14036dc20
mov rbp, qword [rsp + 0x30]
xor esi, esi
mov eax, dword [rbp + 0xf4]
jmp 0x14006fde1
add esi, 1
cmp esi, eax
jge 0x14006fe30
movsxd rdx, esi
lea rbx, [rdx + rdx*2]
shl rbx, 3
mov rdi, rbx
add rdi, qword [rbp + 0xf8]
mov edx, dword [rdi + 0x14]
test edx, edx
jne 0x14006fdde
movsxd rcx, dword [rdi + 8]
call fcn.14036d890
test rax, rax
je 0x14006fe48
movsxd r8, dword [rdi + 8]
mov rdx, qword [rdi]
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov dword [rdi + 0x14], 1
mov qword [rdi], rax
mov eax, dword [rbp + 0xf4]
jmp 0x14006fdde
mov eax, dword [rsp + 0x5c]
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, esi
mov rcx, qword [rbp + 0xf8]
not eax
add eax, dword [rbp + 0xf4]
lea rdx, [rcx + rbx + 0x18]
add rcx, rbx
cdqe
lea r8, [rax + rax*2]
shl r8, 3
call sub.msvcrt.dll_memmove
mov eax, dword [rbp + 0xf4]
sub eax, 1
mov dword [rbp + 0xf4], eax
jmp 0x14006fde1
mov eax, 0xfffffffe
jmp 0x14006fe34
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x48], eax
lea eax, [rbx + rsi]
lea edx, [rax + 5]
add eax, 0xf
cmp eax, r12d
mov dword [rcx + 0x10], edx
jge 0x140070074
test edi, edi
mov r12, qword [rsp + 0x40]
mov ebp, edi
je 0x14006ff25
mov r14, qword [rsp + 0x50]
mov r15d, dword [rsp + 0x58]
mov dword [rsp + 0x3c], ebx
cmp ebp, 0xe
mov ebx, 0xe
mov edx, 1
cmovle ebx, ebp
mov rcx, r14
call fcn.14003a780
mov edx, ebx
mov rcx, r14
sub ebp, ebx
call fcn.14003a780
mov rdx, r12
mov r8d, ebx
mov rcx, r14
call fcn.14003b480
movsxd rdx, ebx
add r12, rdx
cmp ebx, 0xe
je 0x14006ff14
xor edx, edx
mov rcx, r14
add ebx, 1
call fcn.14003a780
cmp ebx, 0xe
jne 0x14006ff02
add r15d, 1
test ebp, ebp
jg 0x14006fec5
mov ebx, dword [rsp + 0x3c]
mov dword [rsp + 0x58], r15d
mov r15, qword [rsp + 0x50]
mov edx, 2
sub r13d, edi
sub r13d, ebx
movsxd rdi, edi
mov rcx, r15
call fcn.14003a780
xor edx, edx
mov rcx, r15
call fcn.14003a780
mov edx, ebx
mov rcx, r15
call fcn.14003cd10
mov edx, dword [rsp + 0x48]
mov rcx, r15
call fcn.14003bbc0
mov edx, esi
mov rcx, r15
call fcn.14003bbc0
mov edx, 1
mov rcx, r15
call fcn.14003cd10
mov edx, 1
mov rcx, r15
call fcn.14003cd10
movsxd rax, ebx
add dword [rsp + 0x58], 1
add rax, rdi
add qword [rsp + 0x40], rax
test r13d, r13d
jg 0x14006fb4b
mov r15, qword [rsp + 0x50]
mov ebx, dword [rsp + 0x7c]
mov r12d, dword [rsp + 0x78]
mov r8d, 1
xor edx, edx
mov rcx, r15
mov rax, rbx
add rbx, qword [rsp + 0x70]
sub r12d, eax
call fcn.14003aae0
mov rdx, qword [rsp + 0x60]
xor r8d, r8d
mov rcx, r15
mov rsi, rax
call fcn.14003aae0
mov edx, dword [rsp + 0x58]
mov rcx, r15
call fcn.14003cd10
xor r8d, r8d
mov rdx, rsi
mov rcx, r15
call fcn.14003aae0
cmp r12d, 4
jg 0x14006f9e2
mov r14, r15
mov esi, dword [rsp + 0x4c]
jmp 0x14006fcfd
mov r10d, dword [rcx + 0x14]
test r10d, r10d
jne 0x14007004d
mov eax, dword [rsp + 0x3c]
mov rdi, qword [rsp + 0x30]
lea rdx, [rcx + 0x18]
sub eax, 1
mov dword [rdi + 0xf4], eax
cdqe
lea r8, [rax + rax*2]
shl r8, 3
call sub.msvcrt.dll_memmove
mov eax, dword [rdi + 0xf4]
mov dword [rsp + 0x3c], eax
jmp 0x14006fb60
call fcn.14036dc30
mov rax, qword [rsp + 0x30]
mov ecx, dword [rax + 0xf4]
mov dword [rsp + 0x3c], ecx
mov rcx, qword [rax + 0xf8]
jmp 0x140070019
mov edi, r11d
mov esi, ebp
jmp 0x14006fc46
mov r11d, dword [rcx + 0x14]
test r11d, r11d
je 0x140070098
call fcn.14036dc30
mov rax, qword [rsp + 0x30]
mov ecx, dword [rax + 0xf4]
mov dword [rsp + 0x3c], ecx
mov rcx, qword [rax + 0xf8]
mov eax, dword [rsp + 0x3c]
mov rdx, qword [rsp + 0x30]
sub eax, 1
mov dword [rdx + 0xf4], eax
cdqe
lea rdx, [rcx + 0x18]
lea r8, [rax + rax*2]
shl r8, 3
call sub.msvcrt.dll_memmove
jmp 0x14006feac
mov ebx, esi
sub edx, esi
add rbx, rbp
mov r12d, edx
jmp 0x14006fff3
xor edx, edx
mov rcx, r15
add dword [rsp + 0x4c], 1
call fcn.14003bbc0
mov rdx, rbp
mov rcx, r15
mov r8d, 2
call fcn.14003b480
movzx edx, di
mov rcx, r15
call fcn.14003cd10
xor edx, edx
mov rcx, r15
call fcn.14003cd10
xor edx, edx
mov rcx, r15
mov r8d, 1
call fcn.14003aae0
xor edx, edx
mov rcx, r15
mov qword [rsp + 0x60], rax
call fcn.14003cd10
jmp 0x14006fb1d
mov r13d, edx
sub r13d, eax
test r13d, r13d
jle 0x14007016c
movsxd rax, r13d
add rax, qword [rcx + 0xd0]
mov dword [rcx + 0xc8], edx
mov qword [rcx + 0xd0], rax
movabs rcx, 0x8000000000000000
cmp qword [rsp + 0xb0], rcx
jne 0x1400700d1
xor r13d, r13d
jmp 0x14006fa7b
movabs rax, 0x8000000000000000
cmp qword [rsp + 0xb0], rax
jne 0x14006fa83
jmp 0x14006fa6f
mov eax, dword [rax + 0xf0]
jmp 0x14006f89a
mov rax, qword [rsp + 0x158]
mov edi, dword [rax + 0x20]
mov rbp, qword [rax + 0x18]
cmp edi, 0xe
jle 0x14006f8fc
mov rax, qword [rsp + 0x30]
jmp 0x14006f87a
mov eax, 0xfffffff4
jmp 0x14006fe34