Function at 0x403fee
Capabilities:
Authenticate hmac
Check os version
Encode data using base64
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:
mov eax, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
push edi
push eax
pop ebx
mov eax, 0x41a343
mov eax, 0x41a4bd
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
lea eax, [ebp - 4]
push eax
xor edi, edi
mov esi, 0x41a3b5
push esi
push edi
push 0x41a40c
jne 0x403fda
push edi
call dword [0x41a0e4]
push dword [ebp - 0x5c]
cmp dword [ebp - 0x54], 0xffffffaf
jne 0x404049
push edi
mov dword [ebp - 0x5c], esp
add esp, 0xffffff5c
sub ecx, ebx
cmp dword [ebp - 0x40], 1
je 0x40405f
je 0x403fe2
push dword [ebp - 0xc]
or ebx, edi
cmp dword [ebp - 0x40], 5
jne 0x40407b
cmp ch, dh
jne 0x403ffb
shr ecx, 0x10
shr edx, 0x10
cmp cl, dl
jne 0x404077
push dword [ebp - 0x14]
mov dword [ebp - 0x20], ebx
push dword [ebp - 0x70]
mov dword [ebp - 0x6c], 0x1d50c
push dword [ebp - 0x6c]
xor eax, ecx
cmp dword [ebp - 0x40], 1
je 0x40409d
push ebx
push dword [ebp + 0x14]
call fcn.0041237a
mov edi, dword [ebp - 0x5c]
lea edi, [edi - 0x98]
push edi
push dword [ebp - 0x6c]
call fcn.00403e4e
mov eax, dword [ebp - 0x5c]
lea eax, [eax - 4]
push eax
push dword [ebp - 0x60]
call fcn.00403e4e
mov byte [ebp - 0x74], 0x4f
lea edi, [ebp - 0xc]
sub ebx, edx
push edi
mov dword [ebp - 0x68], edx
push dword [ebp - 0x60]
call fcn.00403e4e
cmp dword [ebp - 0x40], 0x71
jne 0x4040f2
push 0
mov dword [esp + 0x1390], 0x76
mov dword [esp + 0x40], ebx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x44], ecx
and ebx, dword [ebp - 0x1c]
cmp byte [eax + 0x1a], 0
jne 0x40454a
cmp dword [ebp - 0x54], 0x400002
jne 0x40411c
mov esi, eax
test esi, esi
je 0x40416b
mov ecx, esi
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x28], eax
push dword [edx - 4]
cmp dword [ebp - 0x40], 1
je 0x40413e
push dword [ebp - 8]
call ebx
cmp dword [ebp - 4], edi
mov esi, dword [0x41a3b1]
je 0x4040f5
mov ecx, dword [ebp - 0x5c]
add eax, dword [ebp - 0x74]
mov dword [ebp - 0x4c], eax
push dword [ecx - 0x98]
cmp dword [ebp - 0x40], 0x400002
jne 0x40416f
lea ecx, [esp + 0x24]
call fcn.00406fab
push eax
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x1c]
call fcn.00406e62
xor edi, dword [ebp - 0x74]
lea ecx, [ebp - 0x60]
push ecx
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x20]
call fcn.00403e4e
cmp dword [ebp - 0x54], 0
je 0x404191
push ebx
push edi
lea esi, [ebp - 0x60]
push esi
mov esi, dword [ebp - 0xc]
push dword [esi + 0x30]
call fcn.00403ed7
push 4
mov byte [ebp - 0x28], 0xd9
sub esi, dword [ebp - 0x1c]
push 0x3000
push 0x2800
mov dword [ebp - 0x74], ebx
xor edx, eax
push 0
or eax, dword [ebp - 0x34]
xor edx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x34], 0xe9f
mov dword [ebp - 0x4c], ebx
mov ecx, dword [ebp - 0x60]
call dword [ecx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
sub edi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x5c]
lea edi, [edi - 0xa4]
push edi
push dword [ebp - 0x6c]
call fcn.00403e4e
or eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0xc]
mov al, byte [ebp - 0x60]
mov al, byte [edx + 0x95]
mov byte [ebp - 0x60], al
mov edi, 0xff
and ebx, ecx
and dword [ebp - 0x60], edi
and edx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0xc]
mov dl, byte [ebp - 0x38]
mov dl, byte [edi + 0x94]
mov byte [ebp - 0x38], dl
or esi, dword [ebp - 0x24]
cmp dword [ebp - 0x40], 1
je 0x404248
mov ebx, 0xff
mov ecx, edx
add eax, dword [ebp - 0x44]
and dword [ebp - 0x38], ebx
sub esi, dword [ebp - 0x24]
push dword [ebp - 0x38]
sub esi, dword [ebp - 0x18]
push dword [ebp - 0x60]
or dword [ebp - 0x24], 0x110
mov ecx, dword [ebp - 0xc]
push dword [ecx + 0x90]
cmp dword [ebp - 0x40], 1
je 0x404286
push dword [ebp + 8]
push dword [esi + 4]
call dword [0x41a124]
mov edi, dword [ebp - 0x6c]
cmp dword [ebp - 0x54], 0x400002
jne 0x40429b
pop ecx
mov dword [ebp - 0x28], eax
cmp eax, esi
mov edx, dword [ebp - 0xc]
and ecx, dword [ebp - 0x68]
cmp dword [ebp - 0x54], 0x400002
jne 0x4042ba
je 0x4042f1
push eax
call dword [0x41a16c]
add ebx, eax
inc edi
inc edi
lea edi, [edx + 0x684]
mov dword [ebp - 0x6c], edi
or dword [ebp - 0x20], 0x83f
or esi, dword [ebp - 0x4c]
and edx, dword [ebp - 0x50]
push dword [ebp - 0x6c]
add eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x54], 0
je 0x4042eb
push eax
lea eax, [ebp + 0xa0]
push eax
lea edx, [esp + 0x20]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x28], edi
add dword [ebp - 0x18], edi
push dword [ecx - 0xa4]
and dword [ebp - 0x28], ebx
push 0
call fcn.00414271
add dword [ebp - 0x50], 0x46
lea eax, [eax + 0x33]
mov esi, dword [ebp - 0x60]
mov word [ebp - 0x2c], 0x79
sub edi, edx
mov edx, dword [ebp - 0xc]
or eax, ebx
add eax, dword [ebp - 0x24]
lea esi, [edx + 0x684]
mov dword [ebp - 0x60], esi
add edi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x38]
lea edx, [edi + 0x92a]
mov ecx, dword [ebp - 0xc]
xor dword [ebp - 0x18], 0x39e
lea edi, [ecx + 0xfb8]
mov dword [ebp - 0x38], edi
lea ebx, [ebp - 0x38]
push ebx
cmp dword [ebp - 0x54], 0x400002
jne 0x40436b
push dword [ebp - 0x60]
call fcn.00403f27
xor dword [ebp - 0x10], eax
push dword [ebp - 0x38]
mov ebx, dword [ebp - 0x5c]
add dword [ebp - 0x64], 0x8b6
add dword [ebp - 0x18], edi
push dword [ebx - 0xa4]
or edi, edx
xor dword [ebp - 0x10], ebx
cmp dword [ebp - 0x40], 0x400002
jne 0x4043b0
mov eax, dword [0x41a42d]
cmp esi, dword [eax + 0x24]
je 0x4043b9
cmp esi, dword [0x41a5db]
je 0x404330
push esi
mov ebx, dword [ebp - 0x6c]
and ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xc]
add ecx, dword [ebp - 0x28]
lea ebx, [eax + 0x684]
mov dword [ebp - 0x6c], ebx
or ebx, edi
mov edi, ecx
and eax, dword [ebp - 0x74]
and dword [ebp - 0x74], ecx
push dword [ebp - 0x6c]
call fcn.004177d4
lea esi, [ebp - 0x60]
push esi
mov esi, dword [ebp - 0xc]
push dword [esi + 0x20]
call fcn.00403e4e
mov word [ebp - 0x1c], 0xf95
lea edx, [ebp - 0x60]
push edx
mov edx, dword [ebp - 0xc]
push dword [edx + 0x34]
call fcn.00403ed7
add edi, ecx
or edi, dword [ebp - 0x44]
mov dword [ebp - 0x18], edx
push 0x8000
mov dword [ebp - 0x34], 0x96
push 0
mov ecx, esi
mov ecx, edi
add ebx, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x68]
xor dword [ebp - 0x1c], edx
push dword [ebx - 0xa4]
mov dword [ebp - 0x58], ecx
sub esi, ecx
mov edx, dword [ebp - 0x60]
or word [ebp - 0x58], 0x504
mov ecx, dword [ebp - 0x60]
call dword [ecx]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], edx
test dword [ebp - 0x54], 0
je 0x40445a
mov ecx, dword [ebx]
push eax
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x20]
add dword [ebp - 0x34], edx
xor esi, ecx
mov eax, dword [ebp - 0x60]
cmp dword [ebp - 0x54], 0xffffffba
jne 0x404473
call dword [0x41a0e8]
cmp eax, esi
mov esi, dword [ebp - 0xc]
lea eax, [esi + 0x684]
mov dword [ebp - 0x60], eax
add edx, esi
and eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x38]
mov edx, dword [ebp - 0xc]
lea ebx, [edx]
xor ebx, dword [ebp - 0x18]
lea edi, [edx + 0xfb8]
mov dword [ebp - 0x38], edi
lea ebx, [ebp - 0x38]
or dword [ebp - 0x68], ebx
cmp dword [ebp - 0x40], 1
je 0x4044b3
test eax, eax
je 0x40f918
mov eax, dword [esp + 0x54]
push ebx
xor dword [ebp - 0x68], ebx
add esi, 0xa51c
push dword [ebp - 0x60]
and edx, dword [ebp - 0x2c]
or dword [ebp - 0x74], 0x22f
call fcn.00403f27
mov edi, dword [ebp - 0xc]
cmp dword [ebp - 0x54], 0
je 0x4044de
push eax
push 0xfffffffffffffff4
push dword [edi + 0x24]
cmp dword [ebp - 0x54], 0x400002
jne 0x4044f7
mov eax, dword [eax]
test eax, eax
js 0x404542
lea edi, [ecx + edi + 0xc]
push dword [ebp - 0x38]
add eax, dword [ebp - 0x28]
push dword [ebp - 0x60]
add edx, 0xf1bb
cmp dword [ebp - 0x54], 0xffffffa4
jne 0x404513
imul edi, dword [ebp + 0x10]
call fcn.00418104
or edx, esi
cmp dword [ebp - 0x40], 0x400002
jne 0x40452c
inc dword [ebp - 0x320]
mov eax, dword [ebp - 0xc]
add edi, dword [ebp - 0x1c]
mov byte [eax + 0x1a], 1
add dword [ebp - 0x54], 0
je 0x40454a
xor esi, esi
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov eax, dword fs:[0x30]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x40], 1
je 0x404567
add eax, edi
test edx, edx
jne 0x40450f
sub eax, dword [ebp - 0x3c]
sar eax, 1
lea edi, [ebp - 0x6c]
push edi
mov edi, dword [ebp - 0x6c]
push dword [edi + 0xc]
call fcn.00403e4e
and dword [ebp - 0x50], 0x18d
test dword [ebp - 0x54], 0
je 0x40458c
lea ecx, [eax + 0xc]
lea ecx, [ebp - 0x60]
push ecx
mov ecx, dword [ebp - 0x6c]
push dword [ecx + 0x1c]
call fcn.00403e4e
sub esi, dword [ebp - 0x74]
or esi, edx
mov esi, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x60]
lea esi, [ecx - 0x10]
mov dword [ebp - 0x60], esi
sub ecx, edx