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

Disassembly:
push rbx
push rdi
push r14
sub rsp, 0x110
mov rax, qword [rcx]
xor ebx, ebx
mov r10, qword [rcx + 0x30]
xor edi, edi
mov qword [rsp + 0x78], rax
movsxd rax, dword [rcx + 0x2c]
movsxd r9, edx
imul r14, r9, 0x898
lea r11, [r10 + rax*8]
mov dword [rsp + 0x40], edi
mov rax, qword [rcx + 0x1170]
add r14, rcx
mov qword [rsp + 0x80], r10
mov qword [rsp + 0x88], r11
mov r8d, dword [rax + 0x38]
mov eax, 0x24924925
mul r8d
xor eax, eax
mov dword [r14 + 0x38], ebx
sub r8d, edx
mov qword [rsp + 0x90], rax
shr r8d, 1
add r8d, edx
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc8], rax
mov byte [rsp + 0x90], al
mov eax, dword [r14 + 0x58]
shr r8d, 3
cdq
xor eax, edx
mov dword [rsp + 0x58], r8d
sub eax, edx
mov dword [rsp + 0xc0], 0x7d00
mov rdx, qword [rcx + 0x20]
movsxd rcx, dword [rcx + 0x1c]
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x64], eax
lea r8, [rcx + rcx*2]
add r8, r8
lea rcx, [rdx + r8*8]
test r9d, r9d
jne 0x180346ab9
cmp rdx, rcx
jae 0x180346ad7
movsx eax, word [rdx + 0xc]
mov dword [rdx + 0x18], eax
movsx eax, word [rdx + 0xe]
mov dword [rdx + 0x1c], eax
add rdx, 0x30
cmp rdx, rcx
jb 0x180346aa0
jmp 0x180346ad7
cmp rdx, rcx
jae 0x180346ad7
nop
movsx eax, word [rdx + 0xe]
mov dword [rdx + 0x18], eax
movsx eax, word [rdx + 0xc]
mov dword [rdx + 0x1c], eax
add rdx, 0x30
cmp rdx, rcx
jb 0x180346ac0
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x100], rsi
mov qword [rsp + 0xf8], r12
mov qword [rsp + 0xf0], r13
mov qword [rsp + 0xe8], r15
cmp r10, r11
jae 0x180347236
xor ecx, ecx
nop word [rax + rax]
mov rdi, qword [r10]
mov r15d, 0xffff8300
mov r10d, 0x7d00
mov dword [rsp + 0x54], ecx
mov r11d, ecx
mov word [rsp + 0x140], cx
movzx r13d, cx
mov word [rsp + 0x148], cx
mov rax, qword [rdi + 0x28]
mov rsi, rcx
mov word [rsp + 0x30], cx
mov r9d, r10d
mov dword [rsp + 0x34], r10d
mov r8d, r15d
mov ebp, r10d
mov dword [rsp + 0x38], r10d
movsx ecx, byte [rax + 3]
mov r12d, r15d
mov eax, ecx
mov dword [rsp + 0x3c], r15d
neg eax
mov dword [rsp + 0x48], r10d
test cl, cl
mov dword [rsp + 0x4c], r15d
mov dword [rsp + 0x5c], r10d
cmovns eax, ecx
mov dword [rsp + 0x60], r15d
cmp eax, dword [rsp + 0x50]
jne 0x180346bd7
movsx ecx, byte [rdi + 3]
mov eax, ecx
neg eax
test cl, cl
cmovns eax, ecx
cmp eax, dword [rsp + 0x50]
jne 0x180346bd7
mov qword [rsp + 0x130], rdi
nop dword [rax]
nop word [rax + rax]
mov rdi, qword [rdi + 0x28]
movsx ecx, byte [rdi + 3]
mov eax, ecx
neg eax
test cl, cl
cmovns eax, ecx
cmp eax, dword [rsp + 0x50]
jne 0x180346bd3
cmp rdi, qword [rsp + 0x130]
jne 0x180346bb0
jmp 0x180346bd7
mov rdi, qword [rdi + 0x20]
xor al, al
mov qword [rsp + 0x70], rdi
mov byte [rsp + 0x138], al
nop word [rax + rax]
mov word [rsp + 0x130], r13w
mov dword [rsp + 0x68], r9d
test r11d, r11d
je 0x180346faa
mov ecx, dword [rdi + 0x18]
mov eax, ecx
mov edx, dword [rdi + 0x1c]
cmp ecx, r10d
cmovge eax, r10d
cmp ecx, r15d
mov r10d, eax
mov dword [rsp + 0x34], eax
cmovle ecx, r15d
cmp edx, r9d
mov r15d, ecx
mov r11d, ecx
movzx ecx, word [rdi]
mov r9d, edx
cmovge r9d, dword [rsp + 0x68]
movzx eax, cx
movzx r13d, cx
cmovge r13w, word [rsp + 0x130]
cmp edx, r8d
cmovle ax, word [rsp + 0x140]
mov word [rsp + 0x140], ax
mov eax, edx
cmovle eax, r8d
mov r8d, eax
test cl, 3
jne 0x180346c7d
cmp edx, ebp
mov eax, edx
cmovge eax, ebp
mov ebp, eax
cmp edx, r12d
jle 0x180346c7d
mov r12d, edx
movsx eax, byte [rdi + 3]
cmp eax, dword [rsp + 0x64]
jne 0x180346c92
cmp rdi, qword [rsp + 0x70]
jne 0x180346fc5
test rsi, rsi
je 0x180346f0a
mov rcx, qword [rsi + 0x40]
cmp qword [rbx + 0x38], rcx
jne 0x180346f0a
movzx eax, byte [rdi + 2]
cmp byte [rcx + 2], al
jne 0x180346d9d
mov edx, dword [rsp + 0x38]
cmp edx, r10d
mov r15d, dword [rsp + 0x3c]
movzx eax, word [rsp + 0x148]
cmovge edx, r10d
movzx r10d, word [rsp + 0x30]
cmp r15d, r11d
mov dword [rsp + 0x34], edx
cmovle r15d, r11d
mov qword [rsi + 0x40], rdi
cmp dword [rsp + 0x48], r9d
cmovge ax, r13w
movzx r13d, ax
mov eax, dword [rsp + 0x48]
cmovge eax, r9d
cmp dword [rsp + 0x4c], r8d
mov r9d, eax
mov eax, dword [rsp + 0x4c]
cmovle r10w, word [rsp + 0x140]
cmovle eax, r8d
mov r8d, eax
mov word [rsp + 0x140], r10w
mov eax, dword [rsp + 0x5c]
cmp eax, ebp
cmovge eax, ebp
mov ebp, eax
mov eax, dword [rsp + 0x60]
cmp eax, r12d
cmovle eax, r12d
mov r12d, eax
lea eax, [r15 + rdx]
sar eax, 1
mov word [rsi + 2], ax
mov eax, r15d
sub eax, edx
sar eax, 1
mov word [rsi + 4], ax
movzx eax, r10b
or al, r13b
test al, 3
je 0x180346d68
mov eax, r12d
sub eax, ebp
cmp eax, dword [rsp + 0x58]
jge 0x180346d68
or byte [rsi], 1
jmp 0x180346d6b
and byte [rsi], 0xfe
movzx eax, r8w
mov word [rsi + 6], r9w
sub ax, r9w
mov word [rsi + 8], r8w
mov word [rsi + 0xa], ax
dec dword [r14 + 0x38]
movzx eax, byte [rsp + 0x138]
xor ecx, ecx
mov r11d, ecx
mov dword [rsp + 0x54], ecx
mov ebx, ecx
jmp 0x180346fac
mov eax, dword [rsp + 0x4c]
sub eax, dword [rsp + 0x48]
cdq
mov ecx, eax
mov eax, r8d
sub eax, r9d
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x180346e26
cmp r10d, dword [rsp + 0x38]
mov ecx, r10d
mov eax, r11d
mov qword [rsi + 0x40], rdi
cmovge ecx, dword [rsp + 0x38]
cmp r11d, dword [rsp + 0x3c]
mov dword [rsp + 0x38], ecx
cmovle eax, dword [rsp + 0x3c]
mov edx, eax
mov dword [rsp + 0x3c], eax
add eax, ecx
mov dword [rsp + 0x34], r10d
sar eax, 1
mov word [rsi + 2], ax
mov eax, edx
sub eax, ecx
sar eax, 1
mov word [rsi + 4], ax
movzx eax, word [rsp + 0x140]
dec dword [r14 + 0x38]
xor ecx, ecx
mov word [rsp + 0x140], ax
movzx eax, byte [rsp + 0x138]
mov r11d, ecx
mov dword [rsp + 0x54], ecx
mov ebx, ecx
jmp 0x180346fac
mov edx, dword [rsp + 0x38]
cmp edx, r10d
mov r15d, dword [rsp + 0x3c]
cmovge edx, r10d
mov qword [rbx + 0x40], rdi
movzx r10d, word [rsp + 0x140]
cmp r15d, r11d
mov dword [rsp + 0x34], edx
cmovle r15d, r11d
lea eax, [r15 + rdx]
sar eax, 1
mov word [rbx + 2], ax
mov eax, r15d
sub eax, edx
sar eax, 1
mov word [rbx + 4], ax
movzx eax, r10b
or al, r13b
test al, 3
je 0x180346e7c
mov eax, r12d
sub eax, ebp
cmp eax, dword [rsp + 0x58]
jge 0x180346e7c
or byte [rbx], 1
mov word [rbx + 6], r9w
movzx eax, r8w
mov word [rbx + 8], r8w
sub ax, r9w
mov word [rbx + 0xa], ax
movups xmm0, xmmword [rbx]
movzx eax, byte [rsp + 0x138]
mov dword [rsp + 0x38], edx
movups xmmword [rsi], xmm0
mov dword [rsp + 0x3c], r15d
movups xmm1, xmmword [rbx + 0x10]
mov dword [rsp + 0x48], r9d
mov dword [rsp + 0x4c], r8d
movups xmmword [rsi + 0x10], xmm1
mov word [rsp + 0x148], r13w
movups xmm0, xmmword [rbx + 0x20]
mov word [rsp + 0x30], r10w
mov dword [rsp + 0x5c], ebp
movups xmmword [rsi + 0x20], xmm0
mov dword [rsp + 0x60], r12d
movups xmm1, xmmword [rbx + 0x30]
mov word [rsp + 0x140], r10w
movups xmmword [rsi + 0x30], xmm1
movsd xmm0, qword [rbx + 0x40]
movsd qword [rsi + 0x40], xmm0
dec dword [r14 + 0x38]
xor ecx, ecx
mov r11d, ecx
mov dword [rsp + 0x54], ecx
mov ebx, ecx
jmp 0x180346fac
movzx ecx, word [rsp + 0x140]
lea eax, [r15 + r10]
sar eax, 1
mov word [rbx + 2], ax
mov eax, r11d
sub eax, r10d
mov qword [rbx + 0x40], rdi
sar eax, 1
mov word [rbx + 4], ax
movzx eax, cl
or al, r13b
test al, 3
je 0x180346f44
mov eax, r12d
sub eax, ebp
cmp eax, dword [rsp + 0x58]
jge 0x180346f44
or byte [rbx], 1
movzx eax, r8w
mov word [rsp + 0x30], cx
sub ax, r9w
mov word [rsp + 0x140], cx
xor ecx, ecx
mov word [rbx + 0xa], ax
movzx eax, byte [rsp + 0x138]
mov rsi, rbx
mov word [rbx + 6], r9w
mov word [rbx + 8], r8w
mov ebx, ecx
mov dword [rsp + 0x3c], r11d
mov r11d, ecx
mov dword [rsp + 0x54], ecx
mov dword [rsp + 0x38], r10d
mov dword [rsp + 0x48], r9d
mov dword [rsp + 0x4c], r8d
mov word [rsp + 0x148], r13w
mov dword [rsp + 0x5c], ebp
mov dword [rsp + 0x60], r12d
mov dword [rsp + 0x34], r10d
jmp 0x180346fac
xor ecx, ecx
cmp rdi, qword [rsp + 0x70]
jne 0x180346fca
test al, al
jne 0x180347210
mov byte [rsp + 0x138], 1
jmp 0x180346fca
mov r11d, dword [rsp + 0x54]
test r11d, r11d
jne 0x1803471fa
movsx edx, byte [rdi + 3]
mov eax, edx
mov byte [rsp + 0x130], dl
neg eax
test dl, dl
cmovns eax, edx
cmp eax, dword [rsp + 0x50]
je 0x180346ff7
cmp rdi, qword [rdi + 0x28]
jne 0x1803471fa
xor ecx, ecx
mov dword [rsp + 0x64], edx
mov edx, dword [r14 + 0x38]
mov r8d, ecx
mov dword [rsp + 0x40], ecx
mov ebx, ecx
mov dword [rsp + 0x44], ecx
cmp edx, 0x12
jge 0x180347032
cmp qword [r14 + 0x40], rcx
jne 0x180347114
lea rax, [r14 + 0x60]
mov dword [r14 + 0x3c], send
mov qword [r14 + 0x40], rax
jmp 0x180347114
mov r8d, dword [r14 + 0x3c]
cmp edx, r8d
jl 0x180347111
cmp r8d, 0x1c71c71
jge 0x1803472c1
mov eax, r8d
lea ebp, [r8 + 4]
sar eax, 2
add ebp, eax
cmp ebp, r8d
jl 0x180347065
cmp ebp, 0x1c71c71
jle 0x18034706a
mov ebp, 0x1c71c71
mov rax, qword [r14 + 0x40]
lea r15, [r14 + 0x60]
mov r9d, ebp
mov edx, 0x48
cmp rax, r15
jne 0x1803470d7
lea rax, [rsp + 0x44]
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x78]
call fcn.18033f4d0
mov r8d, dword [rsp + 0x44]
mov qword [r14 + 0x40], rax
mov dword [rsp + 0x40], r8d
test r8d, r8d
jne 0x1803472c8
mov rcx, rax
mov rdx, r15
mov r8d, 0x510
call sub.VCRUNTIME140.dll_memcpy
mov r8d, dword [rsp + 0x44]
mov edx, dword [r14 + 0x38]
mov dword [rsp + 0x40], r8d
mov dword [r14 + 0x3c], ebp
jmp 0x180347114
lea rcx, [rsp + 0x44]
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x20], rax
call fcn.18033f4d0
mov r8d, dword [rsp + 0x44]
mov qword [r14 + 0x40], rax
mov dword [rsp + 0x40], r8d
test r8d, r8d
jne 0x1803472c8
mov edx, dword [r14 + 0x38]
mov dword [r14 + 0x3c], ebp
jmp 0x180347114
mov r8d, ecx
movsxd rax, edx
lea rcx, [rax + rax*8]
mov rax, qword [r14 + 0x40]
lea rbx, [rax + rcx*8]
lea eax, [rdx + 1]
mov dword [r14 + 0x38], eax
test r8d, r8d
jne 0x1803472c8
movaps xmm0, xmmword [rsp + 0x90]
test rsi, rsi
movzx eax, byte [rsp + 0x130]
movups xmmword [rbx], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rbx + 0x10], xmm0
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rbx + 0x20], xmm0
movaps xmm0, xmmword [rsp + 0xc0]
movups xmmword [rbx + 0x30], xmm0
mov byte [rbx + 1], al
lea rax, [rbx - 0x48]
mov qword [rbx + 0x38], rdi
cmove rax, rsi
mov qword [rbx + 0x40], rdi
mov rsi, rax
movzx r10d, word [rdi]
mov r15d, dword [rdi + 0x18]
movzx r13d, r10w
mov r8d, dword [rdi + 0x1c]
mov r9d, r8d
mov dword [rsp + 0x34], r15d
mov word [rsp + 0x140], r10w
test r10b, 3
je 0x1803471b7
mov ebp, 0x7d00
mov r12d, 0xffff8300
jmp 0x1803471bd
mov r12d, r8d
mov ebp, r8d
mov r11d, 1
mov dword [rsp + 0x54], r11d
cmp rdi, qword [rdi + 0x28]
jne 0x1803471fa
mov word [rbx + 2], r15w
test byte [rdi], 3
je 0x1803471db
or byte [rbx], r11b
movzx eax, word [rdi + 0x1c]
mov word [rbx + 6], ax
movzx eax, word [rdi + 0x1c]
mov word [rbx + 8], ax
xor eax, eax
mov word [rbx + 0xa], ax
mov r11d, eax
mov ebx, eax
mov dword [rsp + 0x54], eax
mov rdi, qword [rdi + 0x20]
mov r10d, dword [rsp + 0x34]
movzx eax, byte [rsp + 0x138]
jmp 0x180346bf0
mov r10, qword [rsp + 0x80]
add r10, 8
mov qword [rsp + 0x80], r10
cmp r10, qword [rsp + 0x88]
jb 0x180346b10
mov edi, dword [rsp + 0x40]
mov r8, qword [r14 + 0x40]
test r8, r8
je 0x1803472f9
movsxd rax, dword [r14 + 0x38]
lea rcx, [rax + rax*8]
lea rax, [r8 + rcx*8]
cmp r8, rax
jae 0x1803472f9
lea rcx, [rcx*8 - 1]
movabs rax, 0xe38e38e38e38e38f
mul rcx
add r8, 0xa
mov rbx, rdx
shr rbx, 6
inc rbx
nop dword [rax + rax]
mov rax, qword [r8 + 0x2e]
mov r11, qword [r8 + 0x36]
mov r9d, dword [rax + 0x1c]
mov rax, qword [rax + 0x28]
mov ecx, dword [r11 + 0x1c]
mov r10d, dword [rax + 0x1c]
cmp r9d, ecx
jge 0x1803472cd
cmp r10d, r9d
jge 0x1803472ac
sub r9d, r10d
sar r9d, 1
add word [r8], r9w
mov rax, qword [r11 + 0x20]
mov edx, dword [rax + 0x1c]
cmp edx, ecx
jle 0x1803472ef
sub edx, ecx
sar edx, 1
add word [r8], dx
jmp 0x1803472ef
mov eax, 0x40
jmp 0x1803472fb
mov eax, r8d
jmp 0x1803472fb
cmp r10d, r9d
jle 0x1803472dc
sub r10d, r9d
sar r10d, 1
add word [r8], r10w
mov rax, qword [r11 + 0x20]
mov edx, dword [rax + 0x1c]
cmp edx, ecx
jge 0x1803472ef
sub ecx, edx
sar ecx, 1
add word [r8], cx
add r8, 0x48
sub rbx, 1
jne 0x180347280
mov eax, edi
mov r15, qword [rsp + 0xe8]
mov r13, qword [rsp + 0xf0]
mov r12, qword [rsp + 0xf8]
mov rsi, qword [rsp + 0x100]
mov rbp, qword [rsp + 0x108]
add rsp, 0x110
pop r14
pop rdi
pop rbx
ret