Function at 0x405809
Capabilities:
Contain obfuscated stackstrings
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push esi
or esi, 0x7f44
call fcn.0040559d
add byte [edi + edi + 0x40], al
xor esi, dword [0x393e4337]
add esp, 4
pop esi
push eax
push edx
add esp, 4
add eax, 0x17d34
pop eax
push esi
push esi
add esp, 4
sub esi, 0x151c6
pop esi
lea ecx, [ebp - 0x1628]
mov dword [ebp - 0xc1c], ecx
mov edx, dword [ebp - 0x4d4]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xc18], eax
xor ecx, ecx
mov word [ebp - 0x1f8], cx
xor edx, edx
mov word [ebp - 0x100], dx
push ecx
push edx
add esp, 4
sub ecx, 0x9711
call 0x4055ff
add byte [ebx + 0x48], cl
dec ecx
cmp dh, byte [esi]
dec edx
aas
inc ebp
add esp, 4
or ecx, 0x16f70
pop ecx
push edi
jmp 0x405611
and edi, 0x10f9
pop edi
mov eax, dword [ebp - 0xc18]
mov cx, word [eax]
mov word [ebp - 0xf7e], cx
mov edx, dword [ebp - 0xc18]
add edx, 2
mov dword [ebp - 0xc18], edx
mov ax, word [ebp - 0xf7e]
mov word [ebp - 0x1f8], ax
mov ecx, dword [ebp - 0xc1c]
mov dx, word [ecx]
mov word [ebp - 0xf80], dx
mov eax, dword [ebp - 0xc1c]
add eax, 2
mov dword [ebp - 0xc1c], eax
mov cx, word [ebp - 0xf80]
mov word [ebp - 0x100], cx
push edi
push esi
add esp, 4
or edi, 0x12da9
add edi, 0x16058
pop edi
push eax
xor eax, 0xa625
call 0x40569a
add byte [edx + 0x3a], al
dec ecx
inc ecx
inc ecx
cmp byte [ebx], dh
inc ebp
cmp eax, 0x8104c483
call fcn.0041814d
pop eax
movzx edx, word [ebp - 0x100]
test edx, edx
jne 0x4056c7
movzx eax, word [ebp - 0x1f8]
movzx ecx, word [ebp - 0x100]
sub eax, ecx
mov dword [ebp - 0x1498], eax
jmp 0x40572a
movzx edx, word [ebp - 0x1f8]
movzx eax, word [ebp - 0x100]
cmp edx, eax
je 0x4055e6
movzx ecx, word [ebp - 0x1f8]
xor ecx, 0x20
movzx edx, word [ebp - 0x100]
cmp ecx, edx
je 0x4055e6
movzx eax, word [ebp - 0x1f8]
movzx ecx, word [ebp - 0x100]
cmp eax, ecx
jge 0x405714
mov dword [ebp - 0x14d8], 0xffffffff
jmp 0x40571e
mov dword [ebp - 0x14d8], 1
mov edx, dword [ebp - 0x14d8]
mov dword [ebp - 0x1498], edx
cmp dword [ebp - 0x1498], 0
jne 0x405773
push edi
push edx
add esp, 4
and edi, 0x112b4
pop edi
push esi
or esi, 0x626c
pop esi
push eax
push ecx
add esp, 4
sub eax, 0x147ac
sub eax, 0xa266
or eax, 0xc
add eax, 0xb9e
pop eax
mov eax, dword [ebp - 0x4d4]
mov dword [ebp - 0x2e0], eax
jmp 0x4057db
push ebx
push esi
add esp, 4
xor ebx, 0x580b
or ebx, 0x746a
pop ebx
push eax
push ecx
add esp, 4
call 0x405798
add byte [ebx + esi + 0x37], al
inc ebp
dec ecx
dec ecx
inc edi
xor al, byte [ebx + 0x7eb04c4]
dec edi
aas
cmp eax, dword [edx + 0x3e]
dec ebp
pop eax
mov ecx, dword [ebp - 0x4d4]
mov edx, dword [ecx]
mov dword [ebp - 0x4d4], edx
mov eax, dword [ebp - 0x4d4]
cmp eax, dword [ebp - 0xc20]
je 0x4057d1
mov ecx, dword [ebp - 0x4d4]
cmp dword [ecx + 0x30], 0
jne 0x405587
mov dword [ebp - 0x2e0], 0
push esi
add esi, 0x10031
and esi, 0x15f8e
add esi, 0x14320
and esi, 0x1589f
pop esi
push eax
push ebx
add esp, 4
call 0x405809
add byte [edi], dh
inc ecx
cmp byte [ebp + 0x37], al
cmp al, 0x4f
aaa
xor eax, 0x5804c483
cmp dword [ebp - 0x2e0], 0
jne 0x406126
mov edx, 0x6b
mov word [ebp - 0x16cc], dx
mov eax, 0x65
mov word [ebp - 0x16ca], ax
mov ecx, 0x72
mov word [ebp - 0x16c8], cx
mov edx, 0x6e
mov word [ebp - 0x16c6], dx
mov eax, 0x65
mov word [ebp - 0x16c4], ax
mov ecx, 0x6c
mov word [ebp - 0x16c2], cx
mov edx, 0x33
mov word [ebp - 0x16c0], dx
mov eax, 0x32
mov word [ebp - 0x16be], ax
mov ecx, 0x2e
mov word [ebp - 0x16bc], cx
mov edx, 0x64
mov word [ebp - 0x16ba], dx
mov eax, 0x6c
mov word [ebp - 0x16b8], ax
mov ecx, 0x6c
mov word [ebp - 0x16b6], cx
xor edx, edx
mov word [ebp - 0x16b4], dx
push ecx
sub ecx, 0x2ba9
jmp 0x4058bf
xor ecx, 0xab67
jmp 0x4058cc
pop ecx
push eax
push ecx
add esp, 4
sub eax, 0x1465d
sub eax, 0xcaa9
or eax, 0xc140
pop eax
mov byte [ebp - 0x820], 0x4c
mov byte [ebp - 0x81f], 0x6f
mov byte [ebp - 0x81e], 0x61
mov byte [ebp - 0x81d], 0x64
mov byte [ebp - 0x81c], 0x4c
mov byte [ebp - 0x81b], 0x69
mov byte [ebp - 0x81a], 0x62
mov byte [ebp - 0x819], 0x72
mov byte [ebp - 0x818], 0x61
mov byte [ebp - 0x817], 0x72
mov byte [ebp - 0x816], 0x79
mov byte [ebp - 0x815], 0x57
mov byte [ebp - 0x814], 0
mov eax, dword fs:[0x18]
mov dword [ebp - 0x1898], eax
mov ecx, dword [ebp - 0x1898]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x189c], edx
mov eax, dword [ebp - 0x189c]
mov dword [ebp - 0x14dc], eax
push ecx
xor ecx, 0x84e8
and ecx, 0x9a8
call 0x405984
add byte [esi + 0x49], cl
inc edx
dec eax
dec edi
cmp cl, byte [edx + 0x40]
add esp, 4
jmp 0x40598c
pop ecx
push edx
push edi
add esp, 4
and edx, 0x95b9
pop edx
cmp dword [ebp - 0x14dc], 0
jne 0x4059b1
mov dword [ebp - 0x6ec], 0
jmp 0x405c6d
mov ecx, dword [ebp - 0x14dc]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xc2c], eax
push eax
push edi
add esp, 4
call 0x4059d7
add byte [ebx + ecx*2 + 0x40], cl
dec ecx
push eax
dec ebx
aaa
dec edi
inc esp
add esp, 4
or eax, 0x13e92
pop eax
push edi
add edi, 0x17e01
sub edi, 0x1703c
and edi, 0xf655
pop edi
cmp dword [ebp - 0xc2c], 0
jne 0x405a0d
mov dword [ebp - 0x6ec], 0
jmp 0x405c6d
mov ecx, dword [ebp - 0xc2c]
mov dword [ebp - 0x4d8], ecx
push eax
jmp 0x405a21
pop eax
push edi
push esi
add esp, 4
jmp 0x405a30
jmp 0x405a35
or edi, 0x5553
call 0x405a47
add byte [edi + ecx*2], dh
dec esp
xor eax, 0xc4834137
add al, 0x5f
lea edx, [ebp - 0x16cc]
mov dword [ebp - 0xc28], edx
mov eax, dword [ebp - 0x4d8]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xc24], ecx
xor edx, edx
mov word [ebp - 0x1fc], dx
xor eax, eax
mov word [ebp - 0x104], ax
push ecx
push edi
add esp, 4
and ecx, 0x42d9
and ecx, 0xc80e
and ecx, 0x189
pop ecx
push eax
sub eax, 0xb870
and eax, 0x7c6e
add eax, 0xfcf9
sub eax, 0x2de0
pop eax
mov ecx, dword [ebp - 0xc24]
mov dx, word [ecx]
mov word [ebp - 0xf82], dx
mov eax, dword [ebp - 0xc24]
add eax, 2
mov dword [ebp - 0xc24], eax
mov cx, word [ebp - 0xf82]
mov word [ebp - 0x1fc], cx
mov edx, dword [ebp - 0xc28]
mov ax, word [edx]
mov word [ebp - 0xf84], ax
mov ecx, dword [ebp - 0xc28]
add ecx, 2
mov dword [ebp - 0xc28], ecx
mov dx, word [ebp - 0xf84]
mov word [ebp - 0x104], dx
push ecx
add ecx, 0xa02
or ecx, 0x4ae5
pop ecx
push ecx
push ebx
add esp, 4
call 0x405b23
add byte [edi + 0x43], cl
cmp dh, byte [ecx + ecx*2]
aas
add esp, 4
pop ecx
push eax
jmp 0x405b2f
xor eax, 0x184dc
pop eax
movzx eax, word [ebp - 0x104]
test eax, eax
jne 0x405b59
movzx ecx, word [ebp - 0x1fc]
movzx edx, word [ebp - 0x104]
sub ecx, edx
mov dword [ebp - 0x14e4], ecx
jmp 0x405bbc
movzx eax, word [ebp - 0x1fc]
movzx ecx, word [ebp - 0x104]
cmp eax, ecx
je 0x405a78
movzx edx, word [ebp - 0x1fc]
xor edx, 0x20
movzx eax, word [ebp - 0x104]
cmp edx, eax
je 0x405a78
movzx ecx, word [ebp - 0x1fc]
movzx edx, word [ebp - 0x104]
cmp ecx, edx
jge 0x405ba6
mov dword [ebp - 0x14e0], 0xffffffff
jmp 0x405bb0
mov dword [ebp - 0x14e0], 1
mov eax, dword [ebp - 0x14e0]
mov dword [ebp - 0x14e4], eax
cmp dword [ebp - 0x14e4], 0
jne 0x405c05
push ecx
push edi
add esp, 4
xor ecx, 0x18bf
pop ecx
push esi
call 0x405be2
add byte [edx], bh
cmp cl, byte [ebx + 0x32]
dec ebp
inc ebx
inc esp
dec ebx
inc ebx
dec ebx
add esp, 4
jmp 0x405bea
xor esi, 0xe720
push eax
push ecx
add esp, 4
sub eax, 0x15a3
sub eax, 0x68a2
jmp 0x405c1c
jmp 0x405c24
pop eax
push ebx
push edx
add esp, 4
add ebx, 0x120d9
and ebx, 0x1c9f
pop ebx
mov edx, dword [ebp - 0x4d8]
mov eax, dword [edx]
mov dword [ebp - 0x4d8], eax
mov ecx, dword [ebp - 0x4d8]
cmp ecx, dword [ebp - 0xc2c]
je 0x405c63
mov edx, dword [ebp - 0x4d8]
cmp dword [edx + 0x30], 0
jne 0x405a19
mov dword [ebp - 0x6ec], 0