Function at 0x14001e590
Capabilities:
Accept command line arguments
Allocate thread local storage

Disassembly:
mov byte [rsp + 0x18], r8b
mov dword [rsp + 0x10], edx
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov r9d, dword [0x140042b28]
xor edx, edx
cmp dword [0x140042b3c], edx
mov r13b, 0x42
mov r12b, 0xc8
mov dword [rsp + 0x28], r13d
setne al
mov byte [rsp + 0x2c], 0x46
or byte [0x140042b82], al
mov r14b, 0x4d
xor r9d, 0x277
mov byte [rsp + 0xc8], r12b
mov dil, 0x76
mov eax, 0xbe2
nop
mov dword [0x140042a8c], edx
sub rax, 1
jne 0x14001e5f0
movzx ecx, byte [0x140042b57]
movzx ebp, byte [0x140042a86]
test cl, cl
mov esi, dword [0x140042b48]
mov r11d, ecx
movzx r8d, byte [0x140042b81]
setne al
mov r10d, dword [0x140042b60]
sub r8b, al
mov ebx, dword [0x140042b30]
mov eax, r10d
movzx r15d, byte [0x140042a87]
or eax, 0x8c00
sar eax, 9
or dword [0x140042b68], eax
mov eax, edx
mov dword [0x140042b2c], ecx
cmp bpl, 0x25
movzx ecx, bpl
mov byte [0x140042a62], 1
sete al
mov edx, 0x44
add ebx, eax
shl dl, cl
mov eax, dword [0x140042b4c]
add r15d, 2
xor eax, 1
mov dword [rsp + 0x34], r15d
sub esi, eax
movzx eax, byte [0x140042b5c]
sub al, 9
mov dword [0x140042b48], esi
or dl, al
mov eax, dword [0x140042b6c]
mov byte [0x140042a63], dl
lea ecx, [rax*4 + 0x76]
add ecx, eax
mov eax, 0x38e38e39
mul ecx
shr edx, 1
lea eax, [rdx + rdx*8]
mov edx, 1
sub ecx, eax
je 0x14001e740
sub ecx, edx
je 0x14001e72d
sub ecx, edx
je 0x14001e6f5
cmp ecx, edx
jne 0x14001e754
lea eax, [r11 + 0x40f]
test eax, eax
je 0x14001e6ec
mov eax, dword [0x140042a64]
xor eax, 0x46
je 0x14001e6ec
mov eax, edx
or r8b, al
jmp 0x14001e754
xor ecx, ecx
mov eax, ecx
or r8b, al
jmp 0x14001e754
movsx eax, byte [0x140042b56]
imul ecx, eax, 0x277
mov eax, 0xaaaaaaab
mul ecx
imul ecx, dword [0x140042b7c], 0xc8
mov eax, 0xaaaaaaab
mov r13d, edx
shr r13d, 1
mov dword [rsp + 0x28], r13d
mul ecx
mov r14d, edx
shr r14d, 1
jmp 0x14001e754
lea eax, [r11 - 1]
or r10d, eax
mov dword [0x140042b60], r10d
xor dil, dil
jmp 0x14001e754
movzx r12d, byte [0x140042b84]
add r12b, 0x17
mov byte [rsp + 0xc8], r12b
xor edx, edx
lea ecx, [r12 + 0x46]
mov eax, 0x46
sar al, cl
movsx ecx, al
mov eax, 0x10
xor ecx, dword [0x140042b38]
sub al, r12b
or ecx, edx
add r9d, ecx
movzx ecx, byte [0x140042b65]
and al, cl
mov dword [0x140042a88], r9d
and al, r13b
sub r8b, al
lea eax, [rdi + r15]
and al, bpl
movzx ebp, r14b
or cl, al
mov dword [rsp + 0x30], ebp
test edx, edx
mov byte [0x140042b65], cl
setne al
add r8b, al
mov eax, ebp
or eax, dword [0x140042b58]
mov byte [0x140042b81], r8b
setne byte [0x140042b80]
test esi, esi
movzx esi, r13b
setne al
and byte [0x140042b88], al
movsx eax, byte [0x140042b64]
lea ecx, [rsi + 0xf1]
shl eax, cl
xor ebx, eax
mov dword [0x140042b30], ebx
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
call qword [sym.imp.KERNEL32.dll_GetACP]
mov r8d, dword [0x140042b4c]
movzx edi, r13b
movsx ecx, byte [0x140042a63]
mov r13d, ebp
imul r13d, dword [0x140042b58]
xor ebp, ebp
movzx r9d, byte [0x140042b64]
mov eax, 0xaaaaaaab
shr dil, 2
add dil, byte [0x140042b30]
mov byte [rsp + 0xb0], dil
mul r13d
shr edx, 1
lea eax, [rdx + rdx*2]
sub r13d, eax
movzx ebx, r13b
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x4c], ebx
lea eax, [rbx + 0xa2]
or eax, 0x25
xor eax, dword [0x140042b6c]
add dword [0x140042b28], eax
mov eax, ebp
cmp dword [0x140042b48], eax
setne al
add ecx, 9
mov dword [0x140042b60], eax
movzx eax, byte [0x140042a86]
or eax, r15d
or r8d, eax
mov eax, 0xcccccccd
mul ecx
mov dword [0x140042b4c], r8d
shr edx, 2
lea eax, [rdx + rdx*4]
sub ecx, eax
je 0x14001e8f6
sub ecx, 1
je 0x14001e8dd
sub ecx, 1
je 0x14001e8b1
cmp ecx, 1
jne 0x14001e927
or byte [0x140042b81], cl
jmp 0x14001e927
cmp byte [0x140042b66], bpl
je 0x14001e8c6
lea eax, [rsi - 9]
mov ecx, r15d
shl eax, cl
test eax, eax
jne 0x14001e8d4
test r9b, r9b
jne 0x14001e8d4
mov byte [0x140042b82], bpl
jmp 0x14001e927
mov byte [0x140042b82], 1
jmp 0x14001e927
movzx eax, byte [0x140042b57]
movzx ecx, dil
mov edx, 0x220
shr edx, cl
or edx, eax
xor r8d, edx
jmp 0x14001e920
movzx eax, byte [0x140042b67]
movzx ecx, byte [0x140042b55]
and al, dil
jns 0x14001e912
mov eax, 1
test cl, cl
jne 0x14001e914
mov eax, ebp
or r8d, eax
xor cl, 0xf
or byte [0x140042a87], cl
mov dword [0x140042b4c], r8d
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov r8d, dword [0x140042b84]
mov ecx, dword [0x140042b2c]
cmp r8d, 0x25
ja 0x14001e94d
cmp ecx, 0x46
mov eax, ebp
setne al
cmp eax, 9
jbe 0x14001e96c
mov eax, 0xcccccccd
mov r15d, esi
mul esi
shr edx, 2
lea eax, [rdx + rdx*4]
sub r15d, eax
add r15d, dword [0x140042a64]
mov dword [rsp + 0x34], r15d
test r13b, r13b
mov eax, ebp
sete al
or eax, ecx
and r8d, eax
mov dword [rsp + 0x50], r8d
cmp esi, 0x40f
jge 0x14001e9e4
mov ecx, dword [0x140042b3c]
mov eax, dword [0x140042b48]
mov r12d, dword [0x140042b60]
add eax, 0xfffffef0
shr eax, cl
movzx ecx, byte [0x140042b83]
xor cl, al
movsx eax, byte [0x140042b66]
mov byte [rsp + 0xc0], cl
imul ecx, eax, 0x25
mov eax, 0x55555556
imul ecx
mov eax, esi
xor eax, dword [0x140042b4c]
mov ecx, edx
shr ecx, 0x1f
and r12d, eax
add ecx, edx
mov dword [rsp + 0x3c], r12d
dec byte [0x140042b81]
mov dword [rsp + 0x2c], ecx
jmp 0x14001ea00
mov eax, dword [0x140042b60]
mov ecx, dword [rsp + 0x2c]
mov dword [rsp + 0x3c], eax
movzx eax, byte [0x140042b83]
mov byte [rsp + 0xc0], al
movzx r11d, byte [0x140042b6c]
mov r8d, 0x84
mov ebx, dword [0x140042b78]
sub r11b, 0x2e
movzx r15d, byte [0x140042b65]
movzx r9d, byte [0x140042b54]
mov edx, dword [0x140042b34]
movzx r13d, byte [rsp + 0xc0]
movzx r12d, byte [0x140042a62]
movsx ecx, cl
movsx eax, dil
mov r10d, ecx
mov edi, dword [0x140042a8c]
sub r10d, eax
cmp dword [0x140042b28], 0x220
mov dword [rsp + 0x40], eax
mov eax, ebp
mov ebp, dword [0x140042b7c]
sete al
sar edi, cl
and r10d, eax
add ebx, 0x40f
mov dword [rsp + 0x24], ecx
mov ecx, dword [rsp + 0x28]
or ebx, esi
movsx esi, byte [0x140042b88]
movzx eax, cl
mov ecx, dword [0x140042b40]
xor esi, eax
mov eax, dword [0x140042b68]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x20], ecx
dec r8w
test edx, edx
jne 0x14001eac2
mov ecx, dword [rsp + 0x24]
mov eax, 0x277
shl eax, cl
xor eax, 0x220
mov ecx, dword [rsp + 0x20]
jne 0x14001eac2
mov eax, edx
jmp 0x14001eac9
mov eax, 1
xor edx, edx
and ecx, eax
xor r9b, r11b
mov eax, edx
mov dword [rsp + 0x20], ecx
test r13b, r13b
setne al
mov dword [rsp + 0x44], eax
mov dword [0x140042a88], eax
test dword [rsp + 0x30], eax
jne 0x14001eaf1
mov eax, edx
test r14b, r14b
je 0x14001eaf6
mov eax, 1
mov edx, r10d
add r12b, al
or edx, ecx
cmp dword [rsp + 0x3c], 0
mov dword [0x140042b34], edx
je 0x14001eb32
xor ecx, ecx
movzx eax, r15b
cmp eax, 0x110
setb cl
cmp ecx, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x20]
jae 0x14001eb32
mov eax, ebp
or eax, 0x110
or edx, eax
mov dword [0x140042b34], edx
and dword [rsp + 0x38], ebx
movzx eax, dil
xor al, byte [rsp + 0xb0]
xor dword [0x140042b4c], esi
mov byte [rsp + 0xb8], al
test r8w, r8w
jne 0x14001eaa0
mov edx, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x24]
movsx r10d, byte [0x140042b88]
mov byte [0x140042a62], r12b
movzx r12d, byte [rsp + 0xc8]
lea eax, [rdx + 0x277]
shl eax, cl
mov byte [0x140042b54], r9b
test r10d, eax
jne 0x14001eba5
cmp byte [0x140042b57], r8b
jne 0x14001eba5
xor r11d, r11d
mov dword [0x140042b3c], r11d
lea edi, [r11 + 1]
jmp 0x14001ebb3
mov edi, 1
xor r11d, r11d
mov dword [0x140042b3c], edi
mov esi, dword [0x140042b6c]
mov eax, dword [rsp + 0x34]
movzx r8d, byte [0x140042b80]
imul esi, eax
shr esi, 2
test r8b, r8b
jne 0x14001ebd7
cmp eax, edx
mov eax, r11d
jne 0x14001ebd9
mov eax, edi
movzx edx, byte [0x140042a86]
movzx ecx, byte [0x140042a63]
xor dl, al
mov eax, 0x59f
nop
and dl, r14b
or dl, cl
and dl, r14b
or dl, cl
sub rax, 1
jne 0x14001ebf0
mov eax, dword [rsp + 0x4c]
mov r13d, dword [0x140042b6c]
xor eax, r13d
mov r9d, dword [rsp + 0x28]
mov dword [0x140042b2c], eax
mov eax, dword [rsp + 0x44]
movzx ecx, r9b
add eax, ecx
jne 0x14001ec2d
mov eax, r11d
test r12b, r12b
je 0x14001ec2f
mov eax, edi
sub byte [0x140042b55], al
movzx r15d, byte [rsp + 0xb8]
movzx ebx, r12b
cmp dword [0x140042b78], ebx
sete al
add r15b, al
cmp byte [0x140042b66], 0
mov byte [rsp + 0xb8], r15b
mov byte [0x140042a87], r15b
jne 0x14001ec72
cmp byte [0x140042b82], 0
mov eax, r11d
jne 0x14001ec74
mov eax, edi
and dword [0x140042b44], eax
mov r9d, 0x78
mov r12d, dword [rsp + 0x34]
mov eax, r10d
movzx r10d, byte [0x140042b56]
sub eax, ecx
mov r15d, dword [0x140042b4c]
cmp eax, ebx
mov ebp, dword [rsp + 0x20]
sete dil
movzx r14d, r8b
cmp byte [rsp + 0xb0], 0x25
mov r8d, dword [0x140042b58]
sete r11b
xor r11d, dword [0x140042a8c]
dec r9d
test ebp, ebp
je 0x14001ecda
mov eax, dword [rsp + 0x30]
add eax, eax
test r12d, eax
je 0x14001ecda
mov eax, 1
jmp 0x14001ecde
xor ecx, ecx
mov eax, ecx
or r13d, eax
test r10b, r10b
je 0x14001ed05
cmp byte [rsp + 0x2c], 0
je 0x14001ed05
movzx ecx, r14b
mov eax, ebx
shr eax, cl
cmp eax, 0x110
jne 0x14001ed05
mov eax, 1
xor ecx, ecx
jmp 0x14001ed09
xor ecx, ecx
mov eax, ecx
and r8d, eax
or dl, dil
test r11d, r11d
jne 0x14001ed1e
lea eax, [r15 + rsi]
test eax, eax
mov eax, ecx
je 0x14001ed23
mov eax, 1
movzx ecx, byte [rsp + 0xc0]
and cl, al
mov byte [rsp + 0xc0], cl
mov byte [0x140042b83], cl
test r9d, r9d
jne 0x14001ecc1
mov ecx, dword [rsp + 0x44]
movzx ebp, byte [0x140042b55]
movzx r15d, byte [rsp + 0xb8]
mov r9d, dword [0x140042b3c]
mov r11d, dword [rsp + 0x24]
mov dword [0x140042b6c], r13d
mov r13d, dword [rsp + 0x48]
test ecx, ecx
je 0x14001ed8b
xor edx, edx
cmp r9d, 0x440
mov eax, edx
sete al
cmp eax, r11d
je 0x14001ed8d
mov ebx, 1
mov eax, ebx
jmp 0x14001ed94
xor edx, edx
mov eax, edx
mov ebx, 1
and r8d, eax
cmp dword [0x140042b6c], 0
mov dword [0x140042b58], r8d
je 0x14001edae
mov eax, ebx
test r13b, r13b
jne 0x14001edb0
mov eax, edx
movsx ebx, byte [0x140042a62]
or r10b, al
movzx edx, byte [0x140042b81]
mov eax, 0x75
imul ebx, esi
mov byte [0x140042b56], r10b
shr ebx, 2
test dl, dl
jne 0x14001ede2
mov byte [0x140042a86], dl
test r13b, r13b
je 0x14001ede9
mov byte [0x140042a86], 1
sub rax, 1
jne 0x14001edd3
mov r12d, dword [rsp + 0x28]
mov r10d, dword [rsp + 0x38]
mov edx, dword [rsp + 0x40]
movzx ecx, cl
add edx, 0xffffffdb
movzx eax, r12b
imul ecx, eax
movzx edi, r12b
mov eax, edi
and ecx, 3
shr eax, cl
mov ecx, 0xa2
or eax, r8d
sub ecx, r10d
shl edx, cl
xor ecx, ecx
mov dword [0x140042b40], eax
cmp r9d, edx
mov eax, ecx
mov ecx, dword [rsp + 0x3c]
sete al
xor edx, edx
imul eax, eax, 0x2d7
add ecx, eax
mov eax, 0xa2
sub eax, dword [rsp + 0x40]
cmp edi, eax
mov dword [0x140042b60], ecx
mov eax, r10d
sete cl
sar eax, cl
mov ecx, dword [rsp + 0x50]
and r10d, eax
or r11d, r10d
mov dword [0x140042b68], r10d
cmp bl, r12b
mov dword [0x140042b78], r11d
mov eax, edx
sete al
and eax, r14d
and ecx, eax
movsx eax, bpl
sar eax, 7
mov dword [0x140042b84], ecx
movzx ecx, byte [rsp + 0xb0]
mov dword [0x140042a8c], eax
test cl, cl
jne 0x14001eea1
test esi, esi
je 0x14001eedd
sar cl, 7
mov eax, 0xf
sub al, r15b
add bpl, al
mov eax, edx
cmp byte [rsp + 0x2c], cl
mov ecx, edx
movsx edx, byte [0x140042b88]
sete al
mov byte [0x140042b55], bpl
cmp eax, edx
sete cl
and ecx, dword [0x140042b48]
xor r8d, ecx
mov dword [0x140042b58], r8d
movsx eax, byte [0x140042b67]
add eax, 0xa2
mov dword [0x140042b48], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessorNumber]
movsx eax, byte [0x140042b67]
xor ebp, ebp
mov ecx, dword [rsp + 0x30]
cmp eax, edi
movzx eax, byte [0x140042b2c]
mov edx, ebp
sete dl
or al, r13b
xor byte [0x140042a87], al
shl r13b, cl
xor r13b, sil
mov dword [0x140042b44], edx
xor r13b, byte [0x140042b57]
add byte [0x140042b56], r13b
call fcn.14001d920
test bl, bl
je 0x14001ef41
lea eax, [rbp + 1]
jmp 0x14001ef44
movzx eax, bp
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret