Function at 0x10148b74
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using xor
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xa8
mov eax, dword fs:[0x2c]
push esi
push edi
mov edi, dword [0x101bf848]
mov dword [ebp - 0x18], ecx
mov edx, dword [eax + edi*4]
mov eax, dword [0x101c6e34]
cmp eax, dword [edx + 4]
jg 0x101489de
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi*4]
mov eax, dword [0x101c6e38]
cmp eax, dword [ecx + 4]
jg 0x10148a82
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + edi*4]
mov eax, dword [0x101c6e28]
cmp eax, dword [ecx + 4]
jg 0x10148afc
mov ecx, dword [0x101c6e24]
cmp dword [ecx + 0x2c], 0
je 0x101486aa
mov eax, dword [ecx]
push 0
mov eax, dword [eax + 0x24]
call eax
mov ecx, dword [0x101c6e30]
cmp dword [ecx + 0x2c], 1
je 0x101486bf
mov eax, dword [ecx]
push 1
mov eax, dword [eax + 0x24]
call eax
mov eax, dword [0x101be6c0]
mov edi, dword [eax + 0x10]
mov ecx, dword [eax + 0x1c]
mov edx, dword [edi]
mov eax, dword [ecx]
mov esi, dword [edx + 0xc]
mov eax, dword [eax + 0x30]
call eax
push eax
mov ecx, edi
call esi
mov esi, eax
test esi, esi
je 0x101489d3
mov ecx, dword [esi]
mov edx, dword [ecx + 0x1d4]
mov ecx, esi
call edx
test al, al
je 0x10148998
mov eax, dword [0x101be700]
cmp byte [eax], 0
je 0x10148986
mov eax, dword [ebp - 0x18]
cmp byte [eax], 0
je 0x10148986
mov ecx, esi
call fcn.10019b80
movss xmm0, dword [eax]
movss dword [ebp - 0x3c], xmm0
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x40], xmm0
movss dword [ebp - 0x48], xmm0
movss xmm0, dword [eax + 8]
mov eax, dword [0x101be6c0]
movss dword [ebp - 0x30], xmm0
mov eax, dword [eax + 4]
movss xmm1, dword [eax + 0x90]
movss xmm2, dword [eax + 0x94]
mov eax, dword [0x101be6bc]
movss dword [ebp - 0x2c], xmm1
movss dword [ebp - 0x18], xmm2
mov eax, dword [eax + 0x10]
cmp byte [eax], 0
je 0x10148784
addss xmm0, dword [0x101afd50]
movss dword [ebp - 0x30], xmm0
movss dword [ebp - 0x44], xmm0
jmp 0x101487a4
mov ecx, esi
call fcn.10030470
movss xmm1, dword [ebp - 0x30]
addss xmm1, dword [eax + 8]
movss dword [ebp - 0x30], xmm1
movss dword [ebp - 0x44], xmm1
movss xmm1, dword [ebp - 0x2c]
mulss xmm1, dword [0x101afb40]
cvtps2pd xmm0, xmm1
movss dword [ebp - 0x2c], xmm1
call fcn.10160ee0
movss xmm1, dword [ebp - 0x2c]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x38], xmm0
cvtps2pd xmm0, xmm1
call fcn.1015ff40
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0x18]
mulss xmm0, dword [0x101afb40]
movss dword [ebp - 0x18], xmm0
cvtps2pd xmm0, xmm0
call fcn.10160ee0
movss xmm2, dword [ebp - 0x18]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x34], xmm0
cvtps2pd xmm0, xmm2
call fcn.1015ff40
movss xmm2, dword [ebp - 0x34]
lea ecx, [ebp - 0xa8]
movss xmm3, dword [ebp - 0x38]
xorps xmm1, xmm1
mulss xmm2, dword [ebp - 0x2c]
xorps xmm3, xmmword [0x101b1470]
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [ebp - 0x2c]
call fcn.1000cf70
mov eax, dword [0x101be700]
movss xmm4, dword [ebp - 0x3c]
mov dword [ebp - 0xc], 0x101ae740
mov dword [ebp - 8], esi
movd xmm0, dword [eax + 4]
mov eax, ecx
cvtdq2ps xmm0, xmm0
push eax
lea eax, [ebp - 0xc]
push eax
push 0x200400b
lea eax, [ebp - 0x28]
mulss xmm1, xmm0
push eax
mulss xmm2, xmm0
lea eax, [ebp - 0x4c]
push eax
mulss xmm3, xmm0
subss xmm4, xmm1
movss xmm1, dword [ebp - 0x40]
movss xmm0, dword [ebp - 0x30]
subss xmm1, xmm2
subss xmm0, xmm3
movss dword [ebp - 0x28], xmm4
movss dword [ebp - 0x24], xmm1
movss dword [ebp - 0x20], xmm0
call fcn.10145580
mov eax, dword [0x101be700]
movd xmm0, dword [eax + 4]
mov eax, dword [0x101be6c0]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax + 4]
movss dword [eax + 0x98], xmm0
movss xmm0, dword [0x101afc38]
movss xmm1, dword [ebp - 0x7c]
comiss xmm0, xmm1
jbe 0x101488ea
mov eax, dword [0x101be6c0]
subss xmm1, dword [0x101afb78]
mov eax, dword [eax + 4]
mulss xmm1, dword [eax + 0x98]
movss dword [eax + 0x98], xmm1
mov eax, dword [0x101be6c0]
movss xmm0, dword [0x101afd20]
mov ecx, dword [eax + 4]
comiss xmm0, dword [ecx + 0x98]
setbe al
mov byte [ecx + 0x8d], al
mov eax, dword [0x101be6c0]
mov byte [0x101c652d], 1
mov eax, dword [eax + 4]
cmp byte [eax + 0x8d], 0
je 0x101489d3
cmp byte [ebx + 8], 0
je 0x10148950
cmp byte [0x101c652c], 0
je 0x101489d3
mov eax, dword [0x101c6e2c]
mov dword [eax + 0x2c], 0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
mov eax, dword [0x101c6e2c]
cmp dword [eax + 0x2c], 1
jge 0x10148974
mov byte [0x101c652c], 1
mov dword [eax + 0x2c], 1
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
mov byte [0x101c652c], 0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
cmp byte [0x101c652d], 0
je 0x101489d3
mov byte [0x101c652d], 0
jmp 0x101489c4
mov eax, dword [0x101be6c0]
xorps xmm0, xmm0
mov ecx, dword [eax + 4]
movss xmm1, dword [ecx + 0x98]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x101489d3
mov eax, dword [ebp - 0x18]
mov dword [ecx + 0x98], 0
mov byte [eax], 0
mov eax, dword [0x101be6c0]
mov eax, dword [eax + 4]
mov byte [eax + 0x8d], 0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
push 0x101c6e34
call fcn.100774e5
add esp, 4
cmp dword [0x101c6e34], 0xffffffff
jne 0x10148661
mov eax, dword [0x101be6c0]
mov cl, 0x74
mov byte [ebp - 1], 0x63
mov dl, 0x5d
mov byte [ebp - 2], 0x76
mov ch, 0x6a
mov dh, 0x67
mov esi, dword [eax + 0x34]
mov al, 0x71
mov byte [ebp - 3], al
mov ah, 0x61
mov byte [ebp - 0xf], 2
xor al, byte [ebp - 0xf]
xor cl, byte [ebp - 0xf]
mov byte [ebp - 0xe], al
mov al, byte [ebp - 1]
mov byte [ebp - 0xd], cl
mov cl, byte [ebp - 0xf]
xor al, cl
mov byte [ebp - 5], 0
mov byte [ebp - 8], al
xor ah, cl
mov al, byte [ebp - 2]
xor dl, cl
xor al, cl
mov byte [ebp - 0xc], dl
mov byte [ebp - 7], al
xor ch, cl
mov al, byte [ebp - 3]
xor dh, cl
xor al, cl
mov byte [ebp - 0xa], ch
mov byte [ebp - 0xb], ah
lea ecx, [ebp - 0xe]
mov byte [ebp - 9], dh
mov byte [ebp - 6], al
mov byte [ebp - 5], 0
mov eax, dword [esi]
push ecx
mov ecx, esi
mov eax, dword [eax + 0x1c]
call eax
push 0x101c6e34
mov dword [0x101c6e2c], eax
call fcn.1007749b
add esp, 4
jmp 0x10148661
push 0x101c6e38
call fcn.100774e5
add esp, 4
cmp dword [0x101c6e38], 0xffffffff
jne 0x1014867b
mov eax, dword [0x101be6c0]
mov cl, 0x5e
mov edx, dword [eax + 0x34]
xor eax, eax
mov dword [ebp - 0x28], 0x333f3d5e
mov dword [ebp - 0x24], 0x3b3a3701
mov dword [ebp - 0x20], 0x3f27323f
mov word [ebp - 0x1c], 0x29
jmp 0x10148ac5
xor byte [ebp + eax - 0x27], cl
inc eax
cmp eax, 0xc
jae 0x10148ad4
mov cl, byte [ebp - 0x28]
jmp 0x10148ac5
mov byte [ebp - 0x1b], 0
lea ecx, [ebp - 0x27]
mov eax, dword [edx]
push ecx
mov ecx, edx
mov eax, dword [eax + 0x1c]
call eax
push 0x101c6e38
mov dword [0x101c6e24], eax
call fcn.1007749b
add esp, 4
jmp 0x1014867b
push 0x101c6e28
call fcn.100774e5
add esp, 4
cmp dword [0x101c6e28], 0xffffffff
jne 0x10148695
mov eax, dword [0x101be6c0]
mov cl, 0x6d
mov byte [ebp - 3], cl
mov dl, 0x61
mov byte [ebp - 2], 0x7c
mov ch, 0x7f
mov byte [ebp - 1], 0x78
mov dh, 0x62
mov esi, dword [eax + 0x34]
mov al, 0x6f
mov byte [ebp - 0x10], 0xc
mov ah, 0x53
xor al, byte [ebp - 0x10]
xor cl, byte [ebp - 0x10]
mov byte [ebp - 0xf], al
mov al, byte [ebp - 3]
mov byte [ebp - 0xe], cl
mov cl, byte [ebp - 0x10]
xor al, cl
mov byte [ebp - 0x11], 0x63
mov byte [ebp - 9], al
xor ah, cl
mov al, byte [ebp - 2]
xor dl, cl
xor al, cl
mov byte [ebp - 5], 0
mov byte [ebp - 8], al
xor ch, cl
mov al, byte [ebp - 1]
xor dh, cl
xor al, cl
mov byte [ebp - 0xb], ch
mov byte [ebp - 7], al
mov al, byte [ebp - 0x11]
xor al, cl
mov byte [ebp - 0xd], dl
mov byte [ebp - 0xc], ah
lea ecx, [ebp - 0xf]
mov byte [ebp - 0xa], dh
mov byte [ebp - 6], al
mov byte [ebp - 5], 0
mov eax, dword [esi]
push ecx
mov ecx, esi
mov eax, dword [eax + 0x1c]
call eax
push 0x101c6e28
mov dword [0x101c6e30], eax
call fcn.1007749b
add esp, 4
jmp 0x10148695