Function at 0x40a998
Capabilities:
Contain obfuscated stackstrings
Get number of processors

Disassembly:
and dword [ecx], esp
add byte [eax], al
pop ebx
mov eax, dword [ebp - 0x7e8]
add eax, dword [ebp - 0x16c]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x16c]
movsx eax, byte [ebp + edx - 0x92c]
cmp ecx, eax
jne 0x409b31
mov dword [ebp - 0xdbc], 0
jmp 0x409ba0
push eax
add eax, 0x13f41
sub eax, 0xae6
sub eax, 0x10476
pop eax
push esi
push eax
add esp, 4
xor esi, 0xb9c9
and esi, 0x6fa0
xor esi, 0x7ed1
sub esi, 0x3fd9
pop esi
mov ecx, dword [ebp - 0x7e8]
add ecx, dword [ebp - 0x16c]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x16c]
movsx ecx, byte [ebp + eax - 0x92c]
or ecx, 0x20
cmp edx, ecx
jge 0x409b96
mov dword [ebp - 0xdbc], 0xffffffff
jmp 0x409ba0
mov dword [ebp - 0xdbc], 1
cmp dword [ebp - 0xdbc], 0
jne 0x409bb7
mov edx, dword [ebp - 0x1ef8]
mov dword [ebp - 0x408], edx
jmp 0x409bc8
jmp 0x4099a1
cmp dword [ebp - 0x408], 0
je 0x409ca3
push ebx
push edx
add esp, 4
sub ebx, 0xe3ec
add ebx, 0x1398
and ebx, 0x9af2
pop ebx
push esi
xor esi, 0x16c6
or esi, 0x2566
or esi, 0xff73
add esi, 0xd841
pop esi
mov ecx, dword [ebp - 0x408]
mov dword [ebp - 0x1b40], ecx
push edx
push ebx
add esp, 4
and edx, 0x14820
xor edx, 0x4728
sub edx, 0x11c2
pop edx
push esi
push ebx
add esp, 4
or esi, 0x877e
jmp 0x409c3e
and esi, 0x1951
pop esi
mov edx, dword [ebp - 0x1b40]
mov dword [ebp - 0x1b44], edx
lea eax, [ebp - 0x18ac]
push eax
call dword [ebp - 0x1b44]
test eax, eax
jne 0x409ca3
push edi
push eax
add esp, 4
or edi, 0x66d4
sub edi, 0x15c00
pop edi
push esi
or esi, 0x7cf2
and esi, 0x130ae
pop esi
push eax
push edi
add esp, 4
add eax, 0x107e2
sub eax, 0x98ef
pop eax
mov dword [ebp - 0x828], 0
jmp 0x40a38e
push edx
push esi
add esp, 4
sub edx, 0x16ca1
call 0x409cbc
add byte [esi + edi], bh
inc ecx
xor al, byte [ecx + 0x36]
inc esi
inc esi
add esp, 4
or edx, 0x11c3f
call 0x409cd1
add byte [edi], bh
cmp eax, dword [edx + 0x32]
dec esp
dec ecx
add esp, 4
pop edx
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x1b48], ecx
mov edx, dword [ebp - 0x1b48]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x1b4c], eax
mov ecx, dword [ebp - 0x1b4c]
mov dword [ebp - 0x17d4], ecx
push edx
xor edx, 0x9389
or edx, 0x107e0
pop edx
push ecx
and ecx, 0x774a
xor ecx, 0x16db4
add ecx, 0xd804
pop ecx
push edi
xor edi, 0x16272
pop edi
push esi
sub esi, 0xda10
pop esi
cmp dword [ebp - 0x17d4], 0
jne 0x409d47
mov dword [ebp - 0x31c], 0
jmp 0x409fee
mov edx, dword [ebp - 0x17d4]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xdc8], ecx
push ebx
push esi
add esp, 4
and ebx, 0x40ad
sub ebx, 0x4724
or ebx, 0x1387b
call 0x409d7f
add byte [ecx], bh
inc ebp
xor edi, dword [esi]
aaa
dec edi
xor eax, 0xc4834b32
add al, 0x5b
push eax
add eax, 0x150aa
pop eax
cmp dword [ebp - 0xdc8], 0
jne 0x409da3
mov dword [ebp - 0x31c], 0
jmp 0x409fee
mov edx, dword [ebp - 0xdc8]
mov dword [ebp - 0x554], edx
push edi
call 0x409dbf
add byte [edx], bh
dec ecx
cmp ecx, dword [esp + ecx*2 + 0x46]
dec ebp
inc edi
add esp, 4
call 0x409dcf
add byte [ebx + 0x46], al
aas
dec eax
dec ecx
xor bh, byte [edx]
add esp, 4
sub edi, 0x9dcc
pop edi
push edi
xor edi, 0x132e5
pop edi
lea eax, [ebp - 0x18ac]
mov dword [ebp - 0xdc4], eax
mov ecx, dword [ebp - 0x554]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xdc0], edx
xor eax, eax
mov word [ebp - 0x1e4], ax
xor ecx, ecx
mov word [ebp - 0x3c], cx
push edi
xor edi, 0x148
pop edi
push ecx
push edi
add esp, 4
xor ecx, 0xec4f
or ecx, 0x6399
and ecx, 0xa53
call 0x409e39
add byte [ecx + 0x49], cl
cmp al, byte [ebp + esi + 0x4f]
cmp al, 0x48
dec esi
add esp, 4
pop ecx
mov edx, dword [ebp - 0xdc0]
mov ax, word [edx]
mov word [ebp - 0x1168], ax
mov ecx, dword [ebp - 0xdc0]
add ecx, 2
mov dword [ebp - 0xdc0], ecx
mov dx, word [ebp - 0x1168]
mov word [ebp - 0x1e4], dx
mov eax, dword [ebp - 0xdc4]
mov cx, word [eax]
mov word [ebp - 0x116a], cx
mov edx, dword [ebp - 0xdc4]
add edx, 2
mov dword [ebp - 0xdc4], edx
mov ax, word [ebp - 0x116a]
mov word [ebp - 0x3c], ax
push ecx
push esi
add esp, 4
jmp 0x409ea2
sub ecx, 0xb1ed
add ecx, 0x1377
pop ecx
push edi
add edi, 0xc81a
jmp 0x409ebb
pop edi
push ebx
jmp 0x409ec5
pop ebx
movzx ecx, word [ebp - 0x3c]
test ecx, ecx
jne 0x409ee3
movzx edx, word [ebp - 0x1e4]
movzx eax, word [ebp - 0x3c]
sub edx, eax
mov dword [ebp - 0x17dc], edx
jmp 0x409f3d
movzx ecx, word [ebp - 0x1e4]
movzx edx, word [ebp - 0x3c]
cmp ecx, edx
je 0x409e0b
movzx eax, word [ebp - 0x1e4]
xor eax, 0x20
movzx ecx, word [ebp - 0x3c]
cmp eax, ecx
je 0x409e0b
movzx edx, word [ebp - 0x1e4]
movzx eax, word [ebp - 0x3c]
cmp edx, eax
jge 0x409f27
mov dword [ebp - 0x17d8], 0xffffffff
jmp 0x409f31
mov dword [ebp - 0x17d8], 1
mov ecx, dword [ebp - 0x17d8]
mov dword [ebp - 0x17dc], ecx
cmp dword [ebp - 0x17dc], 0
jne 0x409f86
push ecx
push ebx
add esp, 4
and ecx, 0x136f0
xor ecx, 0x12904
jmp 0x409f5e
pop ecx
push edx
push eax
add esp, 4
jmp 0x409f6c
jmp 0x409f71
sub edx, 0x15dcf
pop edx
mov edx, dword [ebp - 0x554]
mov dword [ebp - 0x31c], edx
jmp 0x409fee
push eax
xor eax, 0x6342
add eax, 0x1690
and eax, 0x5559
pop eax
push eax
push ebx
add esp, 4
or eax, 0x2b94
pop eax
push edx
push edi
add esp, 4
and edx, 0x17833
or edx, 0xc802
pop edx
mov eax, dword [ebp - 0x554]
mov ecx, dword [eax]
mov dword [ebp - 0x554], ecx
mov edx, dword [ebp - 0x554]
cmp edx, dword [ebp - 0xdc8]
je 0x409fe4
mov eax, dword [ebp - 0x554]
cmp dword [eax + 0x30], 0
jne 0x409daf
mov dword [ebp - 0x31c], 0
push esi
push ebx
add esp, 4
xor esi, 0x11c8d
xor esi, 0x3ea4
and esi, 0x4446
pop esi
push ebx
push ecx
add esp, 4
xor ebx, 0x15c0
xor ebx, 0xe0
jmp 0x40a01f
pop ebx
mov ecx, dword [ebp - 0x31c]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x3ec], edx
push edi
jmp 0x40a036
pop edi
push eax
push ecx
add esp, 4
call 0x40a04a
add byte [edi], bh
dec edx
inc esi
dec esi
dec edi
xor eax, dword [eax + 0x49]
add esp, 4
xor eax, 0x2f12
sub eax, 0x360
jmp 0x40a060
pop eax
mov dword [ebp - 0x7fc], 0
mov eax, dword [ebp - 0x3ec]
mov dword [ebp - 0x17e0], eax
cmp dword [ebp - 0x17e0], 0
jne 0x40a091
mov ecx, dword [ebp - 0x7fc]
mov dword [ebp - 0x558], ecx
jmp 0x40a382
mov edx, dword [ebp - 0x17e0]
mov eax, dword [ebp - 0x3ec]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x17e4], eax
jne 0x40a0b9
mov ecx, dword [ebp - 0x7fc]
mov dword [ebp - 0x558], ecx
jmp 0x40a382
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x17e4]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x17e8], edx
cmp dword [ebp - 0x17e8], 0
jne 0x40a0eb
mov eax, dword [ebp - 0x7fc]
mov dword [ebp - 0x558], eax
jmp 0x40a382
mov ecx, dword [ebp - 0x3ec]
add ecx, dword [ebp - 0x17e8]
mov dword [ebp - 0x7f0], ecx
jne 0x40a110
mov edx, dword [ebp - 0x7fc]
mov dword [ebp - 0x558], edx
jmp 0x40a382
mov eax, dword [ebp - 0x7f0]
mov ecx, dword [ebp - 0x3ec]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x1b50], ecx
mov edx, dword [ebp - 0x7f0]
mov eax, dword [ebp - 0x3ec]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x1b54], eax
mov ecx, dword [ebp - 0x7f0]
mov edx, dword [ebp - 0x3ec]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x1b58], edx
mov dword [ebp - 0x7f4], 0
jmp 0x40a16a
mov eax, dword [ebp - 0x7f4]
add eax, 1
mov dword [ebp - 0x7f4], eax
mov ecx, dword [ebp - 0x7f0]
mov edx, dword [ebp - 0x7f4]
cmp edx, dword [ecx + 0x18]
jae 0x40a376
mov eax, dword [ebp - 0x7f4]
mov ecx, dword [ebp - 0x1b50]
mov edx, dword [ebp - 0x3ec]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x7f8], edx
mov eax, dword [ebp - 0x7f4]
mov ecx, dword [ebp - 0x1b54]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x1b58]
mov ecx, dword [ebp - 0x3ec]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x1b5c], ecx
mov dword [ebp - 0x168], 0
jmp 0x40a1da
mov eax, dword [ebp - 0x7f8]
add eax, dword [ebp - 0x168]
movsx ecx, byte [eax]
test ecx, ecx
je 0x40a28c
mov edx, dword [ebp - 0x168]
movsx eax, byte [ebp + edx - 0x900]
test eax, eax
je 0x40a28c
push ecx
push esi
add esp, 4
xor ecx, 0x5ade
pop ecx
push edi
push esi
add esp, 4
jmp 0x40a21d
pop edi
push ebx
push ebx
add esp, 4
or ebx, 0x15099
call 0x40a235
add byte [edi + 0x3e], cl
cmp byte [edx + 0x36], cl
cmp byte [ebx - 0x74a4fb3c], al
lea ecx, [eax]
clc
invalid
push ebx
xor ebx, 0xe3ce
and ebx, 0xe77d
sub ebx, 0xa73a
and ebx, 0x12c60
pop ebx
push ebx
push ebx
add esp, 4
sub ebx, 0x3064
sub ebx, 0x15323
or ebx, 0x16268
pop ebx
mov eax, dword [ebp - 0x7f8]
add eax, dword [ebp - 0x168]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x168]
movsx eax, byte [ebp + edx - 0x900]
cmp ecx, eax
jne 0x40a2eb
mov dword [ebp - 0xdcc], 0
jmp 0x40a35a
push esi
add esi, 0x9fe5
jmp 0x40a2f7
pop esi
push eax
or eax, 0x7c3d
or eax, 0xa41a
xor eax, 0xcc99
and eax, 0x8c5d
pop eax
push edi
push edx
add esp, 4
jmp 0x40a31c
pop edi
mov ecx, dword [ebp - 0x7f8]
add ecx, dword [ebp - 0x168]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x168]
movsx ecx, byte [ebp + eax - 0x900]
or ecx, 0x20
cmp edx, ecx
jge 0x40a350
mov dword [ebp - 0xdcc], 0xffffffff
jmp 0x40a35a
mov dword [ebp - 0xdcc], 1
cmp dword [ebp - 0xdcc], 0
jne 0x40a371
mov edx, dword [ebp - 0x1b5c]
mov dword [ebp - 0x558], edx
jmp 0x40a382
jmp 0x40a15b
mov eax, dword [ebp - 0x7fc]
mov dword [ebp - 0x558], eax
mov ecx, dword [ebp - 0x558]
mov dword [ebp - 0x828], ecx
push ebx
add ebx, 0x10c00
sub ebx, 0x17fda
and ebx, 0x105c3
pop ebx
push eax
push ecx
add esp, 4
call 0x40a3b6
add byte [ecx + 0x41], al
xor bh, byte [edx]
cmp byte [edi + 0x32], al
cmp dword [edx], esi
add esp, 4
and eax, 0x1758a
pop eax
mov edx, dword [ebp - 0x400]
add edx, 0xe
mov dword [ebp - 0x1bac], edx
push esi
sub esi, 0x177db
and esi, 0x8f62
or esi, 0xe47a
pop esi
push ecx
push edx
add esp, 4
call 0x40a3f5
add byte [ecx + 0x47], al
inc edi
inc ebx
aas
cmp dword [edi - 0x7d], eax
les eax, [ebx + ebp*8]
push es
aas
dec edi
inc edx
inc ecx
inc ebx
pop ecx
cmp dword [ebp - 0x400], 0
je 0x40a413
cmp dword [ebp - 0xb7c], 0
jne 0x40a459
push esi
add esi, 0x7cbe
pop esi
push edi
push esi
add esp, 4
call 0x40a42e
add byte [esi + 0x4c], al
dec esp
aaa
inc edx
inc esi
cmp byte [esi], bh
add esp, 4
pop edi
push edi
push ebx
add esp, 4
jmp 0x40a43e
xor edi, 0x291a
pop edi
mov eax, dword [ebp - 0x828]
mov dword [ebp - 0x1b60], eax
push 0
call dword [ebp - 0x1b60]
mov dword [ebp - 0x21f4], 0xa
push ecx
push edx
add esp, 4
or ecx, 0x1480b
call 0x40a47d
add byte [edi + 0x4a], al
xor eax, 0x38433747
cmp dword [ecx], edi
add esp, 4
pop ecx
push ecx
sub ecx, 0x4db4
and ecx, 0xae0
jmp 0x40a494
pop ecx
mov ecx, dword [ebp - 0x400]
mov dl, byte [ecx + 0xa]
mov byte [ebp - 0x3ee], dl
mov eax, dword [ebp - 0xb7c]
sub eax, dword [ebp - 0x400]
mov dword [ebp - 0x1828], eax
mov dword [ebp - 0xdfc], 0
push ebx
push eax
add esp, 4
or ebx, 0xa7b1
pop ebx
push ebx
sub ebx, 0x1468c
xor ebx, 0x11d85
pop ebx
push esi
push edx
add esp, 4
add esi, 0x980
add esi, 0x14cd2
sub esi, 0x61b0
pop esi
mov byte [ebp - 0xa74], 0x56
mov byte [ebp - 0xa73], 0x69
mov byte [ebp - 0xa72], 0x72
mov byte [ebp - 0xa71], 0x74
mov byte [ebp - 0xa70], 0x75
mov byte [ebp - 0xa6f], 0x61
mov byte [ebp - 0xa6e], 0x6c
mov byte [ebp - 0xa6d], 0x50
mov byte [ebp - 0xa6c], 0x72
mov byte [ebp - 0xa6b], 0x6f
mov byte [ebp - 0xa6a], 0x74
mov byte [ebp - 0xa69], 0x65
mov byte [ebp - 0xa68], 0x63
mov byte [ebp - 0xa67], 0x74
mov byte [ebp - 0xa66], 0
push eax
push edi
add esp, 4
add eax, 0x10005
xor eax, 0x17d8a
pop eax
push esi
xor esi, 0x4f4e
sub esi, 0x13606
and esi, 0x1ff
pop esi
push edx
push edi
add esp, 4
or edx, 0x17a7c
pop edx
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x1b64], ecx
mov edx, dword [ebp - 0x1b64]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x1b68], eax
mov ecx, dword [ebp - 0x1b68]
mov dword [ebp - 0x17ec], ecx
push ebx
add ebx, 0xed6d
jmp 0x40a5c2
pop ebx
push ebx
push eax
add esp, 4
xor ebx, 0x15993
jmp 0x40a5d7
jmp 0x40a5e0
xor ebx, 0x6555
pop ebx
cmp dword [ebp - 0x17ec], 0
jne 0x40a5ff
mov dword [ebp - 0x320], 0
jmp 0x40a8a6
mov edx, dword [ebp - 0x17ec]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xdd8], ecx
push esi
push ecx
add esp, 4
call 0x40a624
add byte [ebx + 0x32], al
dec edi
cmp eax, 0x4350444b
add esp, 4
or esi, 0x18d0
pop esi
push edi
push edi
add esp, 4
jmp 0x40a63c
add edi, 0xa2c3
pop edi
cmp dword [ebp - 0xdd8], 0
jne 0x40a65b
mov dword [ebp - 0x320], 0
jmp 0x40a8a6
mov edx, dword [ebp - 0xdd8]
mov dword [ebp - 0x55c], edx
push esi
push edx
add esp, 4
add esi, 0x771a
pop esi
push edi
xor edi, 0xcd87
call 0x40a68a
add byte [ebx], dh
inc esi
aaa
dec esi
dec ecx
xor eax, 0x42494845
add esp, 4
jmp 0x40a692
sub edi, 0x98f0
pop edi
lea eax, [ebp - 0x18ac]
mov dword [ebp - 0xdd4], eax
mov ecx, dword [ebp - 0x55c]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xdd0], edx
xor eax, eax
mov word [ebp - 0x1e8], ax
xor ecx, ecx
mov word [ebp - 0x40], cx
push edi
push edi
add esp, 4
or edi, 0x10d1c
sub edi, 0x236d
pop edi
push ebx
push edx
add esp, 4
and ebx, 0xf87b
jmp 0x40a6e6
pop ebx
push ecx
jmp 0x40a6ee
and ecx, 0x5131
pop ecx
mov edx, dword [ebp - 0xdd0]
mov ax, word [edx]
mov word [ebp - 0x116c], ax
mov ecx, dword [ebp - 0xdd0]
add ecx, 2
mov dword [ebp - 0xdd0], ecx
mov dx, word [ebp - 0x116c]
mov word [ebp - 0x1e8], dx
mov eax, dword [ebp - 0xdd4]
mov cx, word [eax]
mov word [ebp - 0x116e], cx
mov edx, dword [ebp - 0xdd4]
add edx, 2
mov dword [ebp - 0xdd4], edx
mov ax, word [ebp - 0x116e]
mov word [ebp - 0x40], ax
push eax
call 0x40a759
add byte [ebx], dh
xor eax, 0x4d463b4a
add esp, 4
or eax, 0x6e31
sub eax, 0x18627
pop eax
push edx
call 0x40a77a
add byte [ebx + 0x49], al
xor al, byte [ecx + 0x3e]
xor ecx, dword [edx + 0x42]
aaa
xor al, byte [ebx + 0xf5a04c4]
mov bh, 0x4d
rol byte [ebp + 0xf1575c9], 0xb7
xchg ebp, eax
sbb dh, bh
invalid
push eax
push edx
add esp, 4
xor eax, 0x20f4
xor eax, 0x133bd
and eax, 0x4d4e
pop eax
push ecx
push edi
add esp, 4
add ecx, 0x7ff2
or ecx, 0x13293
jmp 0x40a8d7
pop ecx
cmp dword [ebp - 0x320], 0
jne 0x40b1dd
mov ecx, 0x6b
mov word [ebp - 0x1938], cx
mov edx, 0x65
mov word [ebp - 0x1936], dx
mov eax, 0x72
mov word [ebp - 0x1934], ax
mov ecx, 0x6e
mov word [ebp - 0x1932], cx
mov edx, 0x65
mov word [ebp - 0x1930], dx
mov eax, 0x6c
mov word [ebp - 0x192e], ax
mov ecx, 0x33
mov word [ebp - 0x192c], cx
mov edx, 0x32
mov word [ebp - 0x192a], dx
mov eax, 0x2e
mov word [ebp - 0x1928], ax
mov ecx, 0x64
mov word [ebp - 0x1926], cx
mov edx, 0x6c
mov word [ebp - 0x1924], dx
mov eax, 0x6c
mov word [ebp - 0x1922], ax
xor ecx, ecx
mov word [ebp - 0x1920], cx
push edi
push eax
add esp, 4
jmp 0x40a98b
call 0x40a998
add byte [edx + 0x44], al
dec edi
push eax
dec esp
cmp dword [ebx + 0x525f04c4], eax
xor edx, 0x11e75
sub edx, 0x5a80
xor edx, 0x2292
pop edx
invalid
test esp, eax
idiv bh