Function at 0x41c643
Capabilities:
Authenticate hmac
Encode data using base64
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
pop dword [esp - 4]
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov bh, bh
jno 0x42c207
jo 0x41c65b
nop
cpuid
ret
jo 0x42c207
xor ecx, ecx
jb 0x42814f
xchg cl, dh
xchg dh, cl
ja 0x417391
jbe 0x426b8f
fbld tbyte [esi]
pushal
push ecx
push 0xfc860fea
jbe 0x417391
pop es
invalid
xor eax, 0x43c060a0
add byte [eax], al
inc ecx
add byte [eax + 0x24], al
add byte [ecx], al
add byte [eax], al
in al, dx
add ah, ch
add al, 0
add byte [eax], al
add dword [eax], eax
add byte [eax], al
inc ecx
add byte [eax], al
cmp al, 0
add byte [eax], al
mov ah, 0x53
inc ebx
add byte [edx - 0xffbc8a], ah
inc dword [eax]
add byte [eax + eax], bh
add byte [eax], al
loopne 0x426b92
inc ebx
add cl, al
pop esp
inc ebx
add byte [ebp + 0x79], dh
inc edx
add byte [eax + eax], bh
add byte [eax], al
sub byte [eax], al
add byte [eax], al
loopne 0x426ba6
inc ebx
add dl, cl
pop esp
inc ebx
add byte [edx - 0xa], ch
inc edx
add byte [eax + eax], bh
add byte [eax], al
nop
cmp al, 0x43
add byte [eax], al
add byte [eax], al
add byte [eax + eax], ah
add byte [eax], al
fisubr dword [esi]
inc ebx
add byte [esp + ebp*2], al
add al, 0x6c
inc edx
add byte [edx - 0x6c], ah
sbb dword [eax], edi
cmp ebx, edx
inc ebx
add cl, ch
or al, byte [ebp]
or byte [edx - 0x35ffbe38], 0x86
inc ecx
add byte [0x438f933f], ah
add byte [eax], al
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [esi + esi*2 + 0x240042], bl
add byte [eax], al
and al, 0
add byte [eax], al
loopne 0x426bfb
inc ebx
add byte [ebp - 0x6cffbd72], dh
in al, dx
inc ebx
add byte [eax], ah
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ecx], ah
mov dl, 0x43
add byte [eax], dh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add cl, cl
outsb dx, byte [esi]
inc esp
add byte [esi], al
insd dword es:[edi], dx
inc edx
add byte [ebx - 0x1d], ch
inc ebx
add byte [esp + ebp*2 + 0x42], ah
add dl, bh
inc ebp
jmp 0x43f48e3a
sub ah, 0x8b
push es
mov dh, dh
jmp 0x428156
push eax
xchg ch, ah
xchg ah, ch
jne 0x4155bd
shr edx, 0x40
je 0x42816b
mov ebx, 0xfc3a20f
test byte [esp + edx*8 - 2], cl
inc dword [edx - 0x76a4a144]
in al, dx
pop ebp
ret
je 0x4155bd
cmp byte [esi + ebx*2 + 0x5dec895b], 0xc3
sbb dword [eax], ebp
jb 0x440261
mov bh, bh
je 0x4433a4
jne 0x42c1c4
or al, 0xda
xchg ebp, eax
push 0xa
xchg cx, ax
xchg cx, ax
push esi
call fcn.0044d6be
add esp, 8
xor ax, ax
xor eax, eax
jb 0x42c832
shl ebx, 0x20
pop edi
pop esi
pop ebp
ret
lea esi, [esi + 0xc]
mov dword [ebx], eax
jne 0x44acda
je 0x42c219
scasd eax, dword es:[edi]
jp 0x42c1d7
scasd eax, dword es:[edi]
ror byte [edi], cl
test byte [ebx - 0x7dfffe16], bh
jb 0x42c1b1
je 0x44acda
inc esp
div dword [ebx + edi]
mov dword [ebp + 0x24], eax
xchg bx, bp
xchg bp, bx
mov ax, ax
mov dword [ebp + 0x2c], edx
jmp dword [esi]
stosd dword es:[edi], eax
jecxz 0x42c81e
clc
mov eax, 0x7825ffff
xchg bx, bp
and eax, 0xeb876678
xchg bp, bx
push 0x18
jmp 0x438ba2
push esi
call fcn.0044d6be
add bl, 0
add esp, 8
xor ax, ax
jb 0x42c839
pop edi
mov dh, dh
pop esi
push 0x418e14
ret
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp + 0x2c]
shr dl, 0x40
fiadd dword [ebx + 0x47]
and al, byte [edx]
sub al, 0
add byte [eax], al
and al, 0
add byte [eax], al
loopne 0x44023a
inc ebx
add byte [edi - 7], ah
inc ecx
add byte [eax - 0x40], ah
inc ebx
add byte [eax], al
popal
add byte [eax + 0x28], al
sub byte [eax], 0
add byte [eax], al
add byte [ecx], ah
add byte [eax], al
inc dword [eax]
add byte [eax], al
add byte [edx], dl
add byte [eax], al
add byte [edx], al
add byte [eax + eax], ch
add byte [eax], al
push cs
push ebx
inc ecx
add ch, bl
mov es, word [edx]
cmp al, 0
add byte [eax], al
cmp al, 0
add byte [eax], al
pop edx
xor al, 0x43
add byte [eax + eax], ch
add byte [eax], al
and al, 0
add byte [eax], al
loopne 0x44027e
inc ebx
add al, dl
retf 0x44
cmp dword [edi + 0x3c], 8
jae 0x426b75
jb 0x4433b5
pop ss
sbb eax, 0x57e4850f
invalid
jne 0x438b9f
je 0x4433c1
cpuid
inc edx
ret
je 0x438b9f
mov edx, dword [esi + 8]
mov eax, dword [ebp + eax]
shr bp, 0x40
lea esi, [esi + 0xc]
sub dword [ebx + edx], eax
shr edi, 0x40
jmp dword [esi]
jmp dword [esi]