Function at 0x140026290
Capabilities:
Allocate thread local storage

Disassembly:
mov dword [rsp + 0x18], r8d
mov byte [rsp + 0x10], dl
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
movzx ebp, byte [0x140042b82]
mov r13d, 0xa
mov ebx, dword [0x140042b78]
mov al, 0x15
mov dword [rsp + 0xb8], eax
mov cl, 0x7e
mov eax, dword [0x140042a88]
mov r15b, 0x85
mov dword [rsp + 0x20], ecx
lea r12d, [r13 + 0x27]
mov dword [rsp + 0x24], r13d
mov dword [rsp + 0x2c], eax
mov dword [rsp + 0x28], ebx
cmp bpl, 0x48
jbe 0x14002634e
cmp byte [0x140042b66], cl
jle 0x14002634e
mov r9d, dword [0x140042b28]
lea r13d, [rbx + 1]
mov r14d, dword [0x140042b58]
add eax, 0xffffffcc
mov r10d, dword [0x140042b30]
xor r9d, eax
movzx eax, byte [0x140042b55]
xor r14d, 1
and al, 1
mov dword [rsp + 0x38], r9d
sub bpl, al
mov dword [0x140042b28], r9d
xor eax, eax
mov dword [rsp + 0x24], r13d
cmp byte [0x140042b64], al
mov byte [0x140042b82], bpl
setne al
xor r10d, eax
jmp 0x140026366
mov eax, dword [0x140042b28]
mov r14d, dword [0x140042b58]
mov r10d, dword [0x140042b30]
mov dword [rsp + 0x38], eax
movzx r11d, byte [0x140042b65]
mov eax, 0x66666667
movzx r8d, byte [0x140042b80]
mov dword [rsp + 0x48], r11d
lea ecx, [r11 + 0x2f]
lea ecx, [r11 + rcx*2]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
mov eax, dword [0x140042b3c]
movsx edx, cx
test edx, edx
je 0x1400263ee
sub edx, 1
je 0x1400263e6
sub edx, 1
je 0x1400263d5
mov ecx, dword [0x140042b6c]
sub edx, 1
je 0x1400263ce
mov eax, dword [0x140042b44]
or eax, 1
sub ebx, eax
mov dword [rsp + 0x28], ebx
jmp 0x14002640c
lea ebx, [rcx - 1]
mov dl, 1
jmp 0x14002641a
xor eax, eax
cmp r8b, 0x34
sete al
xor dword [0x140042b48], eax
jmp 0x140026406
add eax, eax
mov dword [rsp + 0x2c], eax
jmp 0x140026406
movzx eax, r8b
imul ecx, eax, 0x44
mov eax, 0x55555556
imul ecx
mov r15d, edx
shr r15d, 0x1f
add r15d, edx
mov ecx, dword [0x140042b6c]
movzx edx, byte [0x140042b88]
movzx ebx, byte [0x140042b54]
movzx r9d, byte [0x140042a86]
mov esi, 1
mov edi, dword [0x140042b38]
mov eax, esi
mov byte [rsp + 0xa0], r9b
test esi, esi
je 0x1400264c3
sub eax, eax
je 0x1400264a6
movzx r9d, byte [0x140042a63]
sub eax, esi
je 0x14002649a
cmp eax, esi
je 0x140026472
mov eax, dword [0x140042b4c]
xor eax, esi
or eax, 0x7e
mov dword [0x140042b4c], eax
mov eax, dword [0x140042b2c]
mov dword [0x140042b48], eax
jmp 0x1400264ec
movsx eax, byte [0x140042b56]
mov r12d, r13d
shr r12d, 2
add r12d, eax
xor eax, eax
cmp dword [0x140042b68], eax
setne al
or r8b, al
mov byte [0x140042b80], r8b
jmp 0x1400264ec
cmp ecx, 0x78
sete al
xor al, 0x48
and bl, al
jmp 0x1400264ec
mov eax, dword [0x140042b44]
or dword [0x140042b48], eax
lea eax, [r9 - 0x31]
movzx r9d, byte [0x140042a63]
xor r9b, al
jmp 0x1400264e5
movzx r9d, r13b
lea ecx, [r13 + 0x15]
and r9b, 0x48
mov eax, edi
sar eax, cl
xor r9b, 0x15
and al, r15b
and r9b, r10b
or al, byte [0x140042b3c]
xor dl, al
mov byte [0x140042a63], r9b
movzx eax, byte [0x140042b64]
lea r8d, [r9 + 2]
mov r13d, dword [0x140042b3c]
inc al
mov byte [rsp + 0xa8], al
mov ecx, r12d
shr r13d, cl
xor eax, eax
movzx ecx, dl
shl al, cl
or r13b, al
movzx eax, bl
and eax, 0x15
mov dword [rsp + 0x40], r13d
or dword [rsp + 0x28], eax
cmp byte [rsp + 0xa8], 0x7e
mov byte [0x140042b55], r13b
jne 0x140026556
imul ecx, dword [0x140042b44], 0x78
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea eax, [rdx + rdx*4]
sub ecx, eax
mov dword [rsp + 0xb8], ecx
jmp 0x14002655d
mov ecx, dword [rsp + 0xb8]
movzx r13d, byte [0x140042a87]
add r11b, 0x48
add r11b, cl
movsx edi, r9b
or r11b, r9b
mov dword [rsp + 0x34], edi
or r11b, 0x33
mov ecx, 0x11d
or r13b, r11b
xor byte [rsp + 0xa0], sil
nop dword [rax + rax]
movzx r8d, r8b
mov eax, 0x55555556
imul r8d, edi
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub r8d, eax
sub rcx, rsi
jne 0x140026590
mov edi, dword [0x140042b38]
test r13b, 0x33
jne 0x1400265dc
movzx ecx, byte [0x140042b64]
mov eax, 0x5d
shl eax, cl
cmp eax, 0x34
jne 0x1400265dc
xor al, al
mov byte [rsp + 0xb0], al
jmp 0x1400265e4
mov byte [rsp + 0xb0], sil
mov eax, dword [rsp + 0xb8]
mov r9d, dword [0x140042b2c]
movzx edx, al
mov eax, r12d
xor eax, 0xdb
movzx ecx, r15b
movzx r15d, byte [rsp + 0xa0]
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x44], edx
movzx r11d, bpl
movzx ebp, byte [rsp + 0xa8]
sub r11d, eax
mov eax, ecx
mov ecx, edx
movzx edx, byte [rsp + 0x28]
neg eax
sar eax, cl
sub dl, bpl
mov ecx, dword [0x140042b3c]
and r11d, eax
xor ecx, 0x5d
movzx eax, r8b
mov r8d, dword [0x140042b7c]
or ecx, r15d
or dword [0x140042a64], ecx
mov ecx, eax
shl dl, cl
mov ecx, dword [rsp + 0x24]
mov dword [rsp + 0x3c], eax
lea eax, [r9 + 0x7e]
xor dl, al
add r15b, dl
mov edx, 0x7e
test r10d, r10d
setne al
xor byte [0x140042b67], al
xor eax, eax
cmp dword [0x140042b34], eax
setne al
sub r8d, eax
mov dword [0x140042b7c], r8d
test bpl, bpl
je 0x140026699
cmp edx, ecx
je 0x140026699
mov eax, esi
jmp 0x14002669b
xor eax, eax
or eax, r9d
or dword [0x140042b6c], eax
cmp dword [0x140042b68], 0
jne 0x1400266b9
test ecx, 0xfffff800
jne 0x1400266b9
xor eax, eax
jmp 0x1400266bb
mov eax, esi
mov ecx, dword [rsp + 0x2c]
sub r13b, al
mov eax, dword [0x140042b40]
movzx r9d, byte [0x140042b83]
xor eax, esi
movsx ebp, byte [rsp + 0x40]
add ecx, eax
cmp r8d, dword [rsp + 0x3c]
mov eax, 0x90
mov dword [rsp + 0x2c], ecx
sete r8b
mov dword [0x140042a88], ecx
movzx ecx, r9b
mov byte [0x140042a87], r13b
shr eax, cl
movzx ecx, byte [rsp + 0xb0]
or r8b, al
cmp dword [0x140042b44], esi
mov byte [rsp + 0xa0], r8b
sete al
sub cl, al
mov byte [rsp + 0xb0], cl
mov byte [0x140042b57], cl
movzx ecx, bl
add ecx, 0x34
shl dl, cl
mov ecx, ebp
cmp r14d, 0x5e
sete al
or dl, al
mov eax, 0x102
mov byte [0x140042b88], dl
sar ecx, 0x1f
nop word [rax + rax]
inc r10d
sub edi, ecx
sub rax, rsi
jne 0x140026750
mov r8d, dword [0x140042b5c]
mov eax, r8d
xor eax, 0xb
mov dword [0x140042b30], r10d
mov dword [0x140042b38], edi
jne 0x14002678f
mov ecx, dword [0x140042a64]
movzx eax, byte [rsp + 0xa8]
add ecx, 0x34
add ecx, eax
jne 0x14002678f
xor eax, eax
jmp 0x140026791
mov eax, esi
mov edx, dword [rsp + 0x30]
sub r11d, eax
sub dword [rsp + 0x34], edx
mov dword [0x140042a8c], r11d
mov r11d, dword [0x140042b84]
jne 0x1400267bd
mov eax, 0x48
sub eax, r11d
cmp eax, 0xb
jne 0x1400267bd
xor eax, eax
jmp 0x1400267bf
mov eax, esi
or bl, al
mov eax, r12d
xor eax, 0x48
mov byte [0x140042b54], bl
mov eax, dword [rsp + 0x38]
setne cl
xor al, cl
mov ecx, edx
sub r15b, al
lea eax, [r14 - 0x7e]
shr eax, cl
mov byte [0x140042a86], r15b
test eax, eax
jne 0x1400267f5
movzx eax, r13b
add eax, 0x33
je 0x1400267f7
mov eax, esi
mov ecx, dword [rsp + 0x44]
and r14d, eax
movsx eax, byte [0x140042b56]
movzx r15d, byte [0x140042b81]
add ecx, eax
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
je 0x1400268a4
sub ecx, esi
je 0x14002686e
sub ecx, esi
je 0x140026857
cmp ecx, esi
jne 0x1400268d7
imul r11d, dword [rsp + 0x24]
mov eax, dword [0x140042b44]
mov dword [0x140042b6c], eax
mov eax, r11d
shr eax, 2
mov dword [rsp + 0x20], eax
jmp 0x1400268db
mov eax, dword [rsp + 0x48]
movzx r11d, r15b
add eax, 0x5d
xor dword [0x140042b60], eax
mov eax, dword [rsp + 0x20]
jmp 0x1400268e3
cmp dword [rsp + 0x3c], 0
jne 0x140026896
movzx ecx, byte [0x140042b67]
movzx eax, byte [rsp + 0xa8]
shl eax, cl
test eax, eax
jne 0x140026896
sub r13b, al
mov byte [0x140042a87], r13b
jmp 0x1400268d7
mov eax, esi
sub r13b, al
mov byte [0x140042a87], r13b
jmp 0x1400268d7
mov ecx, r12d
mov eax, ebp
shl eax, cl
test eax, eax
jne 0x1400268cc
movsx eax, byte [0x140042a62]
mov ecx, dword [rsp + 0x30]
sub ecx, eax
mov eax, 0x5e
sar eax, cl
test eax, eax
jne 0x1400268cc
xor r9b, r9b
jmp 0x1400268d0
movzx r9d, sil
mov byte [0x140042b83], r9b
mov eax, dword [rsp + 0x20]
mov r11d, dword [rsp + 0xb8]
test r14d, r14d
jne 0x140026904
movzx edx, byte [rsp + 0xa8]
mov ecx, dword [rsp + 0x28]
sub edx, 0x78
shr edx, cl
movzx eax, al
cmp eax, edx
je 0x140026904
xor eax, eax
jmp 0x140026906
mov eax, esi
movsx ecx, byte [0x140042a62]
xor edx, edx
and r15b, r12b
mov dword [0x140042b78], eax
movzx r11d, r11b
add ecx, r11d
mov byte [0x140042b81], r15b
cmp ecx, 0x5e
sete dl
test eax, eax
mov dword [0x140042b68], edx
mov eax, 0x55555556
movzx edx, byte [rsp + 0xa0]
sete cl
imul ebp, dword [rsp + 0x30]
sub dl, cl
mov ecx, dword [rsp + 0x20]
mov byte [0x140042b66], dl
movzx r15d, cl
imul ebp
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ebp, eax
cmp r11d, r15d
je 0x140026977
cmp dword [rsp + 0x24], 0
je 0x140026977
mov ecx, esi
jmp 0x140026979
xor ecx, ecx
movzx eax, r13b
and eax, ecx
movzx edx, bpl
xor r14d, eax
mov eax, dword [rsp + 0x2c]
mov dword [0x140042b58], r14d
lea eax, [rdx + rax*2]
and eax, 7
je 0x140026a10
sub eax, esi
je 0x1400269e3
sub eax, esi
je 0x1400269d7
cmp eax, esi
je 0x1400269b2
sub r8b, 0x48
mov byte [0x140042b66], r8b
jmp 0x140026a2b
mov ecx, r12d
sar r8d, cl
test r8d, r8d
setne al
add r9b, al
xor eax, eax
test bl, bl
mov byte [0x140042b83], r9b
sete al
sub dword [0x140042a64], eax
jmp 0x140026a2b
mov dword [0x140042b38], 0
jmp 0x140026a2b
movzx eax, byte [rsp + 0xb0]
xor ecx, ecx
add eax, 0x78
cmp eax, r11d
sete cl
xor eax, eax
cmp byte [0x140042b64], 0x78
sete al
or ecx, eax
add r10d, ecx
mov dword [0x140042b30], r10d
jmp 0x140026a2b
xor ecx, ecx
lea eax, [r15 + r12]
cmp edi, eax
mov eax, dword [0x140042b34]
sete cl
add eax, edx
or ecx, eax
mov dword [0x140042b38], ecx
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp dword [0x140042b78], 0
je 0x140026a41
cmp dword [rsp + 0x24], 0
jne 0x140026a43
xor esi, esi
or dword [0x140042b68], esi
call fcn.140025930
xor eax, eax
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret