Function at 0x4213ef
Capabilities:
Authenticate hmac
Check os version
Encode data using base64
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
ja 0x4180be
jbe 0x404c17
push ds
test dword [ebx + esi + 0x3d], esp
jbe 0x4180be
invalid
inc edx
inc esp
shr bx, 0x40
jno 0x412733
jo 0x4052db
jbe 0x4052fc
inc edi
jo 0x412733
xor al, 0x4a
mov cl, byte [ebp + 0x28]
mov ebx, dword [esi + 4]
lea esi, [esi + 8]
shl word [ebx], cl
jmp dword [esi]
dec ebp
sub byte [ebx + 0x768d045e], cl
or cl, al
loop 0x405327
shl dword [ebx], cl
jmp dword [esi]
add bh, bh
invalid
mov edx, dword [esi + 4]
xchg dl, cl
xor eax, 0x425caabb
fdivr st(1)
mov dx, word [ebp + 0x10]
shl bp, 0x20
js 0x439f6e
jns 0x40a27a
pop esp
test ecx, esp
cmpsb byte [esi], byte es:[edi]
cmp al, 0x9e
jns 0x439f6e
fld dword [edi - 0x75]
pop ebp
cld
mov esi, dword [esi + 4]
call 0x41bc1c
jmp dword [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
mov bp, bp
ret
shr edx, 0x40
push 3
ja 0x43e88a
jbe 0x41228c
jg 0x412295
xor byte [edi], cl
xchg al, bh
lds eax, [edx]
add byte [0x1ee8c164], ah
jbe 0x43e88a
and eax, 0x1ee8c164
call 0x444fb8
add byte [eax], al
sub eax, 3
mov eax, 0x465482
je 0x4122b8
mov edi, edi
shr al, 0x40
jne 0x4122b3
je 0x41231e
idiv byte [bp + di - 0x6948]
push esp
inc esi
add byte [edx], ch
mov eax, 0x465496
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
jmp 0x4122c8
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, ebx
mov dword [0x4757f1], eax
push 0x414254
ret
add byte [eax], ch
add byte [eax], al
add byte [eax], ah
xor byte [ebx], al
mov ss, word [ecx]
inc ebx
add byte [eax + 0x4326], ah
inc eax
add byte [eax], al
sub byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
sub byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [eax], bl
add byte [eax], al
add dh, al
popal
inc edx
add byte [edx + 0x3800425c], ch
add byte [eax], al
add bl, dl
push edx
inc ebx
add byte [eax], ah
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
adc byte [esi], bl
inc esp
add byte [edi], cl
inc edx
add byte [edi - 0x27ffbe4d], bh
scasd eax, dword es:[edi]
shr bp, 0x40
mov bp, bp
push eax
pop eax
mov eax, dword [esi + 4]
xchg dword [esp], eax
jmp eax
dec esp
insb byte es:[edi], dx
push 0x41b3bd
ret
xor eax, 0xb126ff23
jp 0x4126e0
sbb ecx, dword [ebx - 0x7ef0fba2]
cli
pushfd
add byte [eax], al
jo 0x412765
test ebx, 0xfebdf43
jo 0x41c457
and eax, 0x24648dd3
add al, 0xf
test byte [edi + 1], cl
add byte [eax], al
jne 0x41277e
aaa
add dword [ebp - 0x2640051a], 0x8a00475e
xchg byte [edx + 0x3c000000], bh
add dword [edi], ecx
test dword [ebp], ebx
add byte [eax], al
mov edi, 0x475ed9
mov al, byte [esi + 0xba]
cmp al, 1
jne 0x4127ee
je 0x412796
js 0x4127c5
daa
mov cx, word [esi + 0xbc]
mov ax, cx
shr ax, 0xa
shl ecx, 6
or eax, ecx
jb 0x4263f6
xor ax, word [esi + 6]
jb 0x414e2b
add ch, 0
xor eax, 0x8450
jb 0x414e4c
add byte [eax], al
sub eax, 0x11
xor eax, 0x5131
jb 0x414e54
sub eax, 0xe9
and eax, 0xffff
jb 0x42bba3
jmp 0x41288b
cmp al, 2
jne 0x41285f
je 0x4127fd
sub dl, byte [esi]
aas
shl byte es:[esi - 0x77], cl
shl byte [esi - 0x75], cl
invalid
mov dx, dx
mov cx, word [esi + 0xbc]
mov ebx, ebx
mov ax, cx
shr ax, 0xc
shl ecx, 4
or eax, ecx
jb 0x42bbc5
xor ax, word [esi + 6]
jb 0x42bbda
xor eax, 0x8436
jb 0x4283a3
sub eax, 0xe
xor eax, 0x5131
jb 0x4283ac
sub dx, 0
sub eax, 0xa6
and eax, 0xffff
jb 0x42112e
call 0x322a2857
add byte [eax], al
add bl, bh
out 0xc0, eax
out 0x20, eax
jmp 0x41288b
test al, al
jb 0x426521
jne 0x412886
mov cl, cl
je 0x412873
adc eax, 0xfc031bf
or al, 0x3c
add dword [eax], eax
xor eax, eax
jb 0x426543
mov ax, word [esi + 6]
jmp 0x41288b
mov eax, 0x81
and edx, 0xffff
jb 0x42dd22
cmp eax, edx
shr al, 0x40
je 0x4128c6
jne 0x4128a8
cpuid
nop
ret
mov dx, word [edi + 2]
add edi, 2
inc ebx
cmp dx, 0xffff
jne 0x412783
je 0x4128c6
loope 0x412852
pop ecx
inc esi
mov ebp, 0xbc816620
sbb ebx, ecx
pop esi
inc edi
add bh, bh
jmp dword [esi - 0x77]
cmp word [ebx + ebx + 0x475ed9], 0xffff
mov di, di
jne 0x43e8a5
je 0x4128df
cpuid
nop
ret
mov eax, dword [ebp - 4]
and ebp, ebp
jno 0x4128eb
inc ecx
daa
invalid
jno 0x4339d9
invalid
test ebx, ebx
jb 0x40a262
jne 0x43d85d
je 0x413f92
hlt
push esi
call fcn.0042d9d4
add esp, 4
test al, 2
jb 0x43af64
mov bl, bl
je 0x43d85d
jne 0x413fb3
aaa
or edi, edi
imul al
add esp, dword [ebx + eax]
add cl, bh
push esi
call fcn.004463bd
stc
and eax, eax
jno 0x413fc1
and eax, 0x38810f89
nop
add dword [eax], eax
jno 0x42cfff
fisub dword [ebp - 0x15]
jmp 0x414425
push esi
call fcn.004463bd
add esp, 8
jne 0x412270
je 0x41443d
xor esi, edx
in al, dx
je 0x412270
push esi
call fcn.004407e0
mov ax, word [edi + 0x18]
shr ecx, 0x40
push eax
push esi
call fcn.0044042b
add esp, 0x30
jmp fcn.0040f08a
cmp al, 0x51
xchg dword [edx - 0x75], edi
pop ebp
cmp byte [esi - 0x3f], ah
out 0x20, al
mov di, di
mov edx, dword [esi + 8]
mov ecx, dword [esi + 4]
mov bp, bp
lea esi, [esi + 0xc]
shr word [ebx + edx], cl
ja 0x43a58a
mov ebx, ebx
jbe 0x414f1f
mov ecx, 0x65860f39
push esi
add al, byte [eax]
jbe 0x43a58a
fldenv [edi + eax*8 - 0x7b]
xor al, 0xff
invalid
mov dl, byte [ebp - 0x1d]
xor edi, 0x23090905
jb 0x41b3c7
push edi
dec dl
push 0x36
push 0x465711
xchg dl, dh
xchg dh, dl
mov byte [ebp - 0x1d], dl
call fcn.00424333
mov al, byte [ebp - 0x1d]
and bp, bp
add esp, 0x14
test al, al
jb 0x41b3d3
je 0x416c66
xchg cx, dx
xchg dx, cx
jne 0x416c55
into
xor al, 0x33
pushfd
dec ebx
pop edi
pop esi
xor eax, eax
jb 0x41a5dc
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 8]
push 0x100
push 0x465711
push edi
call int.0043d1e6
mov eax, dword [ebp - 0x14]
jmp 0x416c7d
push eax
push edi
call fcn.00419cf8
mov ecx, dword [ebp - 8]
push ecx
push 0x465711
call fcn.00429ada
add esp, 0x1c
test esi, esi
jb 0x41a5fb
jle 0x416ce0
mov bx, bx
jg 0x416cb2
cpuid
mov ecx, 0xfe8766c3
xchg si, di
xchg di, si
push esi
push 0x465811
push edi
call fcn.00430ccc
add esp, 4
shl al, 0x20
jmp 0x416ccf
push eax
call int.0043d1e6
add esp, 0xc
shr ax, 0x40
pop edi
mov ebx, ebx
mov eax, ebx
pop esi
shl ebp, 0x20
pop ebx
mov esp, ebp
pop ebp
ret
lea ebp, [ebp]
dec ebx
add dword [esi - 0x6e], esp
xchg dx, ax
mov ch, ch
mov ebx, dword [ebp + 0x38]
mov ah, ah
js 0x407cfd
jns 0x4189fa
mov dword [ecx - 0x76f03d2c], ebx
std
invalid
jns 0x407cfd
invalid
xchg esi, eax
sub cl, byte [edi]
xor byte [ebp - 5], 0xff
invalid
fcmovb st(0), st(4)
jmp 0x43a0d2
mov esi, 0xdd876626
xchg bx, bp
lea esi, [esi + 4]
js 0x42e61f
jns 0x41a5f5
mov dword [edx + 0x66], edx
rcr dword [eax + 0x24890fac], 1
inc eax
add dword [eax], eax
jns 0x42e61f
xor eax, 0xf810f2e
add byte [eax], al
add byte [eax + 3], dh
sbb eax, 0x768dc4d0
or bh, bh
push es
call 0xf8294d4
xor dword [esi + 0x24], 0x270ffff
add al, 0x92
jo 0x40ca8e
mov ecx, dword [esi + 4]
mov ebx, dword [esi + 8]
lea esi, [esi + 0xc]
jno 0x41c48a
jo 0x41a638
dec ecx
rcl byte [ebp + esi + 0x4c800f0c]
push ds
add byte [eax], al
jo 0x41c48a
sar dword [esi], cl
mov edi, edi
shr ebp, 0x40
call fcn.0041a5c2
fcom dword [eax - 0x60]
inc ebx
add byte [eax], al
inc ecx
add byte [eax + 0x34], al
add byte [ecx], al
add byte [eax], al
add al, 0
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax + eax], dh
add byte [eax], al
hlt
lea esi, [esi + 8]
inc byte [ebx]
xchg bp, ax
xchg bp, ax
js 0x40f013
shl di, 0x20
jns 0x41c46f
fisub word [esi + 0x6d]
jns 0x40f013
xor eax, 0xfc40c372
push ebp
mov ebp, esp
jmp 0x41c47e
push esi
jmp 0x41c481
push edi
call fcn.00406e54
ficom dword [eax + 0x66]
rcl dword [ebx], cl
rcl word [ebx], cl
jmp dword [esi]
mov ebx, dword [ebp + 0x38]
js 0x42650e
lea esp, [esp + 4]
je 0x435dcb
jne 0x4213fe
jae 0x421394
and al, 0x5f
pop edi
pop esi
xor eax, eax
jb 0x4052ca
pop ebx
mov eax, eax
call fcn.00435dbd
add eax, 0xf006a3f
xor eax, 0x66fffe37
mov ebp, ebp
jo 0x421422
dec ebp
into
mov ebp, 0x37e2800f
invalid
jo 0x404c0a
fnstcw word [eax + ebp*8 - 0x7a]
inc esi
add dword [eax], eax
js 0x42658f
xchg ch, al
xchg al, ch
shl si, 0x20
shl dh, 0x20
mov ebx, dword [ebp + 0x38]
mov edx, dword [esi + 4]
mov cl, byte [ebp + 0x28]
lea esi, [esi + 8]
mov di, di
push 0x42dd1b
ret
xor al, 0xb0
xchg ecx, esi
pop ebp
ret
pop ebx
mov esp, ebp
mov si, si
pop ebp
ret
push 0xffdf
mov bh, bh
push 0x4656fd
call fcn.0041a01a
jno 0x416c08
jo 0x427433
leave
xchg ebp, eax
test dword [edi], 0xfef7cf80
invalid
jo 0x416c08
fiadd dword [0xcab1e8]
add byte [ecx + 0x4c4], al
add byte [eax + eax*8 + 0x5fd9820f], al
invalid
in eax, 0x20
je 0x421117
xor eax, 0x86f88640
invalid
lea ebp, [ebp]
je 0x427417
jne 0x42abad
stosd dword es:[edi], eax
adc bl, byte [edi + 0x66]
mov esi, esi
pop edi
mov si, si
pop esi
and bp, bp
stc
xor eax, eax
jb 0x41274c
jmp 0x42740d
mov dl, 0xfa
xchg bx, dx
xchg dx, bx
shr cx, 0x40
mov edi, edi
shr eax, 0x40
mov ebx, dword [ebp + 0x38]
mov edx, dword [esi + 4]
mov cl, byte [ebp + 0x28]
lea esi, [esi + 8]
shl byte [ebx + edx], cl
jmp dword [esi]
and eax, 0xce880f5e
invalid
fmul dword [edx + 0x106015ff]
inc esi
add byte [edi + 0x5b], bl
add esp, 4
stc
test al, al
jb 0x418e62
jne 0x42c9f7
je 0x42c9d5
cmp al, 0xe0
or ebx, esp
stosb byte es:[edi], al
cmpsd dword [esi], dword es:[edi]
jmp 0x42c9d6
push esi
call fcn.0042d9d4
push ecx
pop ecx
add esp, 4
test al, 2
jb 0x418e6a
jne 0x42e00d
je 0x42c9f7
inc ebp
lds ebp, [edx + 4]
push 4
push esi
call fcn.00443cfe
add esp, 8
mov ax, 4
shr cx, 0x40
pop edi
shr ebp, 0x40
pop esi
pop ebx
shl bl, 0x20
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 4]
test ebx, ebx
jb 0x4189e1
jne 0x42ca94
je 0x42ca32
lodsb al, byte [esi]
invalid
push esi
call fcn.00433ef1
add esp, 4
test al, al
jb 0x418a00
jne 0x42ca94
je 0x42ca52
nop
cpuid
ret
push esi
call fcn.0042d9d4
add esp, 4
test al, 1
jb 0x407d0e
xchg ah, ch
xchg ch, ah
jne 0x42ca94
je 0x42ca76
sub ch, ch
jmp 0x42ca88
mov eax, dword [ebp - 0x44]
push eax
call fcn.00448fb0
push esi
call fcn.004463bd
add esp, 8
pop edi
pop esi
add byte [eax], al
add byte [edi + 0x5e], bl
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x44]
push ecx
call edi
add esp, 4
jno 0x413f80
shr si, 0x40
jo 0x42cab1
nop
cpuid
ret
jo 0x413f80
shl ah, 0x20
mov ebx, dword [esi + 8]
lea esi, [esi + 0xc]
ror word [ebx], cl
jmp dword [esi]
add esp, 4
test ax, ax
jb 0x43af8a
shl bh, 0x20
je 0x43d85d
shr ch, 0x40
mov cx, cx
jne 0x42d024
cdq
sal byte [ecx + 0x4a], 1
out 0xf, eax
xchg dword [ecx + 0x76fffddf], esi
push es
ja 0x40afdb
jbe 0x42d032
aas
mov dl, 0x9c
ror byte [ebx - 0x63], 0xf
xchg byte [ebx - 0x27000221], ah
xchg esi, eax
jbe 0x40afdb
fcom dword [esi - 0x3dbbb71]
or ax, 0x5d8b
cmp eax, 0xaf890f5e
invalid
stc
jmp dword [esi]
and eax, 0xf4458b58
mov ecx, eax
dec eax
call fcn.004201b0
and eax, 0x6a0f8b2a
add byte [esi - 0x77], ah
in eax, dx
push ecx
call fcn.00443cfe
mov edx, dword [edi]
push 0x40
push edx
jmp 0x44140e
test eax, eax
jb 0x42dd35
jne 0x41227c
je 0x4339ee
in eax, dx
xor bl, ah
jmp 0xf743258b
jmp 0x4339ef
push esi
xchg bp, si
xchg si, bp
call fcn.00433ef1
stc
add esp, 4
sub dl, 0
test al, al
jb 0x42dd3d
shl di, 0x20
shl bp, 0x20
jne 0x41227c
je 0x433a24
jno 0x433a62
xchg ecx, eax
iretd
jmp 0x436f96
add byte [ecx + 0x3a], ch
inc ebx
add byte [eax + 0x4146b028], dh
add byte [eax + eax], cl
add byte [eax], al
and al, 0
add byte [eax], al
stosb byte es:[edi], al
pop esp
inc edx
add byte [eax + eax], bh
add byte [eax], al
mov al, byte [0x4326]
inc ecx
add byte [eax], al
and al, 0
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], ah
sub byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [eax], dh
add byte [eax], al
hlt
mov cx, word [ebp - 2]
cmp cx, word [0x4759b1]
je 0x435df8
jne 0x435de4
int3
pop edi
pop esi
xor eax, eax
jb 0x4052d8
pop ebx
shr dl, 0x40
mov esp, ebp
pop ebp
ret
mov dl, byte [ebp - 0x1e]
mov al, byte [ebp - 0x1f]
or dl, al
jb 0x4052e1
mov dword [0x47575c], ebx
mov dh, dh
je 0x435e29
jne 0x435e18
pop edx
clc
pop edi
pop esi
xor eax, eax
jb 0x412744
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x20], 0x7f
jno 0x42aba0
jo 0x435e37
xchg eax, esp
jo 0x42aba0
fldenv [edx]
push esi
call fcn.0042d9d4
or ch, ch
add esp, 4
test al, 2
jb 0x414ef7
je 0x41227c
jne 0x436fb9
das
adc eax, 0x8bad97f5
dec ebp
mov esp, 0xede8f1ff
pop ds
add dword [eax], eax
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.00448fb0
jmp 0x414424
jmp 0x439f6f
push eax
jmp 0x439f72
push esi
mov byte [esi + 0xba], cl
xchg dh, cl
mov ax, ax
xchg cl, dh
shl si, 0x20
call fcn.00437694
add eax, 0xf1f304b
sbb ch, 0xbe
invalid
test ebp, 0xd759baa9
jmp dword [esi]
aaa
scasd eax, dword es:[edi]
push 0x42ee8a
ret
xor al, 0x9e
push esp
sbb eax, dword [esi - 0x77227915]
leave
mov ebx, dword [ebp + 0x38]
mov edx, dword [esi + 4]
push ebp
pop ebp
mov dl, dl
mov cl, byte [ebp + 0x28]
lea esi, [esi + 8]
shl ecx, 0x20
shr word [ebx + edx], cl
shl esi, 0x20
mov dh, dh
jmp dword [esi]
push 0x8bff8871
pop ebp
cmp byte [edx + 0x5a], dl
mov edx, dword [esi + 4]
shr ecx, 0x40
mov cl, byte [ebp + 0x28]
js 0x42528f
push ecx
pop ecx
jns 0x43afaa
cpuid
nop
ret
jns 0x42528f
shl bh, 0x20
mov byte [esi + 0xbb], 0
xchg cx, ax
xchg cx, ax
push 0x43ff16
ret
add byte [ebx], cl
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
rcl dword [edx + 0x43], cl
add byte [0x28000000], al
add byte [eax], al
add byte [ebx + esi], bl
inc esp
add ch, dl
and eax, 0xcaec0043
inc ecx
add byte [eax - 0xdffbc18], al
xchg ecx, eax
in al, dx
retf 0x41
push esi
mov dl, dl
call fcn.00443cfe
add esp, 8
pop edi
pop esi
pop ebx
shl ch, 0x20
mov esp, ebp
pop ebp
ret
xchg edi, edx
xchg edx, edi
mov edi, dword [ebx*4 + 0x475ee1]
xor edx, edx
jb 0x414f1d
mov ax, word [edi]
add ch, 0
cmp ax, 0xffff
je 0x43e91c
jne 0x43e8d0
sub dl, byte [ecx - 0x2d]
jnp 0x43e859
ror dword [ecx + 0x453b66f9], cl
or byte [edi], cl
test byte [ecx], ch
add byte [eax], al
add byte [ebp + 2], dh
mov ecx, edi
cmp ax, word [ebp + 8]
je 0x43e905
jne 0x43e8e0
add edi, dword [edx]
mov ax, word [ecx + 8]
add ecx, 8
inc edx
test bh, 0xe7
cmp ax, 0xffff
jne 0x43e8d2
dec dword [edi]
test edx, ebx
invalid
mov edx, edx
je 0x43e8fe
jnp 0x43e8f1
jmp 0x43e91c
mov edi, dword [edi + edx*8 + 4]
clc
test edi, edi
jb 0x414f25
jne 0x42ca1c
je 0x43e91c
push ss
jp 0x43e8be
mov eax, dword [0x475bc1]
rcr dword [ebx + 0x47], 0
xor edx, edx
jb 0x43a58c
cmp ax, 0xffff
mov dl, dl
je 0x43e99f
jne 0x43e93d
and bl, byte [0x91c96244]
mov ecx, 0x475bc1
cmp ax, word [ebp + 8]
mov ebp, ebp
je 0x43e983
jne 0x43e956
loop 0x43e8e0
dec ebp
pop eax
dec ecx
mov ah, 0x66
mov eax, dword [ecx + 8]
mov ax, word [ecx + 8]
add ecx, 8
mov ebp, ebp
inc edx
cmp ax, 0xffff
jne 0x43e942
mov bp, bp
je 0x43e977
xor bl, byte [ebp - 0x1b]
int3
jmp 0x43e99f
mov edi, dword [edx*8 + 0x475bc5]
test edi, edi
jb 0x43a594
shr ecx, 0x40
jne 0x42ca1c
je 0x43e99f
mov esi, 0xfc458bd8
mov eax, dword [ebp - 4]
test eax, eax
jb 0x42ee9c
jne 0x42c9f7
je 0x43e9b7
lodsb al, byte [esi]
lock sbb byte [0x34e85606], cl
push ebp
invalid
push esi
call fcn.00433ef1
jno 0x42c9b8
jo 0x43e9c7
stc
mov ebx, 0xdfeb800f
jo 0x42c9b8
invalid
fldcw word [edx - 0xe76a73]
invalid
call fcn.0044042b
mov eax, dword [edi]
shr al, 0x40
push 1
push eax
shl di, 0x20
call fcn.004407e0
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
mov cl, cl
ret