Function at 0x406541
Capabilities:
Authenticate hmac
Check os version
Encrypt data using speck
Get number of processors
Inspect section memory permissions
Parse credit card information
Parse pe header
Resolve function by parsing pe exports

Disassembly:
je 0x40fedc
push 0x6e72656b
xor esi, ecx
and dword [ebp - 0x4c], eax
pop dword [ebp - 0x38]
sub edx, esi
push dword [ebp - 0x60]
push dword [ebp - 0x38]
call fcn.00403e4e
and edx, dword [ebp - 0x10]
push 0x32336c65
and edi, dword [ebp - 0x4c]
or edx, dword [ebp - 0x20]
add esi, 0x23d3
mov esi, edi
pop dword [ebp - 0x38]
mov eax, dword [ebp - 0x60]
lea eax, [eax + 4]
push eax
push dword [ebp - 0x38]
call fcn.00403e4e
sub ebx, ecx
cmp dword [ebp - 0x40], 1
je 0x406533
pop esi
sar eax, 2
neg eax
mov eax, esi
sub eax, dword [0x42dcc4]
push 0x6c6c642e
cmp dword [ebp - 0x54], 0x65
jne 0x406547
call 0x40ffd1
pop esi
pop dword [ebp - 0x38]
cmp dword [ebp - 0x40], 0x400002
jne 0x40655e
jg 0x406582
sub ecx, 0x30
or ecx, 0xffffffff
mov esi, dword [ebp - 0x60]
lea esi, [esi + 8]
push esi
push dword [ebp - 0x38]
call fcn.00403e4e
or esi, ecx
mov dword [ebp - 0x1c], ebx
and edx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x60]
mov dword [ebx + 0xc], 0
add ebx, 0x7647
lea edx, [ebp - 0x60]
push edx
mov edx, dword [ebp - 0xc]
push dword [edx + 0x3c]
call fcn.00403e4e
cmp dword [ebp - 0x40], 0x400002
jne 0x4065a7
mov edx, dword [eax]
cmp edx, dword [edi]
lea esi, [ebp - 0x60]
push esi
mov esi, dword [ebp - 0x5c]
push dword [esi + 0xc]
call fcn.00403ed7
or dword [ebp - 0x1c], ecx
xor dword [ebp - 0x18], ebx
or edx, edi
mov edi, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x58]
xor word [ebp - 0x48], 0x605
mov ebx, dword [ebp - 0xc]
lea edi, [ebx + 0x44]
mov dword [ebp - 0x6c], edi
cmp dword [ebp - 0x54], 0
je 0x4065de
idiv ecx
push dword [ebp - 0x6c]
add edx, 0x909a
and dword [ebp - 0x10], eax
add word [ebp - 0x2c], 0x512
mov edx, dword [ebp - 0x60]
mov edi, ebx
and ecx, edi
mov edi, dword [ebp - 0x60]
call dword [edi]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
and ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x6c]
add edx, 0x3a8b
xor eax, dword [ebp - 0x48]
or dword [ebp - 0x6c], ecx
je 0x406727
lea eax, [eax + 0x38]
mov dword [ebp - 0x20], ecx
push 0xda4e816b
cmp dword [ebp - 0x54], 0x10
jne 0x406652
lea ecx, [ebp - 0x1360]
lea ecx, [ebp - 0x136c]
lea ecx, [ebp - 0x134c]
lea ecx, [ebp - 0x1350]
lea ecx, [ebp - 0x1360]
lea ecx, [ebp - 0x136c]
add edx, 0x22e1
or ecx, esi
push 0xd3e461fd
xor eax, dword [ebp - 0x44]
add dword [ebp - 0x68], ecx
cmp dword [ebp - 0x40], 0x400002
jne 0x406695
mov eax, dword [ebp - 0x1358]
and eax, 0x400
je 0x40f4f3
and byte [ebp - 0x1357], 0xfb
lea ecx, [ebp - 0x136c]
mov eax, dword [ebp - 0x1358]
push dword [ebp - 0x6c]
or esi, dword [ebp - 0x20]
or esi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x5c]
mov byte [ebp - 0x24], 0xb5
push dword [ecx + 8]
xor ecx, esi
mov ecx, esi
cmp dword [ebp - 0x40], 0x400002
jne 0x4066bd
call fcn.00406889
add edx, dword [ebp - 0x44]
and ecx, edx
sub eax, dword [ebp - 0x58]
or edi, dword [ebp - 0x2c]
cmp dword [ebp - 0x6c], 1
jne 0x406727
cmp dword [ebp - 0x40], 1
je 0x4066f0
cmp dword [eax], edi
je 0x4066a8
dec edx
sub eax, 4
test edx, edx
cmp dword [ebp - 0x54], 0xffffffac
jne 0x406703
push 0x41a1e1
call 0x417127
mov eax, dword [ebp - 0x60]
or dword [ebp - 0x60], eax
jne 0x406727
mov edx, dword [ebp - 0x5c]
cmp dword [ebp - 0x54], 0xffffffde
jne 0x40671d
test esi, esi
mov dword [edx - 4], 1
lea edi, [ebp - 0x6c]
push edi
mov edi, dword [ebp - 0x5c]
push dword [edi - 4]
call fcn.00403e4e
pop dword [ebp - 0xc]
pop dword [ebp - 0x14]
lea ecx, [edi + ecx + 0x78]
or edi, dword [ebp - 0x10]
cmp dword [ebp - 0x40], 0xc
jne 0x40674e
test eax, eax
pop dword [ebp - 0x70]
mov esi, dword [ebp - 0x5c]
mov esp, esi
add ebx, dword [ebp - 0x1c]
and dword [ebp - 0x2c], 0x6a
xor dword [ebp - 0x64], edi
xor ecx, dword [ebp - 0x4c]
pop dword [ebp - 0x5c]
and eax, esi
xor dword [ebp - 0x50], edi
ret 8