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

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf8
mov esi, dword [rsp + 0x168]
xor r14d, r14d
mov edi, dword [rsp + 0x160]
mov r15d, r9d
mov qword [rsp + 0x48], r14
mov r12, r8
mov dword [rsp + 0x30], r14d
mov r13, rcx
mov ebp, r14d
test cl, 0x3f
je 0x180233b4b
mov eax, r13d
mov dword [rsp + 0x28], esi
and eax, 0x3f
mov ebx, 0x40
sub ebx, eax
cmp ebx, edi
cmovg ebx, edi
mov dword [rsp + 0x20], ebx
call fcn.1802339c0
mov edx, dword [rsp + 0x148]
mov eax, ebx
imul eax, r15d
movsxd r9, ebx
add r13, r9
mov qword [rsp + 0x140], r13
cdqe
add r12, rax
mov qword [rsp + 0x150], r12
sub edi, ebx
lea eax, [rdi + r13]
mov dword [rsp + 0x160], edi
test al, 0x3f
je 0x180233b75
lea eax, [rdi + r13]
mov ebp, edi
and eax, 0x3f
cmp eax, edi
cmovle ebp, eax
sub edi, ebp
mov dword [rsp + 0x30], ebp
mov dword [rsp + 0x160], edi
test edi, edi
jle 0x18023403a
mov eax, r15d
lea ebx, [rdi - 1]
shl eax, 6
lea r11, [r13 + 2]
shr ebx, 6
cdqe
inc ebx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x40], r11
test esi, esi
jle 0x180234000
movsxd rax, r15d
lea r9, [r12 - 1]
movsxd rcx, edx
mov r10, rax
mov qword [rsp + 0x60], rcx
neg r10
mov r15, qword [rsp + 0x60]
mov r8, r11
imul rcx, rax, 0x1a
imul r13, rax, 0xfffffffffffffffd
imul rdi, rax, 0xfffffffffffffffb
imul rbx, rax, 0xfffffffffffffffa
imul r11, rax, 0xfffffffffffffff9
movsxd rdx, esi
add r10, r10
add rcx, r14
add rdx, rcx
mov rcx, rax
neg rcx
add r9, rdx
imul rdx, rax, 0xfffffffffffffff7
lea rbp, [rcx + rcx]
mov rcx, rax
neg rcx
mov qword [rsp + 0xe8], rdx
lea r12, [rcx*4]
mov rcx, rax
neg rcx
lea r14, [rcx*8]
imul rcx, rax, 0xfffffffffffffff6
mov qword [rsp + 0xe0], rcx
imul rcx, rax, 0xfffffffffffffff5
mov qword [rsp + 0xd8], rcx
imul rcx, rax, 0xfffffffffffffff4
mov qword [rsp + 0xd0], rcx
imul rcx, rax, 0xfffffffffffffff3
mov qword [rsp + 0xc8], rcx
imul rcx, rax, 0xfffffffffffffff2
mov qword [rsp + 0xc0], rcx
imul rcx, rax, 0xfffffffffffffff1
mov qword [rsp + 0xb8], rcx
imul rcx, rax, 0xffffffffffffffef
mov qword [rsp + 0xb0], rcx
imul rcx, rax, 0xffffffffffffffee
mov qword [rsp + 0xa8], rcx
imul rcx, rax, 0xffffffffffffffed
mov qword [rsp + 0xa0], rcx
imul rcx, rax, 0xffffffffffffffec
mov qword [rsp + 0x98], rcx
imul rcx, rax, 0xffffffffffffffeb
mov qword [rsp + 0x90], rcx
imul rcx, rax, 0xffffffffffffffea
mov qword [rsp + 0x88], rcx
imul rcx, rax, 0xffffffffffffffe9
mov qword [rsp + 0x80], rcx
imul rcx, rax, 0xffffffffffffffe8
mov qword [rsp + 0x78], rcx
imul rcx, rax, 0xffffffffffffffe7
mov qword [rsp + 0x70], rcx
imul rcx, rax, 0xffffffffffffffe6
mov qword [rsp + 0x68], rcx
mov ecx, esi
mov esi, ecx
nop word [rax + rax]
mov rcx, qword [rsp + 0x68]
movzx ecx, byte [r9 + rcx]
mov byte [r8 - 2], cl
mov rcx, qword [rsp + 0x70]
movzx ecx, byte [r9 + rcx]
mov byte [r8 - 1], cl
mov rcx, qword [rsp + 0x78]
movzx ecx, byte [rcx + r9]
mov byte [r8], cl
mov rcx, qword [rsp + 0x80]
movzx ecx, byte [rcx + r9]
mov byte [r8 + 1], cl
mov rcx, qword [rsp + 0x88]
movzx ecx, byte [rcx + r9]
mov byte [r8 + 2], cl
mov rcx, qword [rsp + 0x90]
movzx ecx, byte [rcx + r9]
mov byte [r8 + 3], cl
mov rcx, qword [rsp + 0x98]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 4], cl
mov rcx, qword [rsp + 0xa0]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 5], cl
mov rcx, qword [rsp + 0xa8]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 6], cl
mov rcx, qword [rsp + 0xb0]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 7], cl
movzx ecx, byte [r9 + r10*8]
mov byte [r8 + 8], cl
mov rcx, qword [rsp + 0xb8]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 9], cl
mov rcx, qword [rsp + 0xc0]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 0xa], cl
mov rcx, qword [rsp + 0xc8]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 0xb], cl
mov rcx, qword [rsp + 0xd0]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 0xc], cl
mov rcx, qword [rsp + 0xd8]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 0xd], cl
mov rcx, qword [rsp + 0xe0]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 0xe], cl
movzx ecx, byte [r9 + rdx]
lea rdx, [r9 + rax]
mov byte [r8 + 0xf], cl
movzx ecx, byte [r9 + r14]
mov byte [r8 + 0x10], cl
movzx ecx, byte [r9 + r11]
mov byte [r8 + 0x11], cl
movzx ecx, byte [r9 + rbx]
mov byte [r8 + 0x12], cl
movzx ecx, byte [r9 + rdi]
mov byte [r8 + 0x13], cl
movzx ecx, byte [r9 + r12]
mov byte [r8 + 0x14], cl
movzx ecx, byte [r9 + r13]
mov byte [r8 + 0x15], cl
movzx ecx, byte [r9 + rbp]
mov byte [r8 + 0x16], cl
mov rcx, r9
sub rcx, rax
movzx ecx, byte [rcx]
mov byte [r8 + 0x17], cl
movzx ecx, byte [r9]
mov byte [r8 + 0x18], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x19], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x1a], cl
movzx ecx, byte [rdx]
mov byte [r8 + 0x1b], cl
add rdx, rax
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x1c], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x1d], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x1e], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x1f], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x20], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x21], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x22], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x23], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x24], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x25], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x26], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x27], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x28], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x29], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x2a], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x2b], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x2c], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x2d], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x2e], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x2f], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x30], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x31], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x32], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x33], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x34], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x35], cl
movzx ecx, byte [rdx]
mov byte [r8 + 0x36], cl
add rdx, rax
dec r9
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x37], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x38], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x39], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x3a], cl
movzx ecx, byte [rdx]
add rdx, rax
mov byte [r8 + 0x3b], cl
movzx ecx, byte [rdx]
mov byte [r8 + 0x3c], cl
movzx ecx, byte [rdx + rax]
mov rdx, qword [rsp + 0xe8]
mov byte [r8 + 0x3d], cl
add r8, r15
sub rsi, 1
jne 0x180233ce0
mov esi, dword [rsp + 0x168]
mov r14, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x158]
mov rbx, qword [rsp + 0x50]
mov r12, qword [rsp + 0x150]
mov rax, qword [rsp + 0x38]
mov edx, dword [rsp + 0x148]
add r11, 0x40
add r14, rax
mov qword [rsp + 0x40], r11
sub rbx, 1
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], rbx
jne 0x180233ba0
mov edi, dword [rsp + 0x160]
mov ebp, dword [rsp + 0x30]
mov r13, qword [rsp + 0x140]
test ebp, ebp
je 0x18023409e
test esi, esi
jle 0x18023409e
movsxd r14, dword [rsp + 0x148]
mov eax, r15d
imul eax, edi
movsxd r10, edi
add r10, r13
movsxd rdx, esi
mov ebx, esi
movsxd r11, eax
dec r11
add r11, r12
add r11, rdx
nop word [rax + rax]
mov rcx, r11
mov rdx, r10
test ebp, ebp
jle 0x180234092
movsxd r9, r15d
mov r8d, ebp
movzx eax, byte [rcx]
add rcx, r9
mov byte [rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x180234080
dec r11
add r10, r14
sub rbx, 1
jne 0x180234070
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret