Function at 0x10045b7b
Capabilities:
Authenticate hmac
Encrypt data using aes mixcolumns step
Resolve function by parsing pe exports

Disassembly:
test ecx, 0x1000
jb 0x1005bf49
mov esi, esi
jne 0x10030773
je 0x10027979
aas
sbb edi, dword [edx + 0x47]
shr bh, 0x40
mov ax, ax
jmp fcn.1004dbd9
mov byte [0xc0896642], al
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov eax, dword [ebp + eax]
lea esi, [esi + 0xc]
shr dl, 0x40
sbb dword [ebx], eax
jmp dword [esi]
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
push esi
mov al, byte [0x20b51003]
add dl, byte [eax]
and eax, 0x1fb8032
cmp bl, 1
shr ebp, 0x40
mov byte [esi + 0xba], bl
js 0x1002eb41
shl si, 0x20
jns 0x1002b8ef
pop esi
invalid
jns 0x1002eb41
xor byte [eax], 0x8d
and al, 4
mov eax, edx
test ah, 0x19
jne 0x1005d29f
sbb dword [ebx], eax
add byte [esi + eax + 0x71], dh
stc
je 0x1002b90e
jno 0x1002b903
popal
aam 0xf3
jno 0x1002b91e
je 0x1005d29f
test byte [ebx - 0x25fffce7], cl
wait
add esi, 8
ficomp dword [ebx + 0x8c681]
add byte [eax], al
shl eax, cl
add ebx, eax
test ecx, 0x80000000
jb 0x100384fc
jne 0x10024a33
je 0x1002b939
cmpsb byte [esi], byte es:[edi]
cld
jecxz 0x1002b8c4
xchg esp, eax
mov ecx, dword [esi]
add esi, 4
js 0x1002795f
mov ax, ax
jns 0x1002b951
add ecx, edi
cmp dword [ebx], esp
test byte [edi], 0x89
or al, al
invalid
jns 0x1002795f
mov eax, dword [ebp - 4]
push eax
mov byte [esi + 0xbb], al
mov ax, ax
mov word [esi + 0xbc], di
jmp fcn.1003725a
add ecx, 0
xor edx, edx
jb 0x1004f020
mov dl, byte [edi]
cmp cx, cx
cmp edx, eax
jne 0x10030988
je 0x1003092e
dec ebp
aaa
salc
popal
or cl, byte [ebx + 0x458bf04d]
hlt
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
inc eax
xchg edi, ebx
xchg ebx, edi
lea edx, [edi + ecx]
cmp edx, eax
xchg cl, dl
xchg dl, cl
ja 0x100532f9
jbe 0x1003094d
loopne 0x10030958
push edx
push 0x2b
push str.End_HL_RUS_License_________________________
push edi
call fcn.1004bc79
add dword [eax], eax
add esp, 0xc
test al, al
jb 0x10049aac
je 0x10030988
shl dh, 0x20
jne 0x10030978
add eax, 0x646cac54
fadd qword [eax + 0xf0a2b7f]
push esp
lodsb al, byte [esi]
insb byte es:[edi], dx
fadd qword fs:[eax + 0xf0a2b7f]
cmp byte [edi + 0x2b], 0xa
je 0x100532bb
test byte [ecx], bh
sub dword [edx], eax
add byte [ecx + 0x59], dl
push ecx
pop ecx
jne 0x10030988
sbb al, 0xaa
mov eax, dword [ebp - 0x18]
inc esi
inc edi
cmp esi, eax
jb 0x100402be
jae 0x1003099c
cmp dl, ch
scasb al, byte es:[edi]
add dl, byte [ecx + 0xf]
or dword [ecx + ebp], 0x2700002
jno 0x100532ae
jo 0x100309a6
test eax, 0x2800f3e
sub dword [edx], eax
add byte [edi + esi*4], dh
jo 0x100532ae
xor al, 0xb7
shl edx, 6
ja 0x10038c11
lea ecx, [ecx]
jbe 0x100309c0
and dl, byte [eax]
jne 0x10030972
popal
jbe 0x10038c11
sbb byte [ebx + 0x1c], 0x4a
add dl, byte [eax]
add byte [ecx], al
or byte [eax], 0
add byte [eax], al
add dword [eax], eax
add byte [eax + eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], cl
add byte [eax], al
or ch, byte [ebp - 0x143feffd]
add eax, 0x32d6b10
adc byte [eax + eax], cl
add byte [ebp + 0x38100250], bl
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [ebp + 0x48100250], bl
add byte [eax], al
add byte [eax + eax], cl
add byte [edi + 0x81002d5], al
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
sbb al, 0x4a
add dl, byte [eax]
add byte [ecx], ah
cmp byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [edx], bh
adc al, byte [eax]
add byte [eax], al
inc edx
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
and byte [eax + 0x6dac1005], ch
add eax, 0x4410
add byte [eax], cl
add byte [eax], al
salc
inc eax
add dl, byte [eax]
push esi
or al, byte [ebx]
adc byte [edx - 0x62], bh
salc
inc eax
add dl, byte [eax]
mov esi, 0x351002b8
xchg dword [edi], ecx
mov byte [eax - 0x72ffff2c], ch
aas
jns 0x10030a6d
jbe 0x10030a1c
int 0xf
mov dword [ebx - 0x25ffff2c], ebx
push 0xffeb1e6a
invalid
jns 0x1003df0e
fisubr dword [eax + 0x6a]
push ds
jmp 0x10030a78
push eax
call fcn.1003c459
add esp, 8
pop edi
pop esi
pop ebx
shr bp, 0x40
shr al, 0x40
mov esp, ebp
pop ebp
ret
mov esp, 0x14870f1f
cmp al, byte [edx]
add byte [esi + 6], dh
add bh, byte [ecx + 0xe]
sbb dword [esi + esi*8 + 0x3a06860f], eax
add al, byte [eax]
js 0x10039fd2
shr esi, 0x40
jns 0x10038c20
iretd
jns 0x10039fd2
xor al, 0x17
shr ebp, 0x40
shr eax, 0xa
push 0x10031ec3
js 0x10053e92
jmp dword [esi]
movsx eax, byte [0x1008ed8f]
stc
or ebx, ebx
jae 0x100402cc
or eax, 0x3a830f28
push es
invalid
jae 0x1003090c
xor eax, 0x8458962
lea esp, [esp + 4]
push ecx
pop ecx
mov cl, byte [ebp + 0xc]
mov dx, word [ebp + 0x10]
shl di, 0x20
push eax
shl dh, 0x20
push esi
mov byte [esi + 0xba], cl
mov dx, dx
mov byte [esi + 0xbb], 0
xchg al, ch
xchg ch, al
mov word [esi + 0xbc], dx
xchg ecx, ebp
xchg dh, bh
push ebx
mov bl, 0x61
mov bx, dx
pop ebx
mov cx, cx
xchg bh, dh
xchg ebp, ecx
call fcn.10046168
mov al, byte [ebp + 0xb]
cmp bx, bx
cmc
add esp, 0x30
test ebx, 0xe7f446a9
js 0x1002b8d4
jns 0x100425fe
dec edx
call 0xe08d354a
xchg edx, eax
invalid
jns 0x1002b8d4
fcomp st(7)
je 0x1002dced
jne 0x10043e48
inc eax
aad 0x25
cmp bl, byte [esi + 0x68]
cmpsb byte [esi], byte es:[edi]
fadd qword [edx]
adc bl, al
fidivr dword [ecx + 0x1d]
or eax, 0x401004
add byte [eax], al
inc eax
add byte [eax], al
add byte [ebx + 0x2d], ch
add edx, dword [eax]
push eax
add byte [eax], al
add byte [edx + ecx*2], bl
add dl, byte [eax]
add byte [ecx], ah
add byte [eax], 0
add byte [eax], al
and dword [eax], eax
add byte [edx], bh
adc al, byte [eax]
add byte [eax], al
inc edx
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
and byte [eax - 0x7a8feffb], ch
add edx, dword [eax]
add dword [eax], eax
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
stosd dword es:[edi], eax
add eax, 0x550b010
adc bl, ch
pop ds
add eax, 0x43eaa10
adc bh, ah
sar edi, 1
ljmp 0x1002
push 0x1002dca6
ret
test esi, esi
jb 0x10029e58
ja 0x10043e3b
jbe 0x10045b73
inc eax
int 0xdc
jbe 0x10043e3b
fisubr dword [ebx - 0x73]
and al, 4
mov ebp, ebp
shl cx, 0x20
mov word [esi + 0xbc], di
xchg cl, dh
mov dl, dl
shl ecx, 0x20
xchg dh, cl
ja 0x1003dfc4
push ebp
or dword ss:[edi], 0xffffff80
stosd dword es:[edi], eax
add eax, 0xd5c7ffff
push 0
call fcn.1004b696
add esp, 4
test eax, eax
jb 0x10026024
invalid
mov ebp, ebp
je 0x10036b54
jne 0x10049ad9
xchg ebx, eax
push esi
xor al, 0x8b
pop ss
mov edx, dword [edi]
shr bx, 0x40
push 0x26
jmp 0x10049ae2
push edx
call fcn.1003c459
ja 0x1002eeb3
jbe 0x10049af5
nop
cpuid
ret
jbe 0x1002eeb3
and eax, 0x66d28918
mov eax, dword [ebx + ebx + 0x1008e51a]
pop esi
pop ebx
pop ebp
ret
jmp 0x1004bd2b
push eax
mov ax, ax
push eax
mov al, 0xad
pop eax
push ecx
call fcn.10057996
mov ch, ch
mov dl, dl
mov al, byte [ebp + 0xc]
add esp, 0xc
js 0x10036591
jns 0x1004bd51
lodsb al, byte [esi]
mov edx, 0xa83a890f
invalid
jns 0x10036591
fcomp dword [eax - 0x161376a5]
mov word [edx - 2], ss
inc dword [edx - 0x7ed9007b]
adc ecx, dword [ecx - 0x3877f025]
hlt
ficomp dword [edi]
xor al, 0xec
shr ah, 0x40
mov ax, word [ebp + eax]
lea esi, [esi + 0xc]
cmc
xor word [ebp + ebx], ax
jb 0x10020006
jne 0x1005b57a
je 0x1004f787
push ecx
pop ecx
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
shl ax, 0x20
mov edx, dword [ebp + 0x18]
cmc
add ebx, 0x2c
jmp 0x100532d2
push ecx
add eax, ebx
push edx
push eax
sub esi, ebx
call int.100318a5
add esp, 0xc
test eax, eax
jb 0x10049ab5
jne 0x10045b60
je 0x100532f9
cmp cl, byte [ebx - 0x24]
mov edi, dword [ebp - 4]
jno 0x10045b56
jo 0x10053308
add cl, byte [edi]
mov byte [0x48800fc3], al
sub bh, bh
dec dword [edi]
mov byte [esi + 0x790000c9], al
add eax, 0x88191913
das
jo 0x10045b56
js 0x1005fc9a
jns 0x1005331b
adc ebx, dword [ecx]
sbb dword [eax + 0x79890f2f], ecx
leave
add byte [eax], al
jns 0x1005fc9a
sub byte [ecx], 0x88
sahf
mov edx, 0x57000000
pop edi
shl dh, 0x20
shl ax, 0x20
push esi
lea esi, [edi + esi*2]
shr ah, 0x40
pop esi
mov byte [esi + 0xbb], al
mov cl, cl
js 0x1001f2eb
jns 0x1005334f
pop ss
pop edi
aas
push esi
in eax, 0xf
mov dword [esi - 0x7e000341], edx
cmp edx, 1
jle 0x10039f92
jns 0x1001f2eb
jg 0x10053366
pop ss
add al, 0xd1
jno 0x1002fb54
jo 0x10053373
jmp 0x96ec824f
jo 0x1002fb54
fnstenv [edi]
add ecx, 0xe9
and eax, 0xffff
jb 0x1005f357
add dl, 0
js 0x1005f10c
shr al, 0x40
shl ax, 0x20
jns 0x1005d2c7
mov ebp, 0x160ce54f
jns 0x1005f10c
fsqrt
jo 0x1005d2e3
jno 0x1005d2da
push edi
mov eax, dword [0x8d5e56dc]
jbe 0x1005d2e7
push esi
pop esi
lea esi, [esi + 8]
jmp dword [esi]
mov esi, dword [esi + 4]
shl esi, 0x20
out 0x20, al
jmp dword [esi]
xor ecx, 0x5131
jb 0x1005f36c
jmp 0x100309ae
inc esi
das
shl dl, 0x20
mov ah, ah
mov ebx, dword [esi + 4]
mov ebx, dword [ebp + ebx]
lea esi, [esi + 8]
dec byte [ebx]
jmp dword [esi]
pushfd
cdq
mov ebx, dword [esi + 4]
shr cx, 0x40
mov ebx, dword [ebp + ebx]
lea esi, [esi + 8]
dec word [ebx]
ja 0x1003e140
jbe 0x1005f38a
mov al, 0x33
xchg edi, eax
jbe 0x1003e140
and ah, 0x66
clc
add eax, 0xb10
add byte [eax + eax], bh
add byte [eax], al
std
stosb byte es:[edi], al
add eax, 0x84ef10
add byte [eax], dl
add byte [eax], al
fcom dword [esp + eax]
adc ah, dh
jo 0x1005f3b3
adc byte [ebx + edi*4 - 0xeffe], dl
mov ebx, 0xffff1002
add byte [eax], al
cmp al, 0
add byte [eax], al
fcom dword [esp + eax]
adc byte [eax], al
jno 0x1005f3c7
adc byte [0x401004e7], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
invalid
out 4, eax
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
add cl, bl
syscall
adc byte [ecx], dl
add byte [eax], al
add byte [eax], dl
add byte [eax], al
xchg esp, eax
mov ebx, 0xffff1002
add byte [eax], al
push eax
add byte [eax], al
add al, bl
adc al, 4
adc byte [ecx + esi*2], dl
add dl, byte [eax]
mov dh, 0xf
add dl, byte [eax]
dec esp
add byte [eax], al
add byte [eax + eax], cl
add dh, dl
inc eax
add dl, byte [eax]
or ah, dh
add eax, 0xd63c9010
inc eax
add dl, byte [eax]
test dword [eax + 5], 0x8bd18210
pop esi
or byte [ecx + 0x8b66d2], cl
mov ebx, ebx
lea esi, [esi + 0xc]
and word [ebp + ebx], ax
jb 0x100325f0
shl bl, 0x20
jmp dword [esi]
call fcn.100599cf
ja 0x10021303
jbe 0x1005fcaa
aam 9
movsd dword es:[edi], dword [esi]
jbe 0x10021303
sub byte [esi], 0xc1
out dx, eax
inc eax
lea ecx, [ebp - 0x10]
jno 0x1004bd2a
mov esi, esi
jo 0x1005fcc7
or esi, eax
ljmp 0xc05d
jo 0x1004bd2a
invalid