Function at 0x1802340c0
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 r13
push r14
push r15
sub rsp, 0x100
mov r14d, dword [rsp + 0x168]
xor edi, edi
mov esi, dword [rsp + 0x160]
mov ebp, r9d
mov dword [rsp + 0x30], edi
mov r13, r8
mov r15, rcx
test cl, 0x3f
je 0x180234152
mov eax, r15d
mov dword [rsp + 0x28], r14d
and eax, 0x3f
mov ebx, 0x40
sub ebx, eax
cmp ebx, esi
cmovg ebx, esi
sub esi, ebx
mov dword [rsp + 0x20], ebx
mov eax, esi
mov dword [rsp + 0x160], esi
imul eax, ebp
movsxd r8, eax
add r8, r13
call fcn.180233a30
mov edx, dword [rsp + 0x148]
movsxd r9, ebx
add r15, r9
mov qword [rsp + 0x140], r15
jmp 0x180234159
mov dword [rsp + 0x160], esi
lea eax, [r15 + rsi]
test al, 0x3f
je 0x18023418e
lea eax, [r15 + rsi]
mov edi, esi
and eax, 0x3f
cmp eax, esi
cmovle edi, eax
mov eax, edi
mov dword [rsp + 0x30], edi
imul eax, ebp
sub esi, edi
mov dword [rsp + 0x160], esi
cdqe
add r13, rax
mov qword [rsp + 0x150], r13
mov qword [rsp + 0xf8], r12
test esi, esi
jle 0x18023467c
lea eax, [rsi - 0x40]
imul eax, ebp
lea r12d, [rsi - 1]
shr r12d, 6
lea r10, [r15 + 2]
mov r15, qword [rsp + 0x150]
mov qword [rsp + 0x40], r10
movsxd r11, eax
mov eax, ebp
neg eax
mov qword [rsp + 0x48], r11
shl eax, 6
cdqe
inc r12d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x50], r12
nop dword [rax + rax]
test r14d, r14d
jle 0x18023463a
movsxd rax, ebp
mov r8, r10
movsxd rcx, edx
mov rbx, rax
mov qword [rsp + 0x58], rcx
add rbx, rbx
imul ecx, ebp, 0x3f
imul r13, rax, 0x1d
imul rdx, rax, 0xb
imul r12, rax, 7
movsxd r9, ecx
lea rbp, [rax + rax*2]
sub r9, r13
mov qword [rsp + 0xe0], rdx
add r9, r11
lea rcx, [rax + rax*2]
lea rsi, [rcx + rcx]
add r9, r15
lea rcx, [rax + rax*4]
mov r15d, r14d
mov r14, qword [rsp + 0x58]
lea r11, [rcx + rcx]
lea rcx, [rax + rax*2]
lea rcx, [rcx*4]
mov qword [rsp + 0xd8], rcx
lea rdi, [rax + rax*4]
imul rcx, rax, 0xd
lea r10, [rax + rax*8]
mov qword [rsp + 0xd0], rcx
imul rcx, rax, 0xe
mov qword [rsp + 0xc8], rcx
imul rcx, rax, 0xf
mov qword [rsp + 0xc0], rcx
imul rcx, rax, 0x11
mov qword [rsp + 0xb8], rcx
lea rcx, [rax + rax*8]
add rcx, rcx
mov qword [rsp + 0xb0], rcx
imul rcx, rax, 0x13
mov qword [rsp + 0xa8], rcx
lea rcx, [rax + rax*4]
lea rcx, [rcx*4]
mov qword [rsp + 0xa0], rcx
imul rcx, rax, 0x15
mov qword [rsp + 0x98], rcx
imul rcx, rax, 0x16
mov qword [rsp + 0x90], rcx
imul rcx, rax, 0x17
mov qword [rsp + 0x88], rcx
lea rcx, [rax + rax*2]
lea rcx, [rcx*8]
mov qword [rsp + 0x80], rcx
imul rcx, rax, 0x19
mov qword [rsp + 0x78], rcx
imul rcx, rax, 0x1a
mov qword [rsp + 0x70], rcx
imul rcx, rax, 0x1b
mov qword [rsp + 0x68], rcx
imul rcx, rax, 0x1c
mov qword [rsp + 0x60], rcx
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r9 + r13]
mov byte [r8 - 2], cl
mov rcx, qword [rsp + 0x60]
movzx ecx, byte [r9 + rcx]
mov byte [r8 - 1], cl
mov rcx, qword [rsp + 0x68]
movzx ecx, byte [rcx + r9]
mov byte [r8], cl
mov rcx, qword [rsp + 0x70]
movzx ecx, byte [rcx + r9]
mov byte [r8 + 1], cl
mov rcx, qword [rsp + 0x78]
movzx ecx, byte [rcx + r9]
mov byte [r8 + 2], cl
mov rcx, qword [rsp + 0x80]
movzx ecx, byte [rcx + r9]
mov byte [r8 + 3], cl
mov rcx, qword [rsp + 0x88]
movzx ecx, byte [rcx + r9]
mov byte [r8 + 4], cl
mov rcx, qword [rsp + 0x90]
movzx ecx, byte [rcx + r9]
mov byte [r8 + 5], cl
mov rcx, qword [rsp + 0x98]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 6], cl
mov rcx, qword [rsp + 0xa0]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 7], cl
mov rcx, qword [rsp + 0xa8]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 8], cl
mov rcx, qword [rsp + 0xb0]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 9], cl
mov rcx, qword [rsp + 0xb8]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 0xa], cl
movzx ecx, byte [r9 + rbx*8]
mov byte [r8 + 0xb], cl
mov rcx, qword [rsp + 0xc0]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 0xc], cl
mov rcx, qword [rsp + 0xc8]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 0xd], cl
mov rcx, qword [rsp + 0xd0]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 0xe], cl
mov rcx, qword [rsp + 0xd8]
movzx ecx, byte [r9 + rcx]
mov byte [r8 + 0xf], cl
movzx ecx, byte [rdx + r9]
mov rdx, r9
mov byte [r8 + 0x10], cl
sub rdx, rax
movzx ecx, byte [r11 + r9]
mov byte [r8 + 0x11], cl
movzx ecx, byte [r10 + r9]
mov byte [r8 + 0x12], cl
movzx ecx, byte [r9 + rax*8]
mov byte [r8 + 0x13], cl
movzx ecx, byte [r12 + r9]
mov byte [r8 + 0x14], cl
movzx ecx, byte [rsi + r9]
mov byte [r8 + 0x15], cl
movzx ecx, byte [rdi + r9]
mov byte [r8 + 0x16], cl
movzx ecx, byte [r9 + rax*4]
mov byte [r8 + 0x17], cl
movzx ecx, byte [r9 + rbp]
mov byte [r8 + 0x18], cl
movzx ecx, byte [r9 + rax*2]
mov byte [r8 + 0x19], cl
movzx ecx, byte [r9 + rax]
mov byte [r8 + 0x1a], cl
movzx ecx, byte [r9]
mov byte [r8 + 0x1b], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x1c], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x1d], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x1e], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x1f], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x20], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x21], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x22], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x23], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x24], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x25], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x26], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x27], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x28], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x29], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x2a], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x2b], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x2c], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x2d], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x2e], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x2f], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x30], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x31], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x32], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x33], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x34], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x35], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x36], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x37], cl
movzx ecx, byte [rdx]
inc r9
sub rdx, rax
mov byte [r8 + 0x38], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x39], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x3a], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x3b], cl
movzx ecx, byte [rdx]
sub rdx, rax
mov byte [r8 + 0x3c], cl
movzx ecx, byte [rdx]
mov rdx, qword [rsp + 0xe0]
mov byte [r8 + 0x3d], cl
add r8, r14
sub r15, 1
jne 0x180234320
mov ebp, dword [rsp + 0x158]
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
mov r14d, dword [rsp + 0x168]
mov r12, qword [rsp + 0x50]
mov r15, qword [rsp + 0x150]
mov rax, qword [rsp + 0x38]
mov edx, dword [rsp + 0x148]
add r10, 0x40
add r11, rax
mov qword [rsp + 0x40], r10
sub r12, 1
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x50], r12
jne 0x1802341e0
mov edi, dword [rsp + 0x30]
mov esi, dword [rsp + 0x160]
mov r15, qword [rsp + 0x140]
mov r13, qword [rsp + 0x150]
test edi, edi
je 0x1802346de
test r14d, r14d
jle 0x1802346de
movsxd r12, dword [rsp + 0x148]
lea eax, [rdi - 1]
imul eax, ebp
movsxd r11, esi
mov ebx, r14d
movsxd r10, eax
mov eax, edi
imul eax, ebp
cdqe
sub r10, rax
add r10, r13
add r11, r15
nop dword [rax]
mov rcx, r10
mov rdx, r11
test edi, edi
jle 0x1802346d2
movsxd r9, ebp
mov r8d, edi
movzx eax, byte [rcx]
sub rcx, r9
mov byte [rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x1802346c0
inc r10
add r11, r12
sub rbx, 1
jne 0x1802346b0
mov r12, qword [rsp + 0xf8]
add rsp, 0x100
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret