Function at 0x1400040f4
Capabilities:
Access peb ldr_data

Disassembly:
test rcx, rcx
je 0x1400049e3
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x168]
sub rsp, 0x240
mov rax, qword [0x1401453f8]
xor rax, rsp
mov qword [rbp + 0x130], rax
mov rax, qword gs:[0x60]
mov rbx, rcx
mov edx, 0x1000
xorps xmm0, xmm0
xorps xmm1, xmm1
mov qword [rbp + 0x108], rdx
xor r13d, r13d
mov esi, 0x800
mov rcx, qword [rax + 0x30]
mov r8d, esi
mov rax, qword gs:[0x60]
mov r12d, r13d
mov qword [rbp + 0xf0], rcx
mov r14d, r13d
mov qword [rbp + 0xd8], rdx
lea edi, [r13 + 8]
movdqu xmmword [rbp + 0xf8], xmm0
mov rcx, qword [rax + 0x30]
mov rax, qword gs:[0x60]
mov qword [rbp + 0xc0], rcx
mov qword [rbp + 0xa8], rdx
movdqu xmmword [rbp + 0x110], xmm1
mov rcx, qword [rax + 0x30]
mov rax, qword gs:[0x60]
mov qword [rbp + 0x90], rcx
mov qword [rbp + 0x78], rdx
movdqu xmmword [rbp + 0xc8], xmm0
mov rcx, qword [rax + 0x30]
mov rax, qword gs:[0x60]
mov qword [rbp + 0x60], rcx
mov qword [rbp + 0x48], rdx
movdqu xmmword [rbp + 0xe0], xmm1
mov rcx, qword [rax + 0x30]
mov rax, qword gs:[0x60]
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x18], rdx
movdqu xmmword [rbp + 0x98], xmm0
mov rcx, qword [rax + 0x30]
mov rax, qword gs:[0x60]
mov qword [rbp], rcx
mov qword [rbp - 0x18], rdx
mov edx, edi
movdqu xmmword [rbp + 0xb0], xmm1
mov rcx, qword [rax + 0x30]
mov rax, qword gs:[0x60]
mov qword [rbp - 0x30], rcx
movdqu xmmword [rbp + 0x68], xmm0
mov qword [rbp - 0x78], r13
mov rcx, qword [rax + 0x30]
movdqu xmmword [rbp + 0x80], xmm1
mov dword [rbp - 0x70], r13d
movdqu xmmword [rbp + 0x38], xmm0
movdqu xmmword [rbp + 0x50], xmm1
movdqu xmmword [rbp + 8], xmm0
movdqu xmmword [rbp + 0x20], xmm1
movdqu xmmword [rbp - 0x28], xmm0
movdqu xmmword [rbp - 0x10], xmm1
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov r15, rax
test rax, rax
je 0x140004783
mov rax, qword gs:[0x60]
mov r8d, esi
mov edx, edi
mov rcx, qword [rax + 0x30]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov r14, rax
test rax, rax
je 0x140004783
lea rcx, [rbx + 0x58]
mov dword [rsp + 0x78], r13d
call qword [sym.imp.ntdll.dll_RtlEnterCriticalSection]
nop dword [rax + rax]
mov ecx, dword [0x1402c9cac]
lea r12d, [r13 + 1]
mov edx, ecx
mov dword [rsp + 0x70], r12d
inc ecx
mov dword [0x1402c9cac], ecx
test edx, edx
jne 0x140004783
cmp qword [rbx + 0x90], r13
je 0x140004783
lea rcx, [rbp - 0x78]
call fcn.140003df4
test eax, eax
js 0x140004783
mov rdx, qword [rbx + 0x90]
mov dword [rbp - 0x80], r13d
test rdx, rdx
je 0x14000465e
mov r9, rdx
mov r8d, r13d
mov rdi, r13
cmp r8, rdx
jae 0x140004348
mov rax, r8
mul qword [rbx + 0x88]
test rdx, rdx
jne 0x140004345
mov rcx, qword [rbx + 0xa8]
lea rdi, [rcx + rax]
cmp rdi, rcx
jae 0x140004348
mov rdi, r13
lea rax, [r9 - 1]
cmp r8, rax
lea rcx, [0x14002330c]
lea rdx, [0x140112638]
lea rax, str.Simple
lea rsi, [0x140112634]
cmove rsi, rcx
lea rcx, [0x14011263c]
cmove rcx, rdx
mov r8, rsi
movsxd rdx, dword [rdi]
mov qword [rbp - 0x68], rcx
lea rcx, [rbp + 0xf0]
mov rdx, qword [rax + rdx*8]
call fcn.140003900
test eax, eax
js 0x14000477e
lea r13, [rdi + 8]
movups xmm1, xmmword [r13]
movd eax, xmm1
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rcx, xmm0
movzx edx, ax
test edx, edx
je 0x1400043df
mov r8d, edx
mov al, byte [rcx]
sub al, 0x20
cmp al, 0x5e
ja 0x1400043d3
cmp byte [rcx], 0x3b
je 0x1400043d3
cmp byte [rcx], 0x22
jne 0x1400043d6
mov byte [rcx], 0x5f
inc rcx
sub r8, 1
jne 0x1400043c1
mov rdx, qword [rdi + 0x10]
lea rcx, [rbp]
mov r8, rsi
call fcn.140003900
test eax, eax
js 0x14000477b
lea r12, [rdi + 0x18]
movups xmm1, xmmword [r12]
movd eax, xmm1
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rcx, xmm0
movzx edx, ax
test edx, edx
je 0x14000443a
mov r8d, edx
mov al, byte [rcx]
sub al, 0x20
cmp al, 0x5e
ja 0x14000442e
cmp byte [rcx], 0x3b
je 0x14000442e
cmp byte [rcx], 0x22
jne 0x140004431
mov byte [rcx], 0x5f
inc rcx
sub r8, 1
jne 0x14000441c
mov rdx, qword [rdi + 0x20]
lea rcx, [rbp + 0xc0]
mov r8, rsi
call fcn.140003900
test eax, eax
js 0x14000477b
mov r9d, dword [rdi + 0x44]
lea r8, [0x140112640]
mov edx, 0x10
lea rcx, [rbp + 0x120]
call qword [sym.imp.msvcrt.dll_sprintf_s]
nop dword [rax + rax]
cmp eax, 0xffffffff
je 0x14000477b
mov r8, rsi
lea rdx, [rbp + 0x120]
lea rcx, [rbp + 0x90]
call fcn.140003900
test eax, eax
js 0x14000477b
mov r9d, dword [rdi + 0x28]
lea r8, [0x140112640]
mov edx, 0x10
lea rcx, [rbp + 0x120]
call qword [sym.imp.msvcrt.dll_sprintf_s]
nop dword [rax + rax]
cmp eax, 0xffffffff
je 0x14000477b
mov r8, rsi
lea rdx, [rbp + 0x120]
lea rcx, [rbp + 0x60]
call fcn.140003900
xor r8d, r8d
test eax, eax
js 0x14000477b
cmp qword [rdi + 0x38], r8
je 0x1400045ad
movups xmm1, xmmword [rdi + 0x30]
movd eax, xmm1
movdqa xmm0, xmm1
psrldq xmm0, 8
movq rcx, xmm0
movzx edx, ax
test edx, edx
je 0x140004531
mov r8d, edx
mov al, byte [rcx]
sub al, 0x20
cmp al, 0x5e
ja 0x140004525
cmp byte [rcx], 0x3b
je 0x140004525
cmp byte [rcx], 0x22
jne 0x140004528
mov byte [rcx], 0x5f
inc rcx
sub r8, 1
jne 0x140004513
xor edx, edx
mov r8d, 0x800
mov rcx, r14
call sub.msvcrt.dll_memset
movzx eax, word [rdi + 0x30]
lea r8, [rsp + 0x78]
mov r9, qword [rdi + 0x38]
mov edx, 0x800
mov rcx, r14
mov dword [rsp + 0x20], eax
call qword [sym.imp.ntdll.dll_RtlMultiByteToUnicodeN]
nop dword [rax + rax]
xor ecx, ecx
test eax, eax
js 0x1400045a7
cmp dword [rsp + 0x78], 0x800
jae 0x1400045a7
cmp dword [rbp - 0x70], ecx
jne 0x140004592
lea rcx, [rbp - 0x78]
call fcn.140003df4
xor ecx, ecx
cmp dword [rbp - 0x70], ecx
jne 0x140004592
mov eax, 0xc00000e5
jmp 0x1400045a3
mov r8, qword [rbp - 0x78]
mov r9, r14
mov rcx, r15
call fcn.1400079f8
xor ecx, ecx
test eax, eax
jns 0x1400045b1
mov word [r15], cx
jmp 0x1400045b1
mov word [r15], r8w
mov r8, qword [rbp - 0x68]
lea rcx, [rbp + 0x30]
mov rdx, r15
call fcn.140003b6c
test eax, eax
js 0x14000477b
mov r9d, dword [rdi + 0x40]
lea r8, [0x140112640]
mov edx, 0x10
lea rcx, [rbp + 0x120]
call qword [sym.imp.msvcrt.dll_sprintf_s]
nop dword [rax + rax]
cmp eax, 0xffffffff
je 0x14000477b
mov r8, rsi
lea rdx, [rbp + 0x120]
lea rcx, [rbp - 0x30]
call fcn.140003900
test eax, eax
js 0x14000477b
test r13, r13
je 0x14000461d
mov rcx, r13
call fcn.140008590
xor r13d, r13d
test r12, r12
je 0x14000462d
mov rcx, r12
call fcn.140008590
lea rcx, [rdi + 0x30]
test rcx, rcx
je 0x14000463b
call fcn.140008590
mov eax, dword [rbp - 0x80]
mov rdx, qword [rbx + 0x90]
inc eax
mov r8d, eax
mov r9, rdx
mov dword [rbp - 0x80], eax
cmp r8, rdx
jb 0x14000431e
mov r12d, dword [rsp + 0x70]
cmp dword [0x140144da0], 5
jbe 0x14000474f
movabs r8, 0x200000000000
test qword [0x140144db0], r8
je 0x14000474f
mov rax, qword [0x140144db8]
and rax, r8
cmp rax, qword [0x140144db8]
jne 0x14000474f
mov rax, qword [rbp - 8]
lea rdx, [0x140119b49]
mov qword [rbp - 0x68], rax
mov rax, qword [rbp + 0x58]
mov qword [rbp - 0x80], rax
mov rax, qword [rbp + 0x88]
mov qword [rsp + 0x70], rax
mov rax, qword [rbp + 0xb8]
mov qword [rbp - 0x60], rax
mov rax, qword [rbp + 0xe8]
mov qword [rbp - 0x58], rax
mov rax, qword [rbp + 0x118]
mov qword [rbp - 0x50], rax
mov rax, qword [rbp + 0x28]
mov qword [rbp - 0x48], rax
mov rax, qword [rbx + 0x40]
mov qword [rbp - 0x38], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x60], rax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
mov qword [rbp - 0x40], rbx
call fcn.140001258
mov rdx, qword [rbx + 0x90]
test rdx, rdx
je 0x140004783
mov rax, qword [rbx + 0x88]
mul rdx
test rdx, rdx
jne 0x140004783
mov rcx, qword [rbx + 0xa8]
mov r8, rax
call sub.msvcrt.dll_memset
mov qword [rbx + 0x90], r13
jmp 0x140004783
xor r13d, r13d
mov r12d, dword [rsp + 0x70]
mov rcx, qword [rbx + 0x90]
mov esi, r13d
test rcx, rcx
je 0x1400047f6
mov rax, r13
mov rdi, r13
cmp rax, rcx
jae 0x1400047bc
mul qword [rbx + 0x88]
test rdx, rdx
jne 0x1400047b9
mov rcx, qword [rbx + 0xa8]
lea rdi, [rcx + rax]
cmp rdi, rcx
jae 0x1400047bc
mov rdi, r13
lea rcx, [rdi + 8]
test rcx, rcx
je 0x1400047ca
call fcn.140008590
lea rcx, [rdi + 0x18]
test rcx, rcx
je 0x1400047d8
call fcn.140008590
lea rcx, [rdi + 0x30]
test rcx, rcx
je 0x1400047e6
call fcn.140008590
mov rcx, qword [rbx + 0x90]
inc esi
mov eax, esi
cmp rax, rcx
jb 0x140004795
test r15, r15
je 0x140004819
mov rcx, qword gs:[0x60]
mov r8, r15
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
test r14, r14
je 0x14000483c
mov rcx, qword gs:[0x60]
mov r8, r14
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov rcx, qword [rbx + 0x90]
test rcx, rcx
je 0x14000486d
mov rax, qword [rbx + 0x88]
mul rcx
test rdx, rdx
jne 0x14000486d
mov rcx, qword [rbx + 0xa8]
mov r8, rax
call sub.msvcrt.dll_memset
mov qword [rbx + 0x90], r13
mov ecx, dword [0x7ffe0004]
mov eax, 0x7ffe0320
shl rcx, 0x20
mov rax, qword [rax]
shl rax, 8
mul rcx
mov qword [rbx + 0xe0], rdx
test r12d, r12d
je 0x1400048a9
dec dword [0x1402c9cac]
lea rcx, [rbx + 0x58]
call qword [sym.imp.ntdll.dll_RtlLeaveCriticalSection]
nop dword [rax + rax]
mov rbx, qword [rbp - 0x78]
test rbx, rbx
je 0x1400048e2
mov rcx, rbx
call fcn.1400072c8
lea rcx, [rbx + 0x30]
call fcn.1400072c8
mov rcx, qword gs:[0x60]
xor edx, edx
mov r8, qword [rbp - 0x78]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov r8, qword [rbp - 8]
test r8, r8
je 0x1400048fd
mov rcx, qword [rbp - 0x30]
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov r8, qword [rbp + 0x28]
test r8, r8
je 0x140004918
mov rcx, qword [rbp]
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov r8, qword [rbp + 0x58]
test r8, r8
je 0x140004933
mov rcx, qword [rbp + 0x30]
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov r8, qword [rbp + 0x88]
test r8, r8
je 0x140004951
mov rcx, qword [rbp + 0x60]
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov r8, qword [rbp + 0xb8]
test r8, r8
je 0x140004972
mov rcx, qword [rbp + 0x90]
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov r8, qword [rbp + 0xe8]
test r8, r8
je 0x140004993
mov rcx, qword [rbp + 0xc0]
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov r8, qword [rbp + 0x118]
test r8, r8
je 0x1400049b4
mov rcx, qword [rbp + 0xf0]
xor edx, edx
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov rcx, qword [rbp + 0x130]
xor rcx, rsp
call fcn.140020b70
lea r11, [rsp + 0x240]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret