Function at 0x18003a960
Capabilities:
Allocate thread local storage

Disassembly:
mov r11, rsp
mov dword [r11 + 0x18], r8d
mov qword [r11 + 8], rcx
push rbx
push r13
push r15
sub rsp, 0x1d0
imul eax, r8d, 0x74e
mov r15, r9
mov rbx, rcx
mov r13d, r8d
mov dword [rsp + 0x40], eax
cmp r8d, eax
ja 0x18003af7f
mov qword [r11 + 0x10], rbp
movsxd rbp, dword [rsp + 0x200]
mov qword [r11 - 0x20], rsi
mov esi, dword [rsp + 0x200]
mov qword [r11 - 0x28], rdi
mov edi, dword [rsp + 0x200]
mov qword [r11 - 0x30], r12
mov r12, qword [rsp + 0x218]
mov qword [r11 - 0x38], r14
mov r14, rbp
movaps xmmword [r11 - 0x48], xmm6
movdqa xmm6, xmmword [rsp + 0x30]
movaps xmmword [r11 - 0x58], xmm7
movdqa xmm7, xmmword [rsp + 0x30]
movaps xmmword [r11 - 0x68], xmm8
movdqa xmm8, xmmword [rsp + 0x30]
movaps xmmword [r11 - 0x78], xmm9
movdqa xmm9, xmmword [rsp + 0x30]
movaps xmmword [r11 - 0x88], xmm10
movdqa xmm10, xmmword [rsp + 0x30]
movaps xmmword [r11 - 0x98], xmm11
movdqa xmm11, xmmword [rsp + 0x30]
movaps xmmword [r11 - 0xa8], xmm12
movdqa xmm12, xmmword [rsp + 0x30]
movaps xmmword [r11 - 0xb8], xmm13
movdqa xmm13, xmmword [rsp + 0x30]
movaps xmmword [r11 - 0xc8], xmm14
movdqa xmm14, xmmword [rsp + 0x30]
movaps xmmword [r11 - 0xd8], xmm15
movdqa xmm15, xmmword [rsp + 0x30]
cmp r13d, 0x14820
ja 0x18003ae95
je 0x18003ae7f
mov eax, r13d
sub eax, 0x65
je 0x18003ae25
sub eax, 0x7b
je 0x18003adc4
sub eax, 0x494c
je 0x18003adb0
sub eax, 0x49c7
je 0x18003ad1e
cmp eax, 0x108d
jne 0x18003ad09
movzx eax, byte [rbx]
mov r11, qword [rsp + 0x210]
lea edi, [rax + rax*2]
movzx eax, byte [r12]
add edi, eax
mov eax, dword [r11]
dec eax
and eax, 0xfffffff8
cmp ebp, eax
jge 0x18003ad09
lea r9, [r12 + 8]
mov r10, rbx
add r9, r14
sub r10, r12
nop dword [rax]
xor edx, edx
lea r11, [0x180000000]
lea r8d, [rdx + 0x11]
nop dword [rax]
cmp edx, 0x10
ja case.default.0x18003aaf4
mov ecx, dword [r11 + rdx*4 + 0x3af94]
add rcx, r11
jmp rcx
movdqa xmm6, xmm11
psllw xmm6, 2
paddw xmm6, xmmword [rsp + 0xd0]
jmp case.default.0x18003aaf4
movzx eax, byte [r10 + r9]
movdqa xmm0, xmmword [rsp + 0x100]
pinsrw xmm0, edi, 0
movdqa xmmword [rsp + 0x50], xmm0
movdqa xmm0, xmmword [rsp + 0x30]
lea ecx, [rax + rax*2]
movzx eax, byte [r9]
add ecx, eax
pinsrw xmm0, ecx, 7
movdqa xmmword [rsp + 0x90], xmm0
jmp case.default.0x18003aaf4
movdqa xmm9, xmm13
movdqa xmm12, xmm14
paddw xmm9, xmmword [rsp + 0x60]
paddw xmm12, xmm9
jmp case.default.0x18003aaf4
movdqa xmm14, xmmword [rsp + 0x50]
psubw xmm14, xmm6
jmp case.default.0x18003aaf4
movdqa xmm0, xmmword [0x180138ba0]
movdqa xmmword [rsp + 0x60], xmm0
jmp case.default.0x18003aaf4
movdqa xmm8, xmmword [rsp + 0x70]
packuswb xmm8, xmmword [rsp + 0x80]
jmp case.default.0x18003aaf4
movzx eax, byte [r10 + r9 - 1]
lea edi, [rax + rax*2]
movzx eax, byte [r9 - 1]
add edi, eax
jmp case.default.0x18003aaf4
movdqa xmm0, xmmword [rsp + 0xe0]
psrlw xmm0, 4
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmm0, xmmword [rsp + 0xf0]
psrlw xmm0, 4
movdqa xmmword [rsp + 0x80], xmm0
jmp case.default.0x18003aaf4
movsxd rax, ebp
movq xmm0, qword [rax + rbx]
movdqa xmmword [rsp + 0xb0], xmm0
movdqa xmm0, xmmword [rsp + 0xa0]
punpcklbw xmm0, xmm15
movdqa xmmword [rsp + 0xc0], xmm0
jmp case.default.0x18003aaf4
movdqa xmm10, xmmword [rsp + 0x90]
psubw xmm10, xmm6
jmp case.default.0x18003aaf4
movdqa xmm7, xmm10
paddw xmm7, xmm9
jmp case.default.0x18003aaf4
movsxd rax, ebp
xorps xmm15, xmm15
movq xmm0, qword [rax + r12]
movdqa xmmword [rsp + 0xa0], xmm0
jmp case.default.0x18003aaf4
movdqu xmmword [r15 + r14*2], xmm8
jmp case.default.0x18003aaf4
movdqa xmm11, xmmword [rsp + 0xb0]
movdqa xmm0, xmmword [rsp + 0xc0]
punpcklbw xmm11, xmm15
psubw xmm0, xmm11
movdqa xmmword [rsp + 0xd0], xmm0
jmp case.default.0x18003aaf4
movdqa xmm13, xmm6
psllw xmm13, 2
jmp case.default.0x18003aaf4
movdqa xmm0, xmm12
punpcklwd xmm0, xmm7
movdqa xmmword [rsp + 0xe0], xmm0
movdqa xmm0, xmm12
punpckhwd xmm0, xmm7
movdqa xmmword [rsp + 0xf0], xmm0
jmp case.default.0x18003aaf4
movdqa xmm0, xmm6
pslldq xmm0, 2
movdqa xmmword [rsp + 0x100], xmm0
movdqa xmm0, xmm6
psrldq xmm0, 2
movdqa xmmword [rsp + 0x30], xmm0
inc edx
sub r8, 1
jne 0x18003aae0
mov r11, qword [rsp + 0x210]
add ebp, 8
add r14, 8
add r9, 8
mov eax, dword [r11]
dec eax
and eax, 0xfffffff8
cmp ebp, eax
jl 0x18003aad0
mov r8d, dword [rsp + 0x200]
imul eax, r8d, 0xbb
add r13d, eax
cmp r13d, dword [rsp + 0x40]
jbe 0x18003aa51
mov rax, qword [rsp + 0x20]
movaps xmm14, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm12, xmmword [rsp + 0x140]
movaps xmm11, xmmword [rsp + 0x150]
movaps xmm10, xmmword [rsp + 0x160]
movaps xmm9, xmmword [rsp + 0x170]
movaps xmm8, xmmword [rsp + 0x180]
movaps xmm7, xmmword [rsp + 0x190]
movaps xmm6, xmmword [rsp + 0x1a0]
mov r14, qword [rsp + 0x1b0]
mov r12, qword [rsp + 0x1b8]
mov rdi, qword [rsp + 0x1c0]
mov rsi, qword [rsp + 0x1c8]
mov rbp, qword [rsp + 0x1f8]
movaps xmm15, xmmword [rsp + 0x110]
add rsp, 0x1d0
pop r15
pop r13
pop rbx
ret
mov byte [0x180144178], 1
mov dword [rsp + 0x20], 1
jmp 0x18003ad09
mov rax, qword [rsp + 0x210]
xor ebp, ebp
xor r14d, r14d
cmp dword [rax], 1
jne 0x18003ad09
mov r8d, 0x90
mov eax, r8d
sub eax, 0x90
je 0x18003adf5
cmp eax, 1
je 0x18003ad1e
jmp 0x18003ae14
movzx eax, byte [rbx]
movzx edx, byte [r12]
add edx, 2
mov qword [rsp + 0x20], r15
lea ecx, [rax + rax*2]
add edx, ecx
shr edx, 2
mov byte [r15 + 1], dl
mov byte [r15], dl
inc r8d
cmp r8d, 0x92
jb 0x18003ade0
jmp 0x18003ad01
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x18014417c], eax
cmp eax, 0xffffffff
jne 0x18003ad01
mov ebx, 0x18
nop
mov eax, ebx
sub eax, 0x18
je 0x18003ae52
cmp eax, 1
je 0x18003ad1e
jmp 0x18003ae6b
lea rdx, str.finis_par_lutilisateur_ne_commen
mov ecx, 0x10008
call fcn.18003e500
mov dword [rsp + 0x20], 0
inc ebx
cmp ebx, 0x1a
jb 0x18003ae40
mov rbx, qword [rsp + 0x1f0]
jmp 0x18003ad01
movzx eax, byte [r14 + rbx]
mov esi, edi
lea edi, [rax + rax*2]
movzx eax, byte [r14 + r12]
add edi, eax
jmp 0x18003ad09
cmp r13d, 0x1ebc0
je 0x18003af6b
cmp r13d, 0x28f60
je 0x18003aed0
cmp r13d, 0x33300
je 0x18003aec6
cmp r13d, 0x3d6a0
je 0x18003ad1e
jmp 0x18003ad09
mov qword [rsp + 0x20], r15
jmp 0x18003ad09
mov r11, qword [rsp + 0x210]
inc ebp
inc r14
mov eax, dword [r11]
cmp ebp, eax
jge 0x18003af56
mov r9, rbx
lea r8, [r14 + r12]
sub r9, r12
nop
mov edx, 0xd5
mov eax, edx
sub eax, 0xd5
je 0x18003af24
cmp eax, 0x68
jne 0x18003af34
lea ecx, [rsi + 4]
lea ecx, [rdi + rcx*2]
add ecx, esi
sar ecx, 4
mov byte [r15 + r14*2 - 1], cl
lea ecx, [rdi + 4]
lea ecx, [rsi + rcx*2]
add ecx, edi
sar ecx, 4
mov byte [r15 + r14*2], cl
jmp 0x18003af34
movzx eax, byte [r8 + r9]
mov esi, edi
lea edi, [rax + rax*2]
movzx eax, byte [r8]
add edi, eax
add edx, 0x68
cmp edx, 0x1a5
jb 0x18003aef5
mov eax, dword [r11]
inc ebp
inc r14
inc r8
cmp ebp, eax
jl 0x18003aef0
mov r8d, dword [rsp + 0x200]
lea edx, [rdi + 2]
sar edx, 2
add eax, eax
movsxd rcx, eax
mov byte [rcx + r15 - 1], dl
jmp 0x18003ad09
lea ecx, [rdi + 4]
lea ecx, [rsi + rcx*2]
add ecx, edi
sar ecx, 4
mov byte [r15 + r14*2], cl
jmp 0x18003ad09
mov rax, qword [rsp + 0x20]
add rsp, 0x1d0
pop r15
pop r13
pop rbx
ret