Function at 0x458ae2
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
mov eax, ebx
sub eax, 0x5b
je 0x41bde0
sub eax, 1
je 0x41c3e6
sub eax, 1
je 0x45a25e
sub eax, 1
je 0x45a233
sub eax, 0x1d
je 0x4595e3
sub eax, 1
je 0x41bbca
invalid
cmp dword [ebp - 0x5c], 0
mov ecx, dword [ebp - 0xc]
mov edi, ecx
stc
mov word [ebp - 0x10c], bx
je 0x41b8cd
mov eax, 0xfc00
and ebx, eax
mov eax, 0xd800
cmp ebx, eax
je 0x45a284
push 2
pop esi
mov ebx, dword [ebp + 0x28]
mov dword [ebp - 0x28], edx
mov eax, dword [ebx + 0x20]
sub eax, dword [ebx + 0x10]
sar eax, 1
cmp dword [ebp - 0x5c], 0
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x2c]
je 0x41b93f
test cl, al
je 0x41b93f
movzx ecx, word [ebp - 0x10c]
mov edx, 0xfc00
mov eax, ecx
and eax, edx
mov edx, 0xd800
cmp eax, edx
je 0x45b521
mov eax, ecx
mov ecx, 0x80
add byte [eax], al
cdq
idiv ecx
movzx eax, byte [eax + 0x4bff40]
shl eax, 7
add eax, edx
ret 0x558b
clc
movzx eax, word [eax*2 + 0x4b1c40]
movzx eax, byte [eax*8 + 0x4af3f3]
test eax, eax
jne 0x41bdb6
mov eax, dword [ebp - 0x2c]
and eax, dword [ebp - 0xc]
push 0x1d
pop ecx
add eax, ecx
mov word [edx], ax
add edx, esi
xor eax, eax
mov dword [ebp - 8], edx
mov ecx, eax
test edi, edi
je 0x41b96c
mov ax, word [ebp + ecx*2 - 0x10c]
mov word [edx], ax
add edx, esi
inc ecx
cmp ecx, edi
jb 0x41b957
mov dword [ebp - 8], edx
mov ax, word [ebp - 0x10c]
push 0xd
pop ecx
cmp ax, cx
je 0x45b54d
push 0xa
pop ecx
cmp ax, cx
je 0x45b54d
mov ecx, dword [ebp - 0x34]
cmp ecx, 0xfffffffe
je 0x41c4f4
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x70], eax
cmp edi, dword [ebp - 0xc]
jne 0x45b582
movzx eax, word [edx - 2]
mov dword [ebp - 0x60], eax
mov eax, dword [ebx + 0x68]
or eax, ecx
mov dword [ebp - 0x54], eax
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 8]
push 2
pop eax
add esi, eax
mov dword [ebp - 4], esi
mov eax, dword [ebp - 0x50]
movzx ebx, word [esi]
mov dword [ebp - 0x10], ebx
test ebx, ebx
je 0x41bc31
cmp dword [ebp + 0x2c], 0
mov edi, dword [ebp + 0x28]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x10]
lea ecx, [eax + ecx*2]
je 0x41bbbc
lea eax, [ecx - 0xc8]
cmp edx, eax
ja 0x45b6e4
mov eax, dword [ebp - 0xc0]
cmp edx, eax
jb 0x4587c9
mov ecx, edx
sub ecx, eax
mov eax, dword [ebp + 0x2c]
sar ecx, 1
mov edx, dword [eax]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x45b80b
lea eax, [edx + ecx]
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp - 0x28]
mov dword [ecx], eax
test edx, edx
je 0x41bc23
mov ecx, dword [ebp - 0xb0]
cmp edx, ecx
jbe 0x41ba85
mov esi, dword [ebp - 8]
mov eax, esi
mov edx, dword [ebp - 8]
mov dword [ebp - 0xc0], edx
test ebx, ebx
je 0x41baaf
push 0x5c
pop ecx
cmp ebx, ecx
je 0x41c07b
cmp dword [ebp - 0x64], 0
jne 0x4587e8
cmp ebx, ecx
je 0x41c090
mov edi, dword [ebp - 0x2c]
and edi, 8
mov dword [ebp - 0x30], edi
jne 0x458855
push 0x28
pop eax
cmp ebx, eax
je 0x41bc3e
push 0x2a
pop eax
cmp ebx, eax
je 0x41c0a2
push 0x2b
pop eax
cmp ebx, eax
je 0x41c0a2
push 0x3f
pop eax
cmp ebx, eax
je 0x41c0a2
push 0x7b
pop eax
cmp ebx, eax
je 0x45899d
mov edx, dword [ebp - 0x88]
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x50]
test edx, edx
jne 0x4589b5
test dword [ebp - 0x2c], 0x4000
jne 0x4589f6
into
add eax, dword [eax]
mov edx, dword [ebp - 8]
push 0x3f
pop eax
cmp ebx, eax
ja 0x41b86f
je 0x4595d7
mov eax, ebx
xor ecx, ecx
sub eax, ecx
je 0x41bbca
sub eax, 0x24
je 0x4595c2
sub eax, 4
je 0x41bc5d
sub eax, 1
je 0x41bbca
sub eax, 1
je 0x41c0ad
sub eax, 1
je 0x458a44
sub eax, 3
jne 0x41b8a7
mov ecx, dword [ebp - 0x34]
cmp ecx, 0xfffffffe
jne 0x41bb77
or ecx, 0xffffffff
mov dword [ebp - 0x34], ecx
mov ebx, dword [ebp + 0x28]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x70], eax
mov eax, dword [ebx + 0x20]
sub eax, dword [ebx + 0x10]
sar eax, 1
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x2c]
shr eax, 2
and eax, dword [ebp - 0xc]
mov dword [ebp - 0x68], ecx
or eax, 0xc
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x28], edx
mov word [edx], ax
push 2
pop eax
add edx, eax
mov dword [ebp - 8], edx
jmp 0x436985
cmp dword [edi + 0x20], ecx
jbe 0x41ba8e
jmp fcn.0047687b
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x6c]
mov dword [eax], ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x34]
mov dword [eax], ecx
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x60]
mov dword [eax], ecx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x54]
mov dword [eax], ecx
mov eax, dword [ebp - 0x13c]
mov dword [eax], edx
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov eax, dword [ebp + 0x2c]
test eax, eax
je 0x41bc1b
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
leave
ret
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 8], edx
jmp 0x436ab5
test eax, eax
je 0x41b9ec
jmp 0x4737ee
push 0x3f
pop eax
cmp word [esi + 2], ax
jne 0x41baf5
push 0x23
pop eax
cmp word [esi + 4], ax
jne 0x41baf5
jmp 0x4739b1
add esi, 2
push 0x2a
mov dword [ebp - 4], esi
pop eax
movzx edx, word [esi]
cmp dx, ax
je 0x458a4c
mov eax, dword [ebp - 0x2c]
mov ecx, 0x85
mov dword [ebp - 0x24], ecx
xor edi, edi
mov ecx, dword [ebp + 0x28]
mov ebx, edi
mov dword [ebp - 0x3c], eax
push 0x3f
mov dword [ebp - 0x18], ebx
mov eax, dword [ecx + 0x20]
sub eax, dword [ecx + 0x10]
sar eax, 1
mov dword [ebp - 0x40], eax
pop eax
mov dword [ebp - 0x30], edi
cmp dx, ax
jne 0x41c23d
add esi, 2
mov dword [ebp - 4], esi
push 0x3a
pop edx
movzx ebx, word [esi]
mov eax, ebx
cmp eax, edx
jbe 0x458ccd
mov edx, esi
mov edi, ebx
mov dword [ebp - 0x1c], edx
sub eax, 0x3c
je 0x4593a9
sub eax, 1
je 0x45926b
sub eax, 1
je 0x45939f
sub eax, 5
je 0x4592f5
push 0xd
pop ebx
sub eax, ebx
je 0x4592ac
push 2
pop ebx
sub eax, ebx
je 0x45928f
push 0x2a
pop ebx
sub eax, ebx
je 0x45925b
xor ecx, ecx
push 0x29
mov eax, ecx
mov dword [ebp - 0x30], ecx
pop ebx
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x30]
cmp di, bx
je 0x45a527
mov ebx, edx
movzx eax, di
cmp di, word [ebp - 0x120]
je 0x41bd63
lea esi, [edx + 2]
movzx edi, di
push 0x69
pop edx
mov dword [ebp - 4], esi
cmp ax, dx
ja 0x45a4f7
jne 0x45a4ac
mov eax, dword [ebp - 0xc]
or dword [ecx], eax
movzx eax, word [esi]
mov ebx, esi
push 0x29
mov dword [ebp - 0x1c], ebx
mov edx, ebx
pop ebx
mov edi, eax
cmp ax, bx
jne 0x41bd1f
mov ebx, esi
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
or ecx, dword [ebp - 0x2c]
not eax
and ecx, eax
push 0x29
pop eax
mov dword [ebp - 0x3c], ecx
cmp word [esi], ax
jne 0x459202
mov edx, dword [ebp - 0xc]
mov eax, ecx
shr eax, 9
and eax, edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0xf8], eax
xor eax, edx
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x124]
mov dword [eax], ecx
xor eax, eax
mov dword [ebp - 0x28], eax
mov eax, ecx
and eax, edx
mov dword [ebp - 0x94], eax
jmp 0x436b82
push 0x10
pop ecx
mov word [edx], cx
add edx, esi
push 9
pop ecx
mov word [edx], cx
add edx, esi
mov word [edx], ax
add edx, esi
cmp dword [ebp - 0x34], 0xfffffffe
mov dword [ebp - 8], edx
je 0x45b540
mov esi, dword [ebp - 4]
jmp 0x436baf
push 6
lea ecx, [esi + 2]
mov edx, str._:_:__
call 0x4377f4
pop ecx
test eax, eax
je 0x45aba8
mov ecx, dword [ebp - 4]
mov edx, 0x49cc70
push 6
lea ecx, [ecx + 2]
call fcn.0043780f
pop ecx
test eax, eax
je 0x45abaf
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 8]
push 0x3a
mov eax, dword [edx + 0x20]
sub eax, dword [edx + 0x10]
sar eax, 1
mov dword [ebp - 0x40], eax
movzx eax, word [ecx + 2]
pop edi
mov dword [ebp - 0x28], ebx
cmp ax, di
je 0x45abc8
push 0x2e
pop edx
cmp ax, dx
je 0x45abc8
push 0x3d
pop edx
cmp ax, dx
je 0x45abc8
xor esi, esi
push 0x5c
mov eax, esi
pop edx
mov dword [ebp - 0x10], eax
add ecx, 2
mov dword [ebp - 4], ecx
movzx edi, word [ecx]
mov dword [ebp - 0x14], edi
cmp edi, edx
je 0x45abe0
test eax, eax
jne 0x41be7d
cmp edi, 0x5e
je 0x45ac1a
push 0x5d
pop ecx
cmp edi, ecx
je 0x45ac22
lea eax, [ebx + 6]
mov dword [ebp - 0x38], esi
push 0x20
mov dword [ebp - 0x18], eax
mov ebx, esi
mov dword [ebp - 0x20], eax
pop eax
push eax
lea eax, [ebp - 0xe0]
mov dword [ebp - 0x70], esi
push esi
push eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x3c], esi
call fcn.0043d5ef
mov esi, dword [ebp - 4]
add esp, 0xc
test edi, edi
je 0x45b428
mov edx, ebx
cmp dword [ebp - 0x5c], 0
mov dword [ebp - 0x80], ebx
mov ebx, edx
mov dword [ebp - 0x30], edx
je 0x41bee5
mov eax, edi
mov ecx, 0xfc00
and eax, ecx
cmp eax, 0xd800
je 0x45ac6a
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x20], ecx
ja 0x45aca6
cmp dword [ebp + 0x2c], 0
je 0x41bf02
mov eax, dword [ebp - 0x20]
cmp eax, ecx
cmp dword [ebp - 0x64], 0
jne 0x45acc5
cmp edi, 0x5b
je 0x45aced
push 0x5c
pop ecx
cmp edi, ecx
je 0x45af61
xor edx, edx
mov ecx, dword [ebp + 0x28]
mov ebx, dword [ebp - 0x2c]
push 0x5c
pop eax
cmp word [esi + 2], ax
je 0x45b231
push 0xd
pop eax
mov edx, esi
cmp edi, eax
je 0x45b25a
push 0xa
pop eax
cmp edi, eax
je 0x45b25a
mov ecx, dword [ebp - 0x64]
test ecx, ecx
jne 0x41bf61
push 0x2d
pop eax
cmp word [esi + 2], ax
je 0x45b266
mov eax, dword [ebp - 0x80]
mov ebx, eax
push 2
pop edx
mov dword [ebp - 0x1c], eax
cmp eax, edx
jl 0x41c070
test ecx, ecx
jne 0x41bf88
cmp dword [ebp - 0x3c], ecx
jne 0x41bf88
mov ecx, dword [ebp - 0xc]
cmp ebx, ecx
je 0x41c4e2
push edi
push edi
push dword [ebp + 0x28]
push dword [ebp - 0x2c]
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0xe0]
call fcn.0043790e
mov edx, eax
add esp, 0x10
add edx, dword [ebp - 0x30]
mov esi, dword [ebp - 4]
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x50]
push 2
pop edi
lea ebx, [eax + 1]
mov dword [ebp - 0x1c], ebx
jmp 0x4373eb
push 0x45
pop ecx
cmp word [esi + 2], cx
push 0x5c
pop ecx
jne 0x41ba9d
jmp fcn.00473c5f
push 0x51
pop ecx
cmp word [esi + 2], cx
jne 0x41baaf
jmp fcn.00473c78
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x50]
jmp 0x436fb3
or eax, 0xffffffff
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x45b7d4
test ecx, ecx
jne 0x41c0e3
mov ebx, dword [ebp - 0x7c]
mov dword [ebp - 0x6c], ebx
mov ebx, dword [ebp - 0x68]
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 0x84]
mov dword [ebp - 0x60], ebx
mov ebx, dword [ebp - 0x70]
mov dword [ebp - 0x54], ebx
sub ecx, eax
mov dword [ebp - 0x48], edx
neg ecx
push 2
sbb ecx, ecx
xor ebx, ebx
pop eax
and ecx, eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x80], ecx
test edi, edi
jne 0x45961a
push 0x23
pop eax
push 0x28
pop ecx
push 0x3f
pop edx
cmp word [esi + 2], cx
cmp dword [esi + 2], ecx
je 0x459716
lea ecx, [esi + 2]
movzx eax, word [ecx]
push 0x2b
pop edi
cmp ax, di
je 0x45976b
invalid
invalid
mov dword [ebp - 0x30], edi
cmp word [esi], dx
jne 0x458b39
lea edx, [ecx + 2]
mov esi, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 4], esi
mov ebx, edx
movzx eax, word [esi]
test ax, ax
je 0x458b25
push 0x29
mov ecx, eax
pop edi
mov ebx, edx
cmp cx, di
je 0x458b1f
lea esi, [edx + 2]
mov dword [ebp - 4], esi
mov edx, esi
movzx eax, word [esi]
mov ebx, esi
fimul word [ebx - 0x3f7a9938]
jne 0x458b04
mov edi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x14]
sub ebx, edx
mov eax, 0xffff
sar ebx, 1
cmp ebx, eax
ja 0x45b711
mov eax, dword [ebp - 0x38]
push 0x29
pop ecx
cmp word [esi], cx
jne 0x458cc6
xor ecx, ecx
mov esi, 0x4c4df0
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x3c]
cmp edi, dword [esi]
jne 0x458b68
mov edx, ecx
mov ecx, eax
push edi
call fcn.00474565
pop ecx
test eax, eax
je 0x458b85
mov ecx, dword [ebp - 0x3c]
inc ecx
add ecx, dword [esi]
add esi, 0xc
inc dword [ebp - 0x10]
mov dword [ebp - 0x3c], ecx
cmp esi, 0x4c4e5c
jge 0x458cb7
mov eax, dword [ebp - 0x38]
jmp 0x458b52
imul eax, dword [ebp - 0x10], 0xc
mov edi, 0x9e
mov ecx, dword [eax + 0x4c4df4]
cmp ecx, edi
jne 0x458c09
test ebx, ebx
jne 0x45b72d
mov esi, dword [ebp + 0x28]
mov eax, dword [ebp - 0xc]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x6c], eax
test ecx, ecx
test ebx, ebx
jne 0x458c20
test ecx, ecx
js 0x45b71f
mov ebx, dword [ebp - 8]
movzx eax, cx
mov word [ebx], ax
jmp 0x458c78
xor ecx, ecx
cmp dword [eax + 0x4c4df8], ecx
jl 0x45b72d
mov ecx, dword [ebp - 8]
movzx eax, word [eax + 0x4c4df8]
mov edx, dword [ebp + 0x2c]
mov edi, eax
push 2
mov word [ecx], ax
pop eax
add ecx, eax
lea eax, [ecx + 2]
test edx, edx
je 0x458c57
add dword [edx], ebx
xor edx, edx
mov word [ecx], dx
mov ebx, eax
jmp 0x458c71
lea esi, [ebx + ebx]
mov word [ecx], bx
push esi
push dword [ebp - 0x14]
mov ebx, eax
mov dword [ebp - 8], eax
push ebx
call fcn.00478e88
add esp, 0xc
add ebx, esi
xor eax, eax
mov word [ebx], ax
mov eax, edi
mov esi, dword [ebp + 0x28]
add ebx, 2
movzx eax, ax
mov edx, 0x96
mov dword [ebp - 8], ebx
mov ecx, ebx
cmp ax, dx
jb 0x458cb7
add edx, 3
mov dword [ebp - 8], ecx
cmp ax, dx
jbe 0x458cb1
mov edx, 0x9b
cmp ax, dx
ja 0x458cb7
or dword [esi + 0x64], 0x1000
mov dword [ebp - 8], ecx
jmp 0x458cb7
mov eax, dword [ebp - 0xc]
mov dword [esi + 0x70], eax
mov esi, dword [ebp - 4]
push 9
pop eax
cmp dword [ebp - 0x10], eax
jl 0x41b9d0
push 0x3c
jmp 0x4b3958
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x4b
jmp 0x4b63d9
invalid
inc ebp