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

Disassembly:
mov r11, rsp
mov word [r11 + 0x20], r9w
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
sub rsp, 0x38
test rcx, rcx
je 0x164c94f78
test r8, r8
je 0x164c94f78
cmp word [r8], 0
je 0x164c94f78
test r9w, r9w
je 0x164c94f78
add rsp, 0x38
jmp 0x164c961d0
mov eax, 0x57
add rsp, 0x38
ret
mov rax, qword [rax]
mov r9, qword [rax + 0x60]
test r9, r9
je 0x164c961c1
test edx, edx
je 0x164c9621b
movzx r11d, word [r9]
movzx r11d, word [r9]
mov esi, r10d
xor ebx, ebx
test r11d, r11d
je 0x164c9620b
movzx r12d, word [r9 + rbx*2]
cmp r12d, 0x41
jl 0x164c961f7
cmp r12d, 0x5a
lea r11d, [r12 + 0x20]
cmovle r12d, r11d
inc rbx
movzx r11d, r12w
add esi, r11d
movzx r12d, word [r9 + rbx*2]
test r12d, r12d
jne 0x164c961df
nop dword [rax + rax]
nop dword [rax]
cmp edx, esi
jne 0x164c961c1
mov r14, qword [rax + 0x30]
mov rcx, r15
mov r8, rdi
mov edx, dword [rdi + 0xc]
call fcn.164c95ed9
mov qword [rsp + 0x878], rax
mov rcx, r15
mov r8, rdi
mov edx, dword [rdi + 0x28]
call fcn.164c95ed9
mov r13, rax
mov rcx, r15
mov r8, rdi
mov edx, dword [rdi + 0x44]
call fcn.164c95ed9
mov qword [rsp + 0x888], rax
mov rcx, r14
mov r8, rdi
mov edx, dword [rdi + 0xc0]
call fcn.164c95ed9
mov qword [rsp + 0x890], rax
mov rcx, r15
mov r8, rdi
mov edx, dword [rdi + 0x70]
call fcn.164c95ed9
mov qword [rsp + 0x898], rax
mov rcx, r15
mov r8, rdi
mov edx, dword [rdi + 0xe8]
call fcn.164c95ed9
mov rsi, rax
mov rcx, r14
mov r8, rdi
mov edx, dword [rdi + 0x8c]
call fcn.164c95ed9
mov qword [rsp + 0x8a8], rax
mov rcx, r15
mov r8, rdi
mov edx, dword [rdi + 0xec]
call fcn.164c95ed9
mov qword [rsp + 0x8b0], rax
mov rcx, r15
mov r8, rdi
mov edx, dword [rdi + 0xf0]
call fcn.164c95ed9
mov qword [rsp + 0x8b8], rax
mov rcx, r15
mov r8, rdi
mov edx, dword [rdi + 0x1c]
call fcn.164c95ed9
mov r12, rax
mov rcx, r15
mov r8, rdi
mov edx, dword [rdi + 0x50]
call fcn.164c95ed9
mov qword [rsp + 0x8c0], rax
movsxd rax, dword [r15 + 0x3c]
mov edx, dword [rdi + 0x98]
mov qword [rsp + 0x8a0], rsi
mov ebx, dword [rax + r15 + 0x88]
mov qword [rsp + 0x880], r13
mov r13d, edx
mov qword [rsp + 0x870], r14
mov eax, dword [rbx + r15 + 0x20]
xor ebx, ebx
add rax, r15
mov qword [rsp + 0x40], rbp
mov rsi, rax
xor ebp, ebp
jmp 0x164c96357
inc rbx
mov edx, 0x208
lea rcx, [rsp + 0x50]
mov r14d, dword [rsi + rbx*4]
add r14, r15
call fcn.164c960f9
mov rcx, r14
call fcn.164c95e59
mov edx, eax
test eax, eax
je 0x164c96479
cmp eax, 6
jbe 0x164c96413
mov ecx, eax
lea r11, [rsp + rcx*2 + 0x50]
lea r9, [r14 + rcx]
sub r11, r9
lea r10, [rcx + rcx]
cmp r11, r10
jg 0x164c963a7
neg r11
cmp r11, rcx
jle 0x164c96413
mov r10d, eax
mov r9d, ebp
mov r11d, 1
mov edx, r9d
shr r10d, 1
je 0x164c963ea
inc r9d
lea r11d, [rax + rdx]
movsx ecx, byte [r11 + r14]
mov word [rsp + r11*2 + 0x50], cx
lea r11d, [rax + rdx - 1]
movsx r8d, byte [r11 + r14]
add edx, 0xfffffffe
mov word [rsp + r11*2 + 0x50], r8w
cmp r9d, r10d
jb 0x164c963bb
lea r11d, [r9 + r9 + 1]
lea r9d, [r11 - 1]
cmp r9d, eax
jae 0x164c96407
neg r11d
add r11d, eax
inc r11d
movsx r9d, byte [r11 + r14]
mov word [rsp + r11*2 + 0x50], r9w
lea r9d, [rax + 1]
sub eax, r9d
lea edx, [rax + 1]
jmp 0x164c96479
mov r11d, eax
mov r10d, ebp
mov ecx, 1
mov r9d, r10d
shr r11d, 1
je 0x164c9645d
inc r10d
lea edx, [rax + r9]
movsx ecx, byte [rdx + r14]
lea r8d, [rax + r9 - 1]
mov word [rsp + rdx*2 + 0x50], cx
add r9d, 0xfffffffe
movsx edx, byte [r8 + r14]
mov word [rsp + r8*2 + 0x50], dx
cmp r10d, r11d
jb 0x164c96426
lea edx, [r10 + r10]
neg edx
lea ecx, [r10 + r10 + 1]
add edx, eax
lea r9d, [rcx - 1]
cmp r9d, eax
jae 0x164c96479
sub eax, ecx
mov edx, eax
lea r9d, [rax + 1]
movsx r10d, byte [r9 + r14]
mov word [rsp + r9*2 + 0x50], r10w
lea rcx, [rsp + 0x50]
movsx r14d, byte [rdx + r14]
mov word [rsp + rdx*2 + 0x50], r14w
call fcn.164c95e99
mov r11d, eax
mov r9d, ebp
test r11d, r11d
jbe 0x164c964f3
mov eax, r11d
mov r14d, 1
mov edx, dword [rdi + 0x2c]
mov r10d, ebp
shr eax, 1
je 0x164c964da
imul r9d, edx
lea r14d, [r10 + r10]
movsxd r14, r14d
inc r10d
movzx ecx, word [rsp + r14*2 + 0x50]
add r9d, ecx
imul r9d, edx
movzx r14d, word [rsp + r14*2 + 0x52]
add r9d, r14d
cmp r10d, eax
jb 0x164c964ac
lea r14d, [r10 + r10 + 1]
lea r10d, [r14 - 1]
cmp r10d, r11d
jae 0x164c964f3
imul edx, r9d
movsxd r14, r14d
movzx r9d, word [rsp + r14*2 + 0x4e]
add r9d, edx
cmp r13d, r9d
jne 0x164c96354
mov r14, qword [rsp + 0x870]
xor ebx, ebx
movsxd rdx, dword [r14 + 0x3c]
mov eax, dword [rdx + r14 + 0x88]
mov r8d, dword [rdi + 0xd4]
mov ebp, r8d
mov ecx, dword [rax + r14 + 0x20]
mov edx, dword [rax + r14 + 0x1c]
add rcx, r14
mov eax, dword [rax + r14 + 0x24]
add rdx, r14
add rax, r14
mov rsi, rcx
mov qword [rsp + 0xca0], r12
mov r13, rax
mov qword [rsp + 0x48], r15
mov r12, rdx
jmp 0x164c9654f