Function at 0x48dbe1
Capabilities:
Authenticate hmac

Disassembly:
mov esi, dword [ebp + 0x10]
push esi
call fcn.00495dc3
add esp, 4
test ax, ax
jb 0x4a08af
push esi
jne 0x49689a
je 0x48dbcf
jg 0x48dbdf
jne 0x4a3e8d
test dword [eax + 0x74000162], edi
add dh, byte [edx]
jns 0x48dbe9
je 0x48dbd9
xor bh, byte [ecx + 0xf]
je 0x4a3e8d
test byte [esi + 0x25000162], ch
dec edx
and eax, 0x4c4814a
add byte [eax], al
add byte [ecx + 0x8c4], al
add byte [ebp - 0x11f73], cl
jmp [edx]
or byte [eax], al
add byte [eax], al
pop edi
retf
in eax, 0x37
ja 0x4a0e40
jbe 0x48f581
cpuid
ret
jbe 0x4a0e40
fadd st(5)
mov dword [ebp + 0x6c], edi
jmp dword [esi]
jmp 0x4b8851
push 0x497293
ret
add esp, 0x14
lea eax, [ebp - 0x40]
jmp 0x496c72
push eax
push 0x4a4b71
push 1
push edi
push ebx
call fcn.004bf320
cmp ah, ah
add esp, 0x14
mov dword [ebp - 8], eax
test eax, eax
jb 0x4afb4e
mov esi, esi
jne 0x496cc3
je 0x496ca4
add ah, byte [ebx + 0x4c781a8]
add byte [eax], al
add byte [ecx + 0x3f], al
add byte [edi], cl
test dword [eax + 0x66ffffff], edi
shl edx, 0x20
add edi, 4
cmp dword [edi], 0
jne 0x496c6e
shl dx, 0x20
je 0x496cbf
scasd eax, dword es:[edi]
sti
pop ecx
shl bp, 0x20
jmp 0x496cc4
push ebx
xchg ecx, esi
xchg esi, ecx
call fcn.004bf1f0
add esp, 4
cmp dword [ebp - 0x10], 0
je 0x496d02
jne 0x496ce6
push es
or byte [ebx - 0x140fbb], cl
invalid
mov eax, dword [ebp - 0x10]
jmp 0x496cea
push eax
mov dx, dx
call fcn.0048e6f0
or ecx, ecx
and bp, bp
add esp, 4
mov ax, ax
cmp dword [ebp - 8], 0
je 0x4b7fde
jne 0x496d15
cpuid
ret
or bp, bp
cmp dword [ebp - 8], 0xffffffff
mov bx, bx
je 0x4b7fde
jne 0x496d2d
test dword [ebx], 0x47850f66
mov bh, 0
add byte [ebx + eax + 0x2c], dh
inc edx
jne 0x4a247a
je 0x496d38
sub al, 0x42
cmpsd dword [esi], dword es:[edi]
je 0x4a247a
fisub dword [0x6a10758b]
add bh, bh
test byte [edi], 0x88
retf 0xff9d
call fcn.004b9a06
and eax, 0xc0000000
jb 0x48f573
sub ch, 0
cmp eax, 0xc0000000
jne 0x4ab5d8
je 0x49766e
cpuid
test ebx, eax
push 0
call fcn.0048f25d
add eax, 0xf0308e0
xor byte [esi - 0xffff3c], 0x26
shr edi, 0x8b
inc esi
add al, 0x68
int3
jno 0x4a7f54
xchg dx, di
xchg cx, di
xchg di, cx
xchg di, dx
jo 0x499a3c
cpuid
nop
ret
jo 0x4a7f54
xor al, 0xad
pop ebx
mov esp, ebp
pop ebp
mov bh, bh
ret
jl 0x4a2a5d
push ecx
mov ecx, ebp
xchg ecx, ecx
pop ecx
jge 0x49faa4
push esp
cpuid
ret
mov esi, esi
js 0x49334d
shr cx, 0x40
mov si, si
jns 0x49fab8
mov dword [ecx], esi
pop es
jns 0x49334d
add eax, 0x45e8bae
mov eax, dword [ebp + 0x50]
mov edx, dword [ebp + 0x58]
lea esi, [esi + 8]
idiv dword [ebx]
mov dword [ebp + 0x50], eax
mov ch, ch
mov dword [ebp + 0x58], edx
jmp dword [esi]
loope 0x4a08c5
add al, 0xf
sub dword [edx + 0x340000d2], 0xde31e873
invalid
xor al, cl
jb 0x494f57
add al, 0x58
and ax, ax
sub esp, 0
jae 0x4a0cf3
mov esp, 0x7b830f53
scasb al, byte es:[edi]
add byte [eax], al
jae 0x4abb74
xor al, 0xd3
mov dword [eax + 4], 0xd4d4d4d4
xchg bp, cx
xchg cx, bp
call fcn.004a6477
invalid
shr bh, 0x40
mov ebx, dword [esi + 4]
mov ebx, dword [ebp + ebx]
lea esi, [esi + 8]
inc word [ebx]
jmp dword [esi]
invalid
push 0
mov eax, dword [esi]
push eax
call fcn.004b6571
test bl, 0xf8
add esp, 8
jne 0x4b7fcf
je 0x4a2497
inc esi
pop esi
je 0x4b7fcf
add byte [ebp - 0x75], 0x5e
or byte [ebx + 0x66001d5c], cl
shr edx, 0x40
lea esi, [esi + 0xc]
xor dword [ebx], eax
jb 0x4a2ace
xchg di, cx
xchg cx, di
jmp dword [esi]
pop esi
pop ebx
shl eax, 0x20
xchg si, bx
xchg bx, si
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 0xc]
cmp ebx, 0x9c40244c
je 0x49764a
jne 0x4a27dd
sbb cl, byte [ebx]
ljmp 0x9696
mov eax, dword [ebp + 0x24]
xchg esi, eax
xchg esi, eax
mov ecx, dword [ebp + 0x20]
push 0x4b2468
ret
mov edx, edx
mov al, byte [esi + edx + 0x2c]
inc edx
add ecx, 0
jae 0x4a2a6d
cpuid
ret
jae 0x4a0cdf
fstp dword [ebx + 0x49e0e2]
add byte fs:[eax], al
add byte [ebp - 0xcffb4ac], cl
fmul dword [eax]
adc cl, byte [ecx + ecx*2]
add byte [eax + 0x26004a2a], dl
jno 0x4a2ad7
adc cl, byte [ecx + ecx*2]
add bl, dh
fmul dword [eax]
fldcw word [edx - 0x73]
lea esp, [esp + 4]
mov ecx, ecx
mov cl, byte [ebp - 1]
mov byte [esi + 0xba], bl
js 0x4b81dc
shl ebp, 0x20
shl cl, 0x20
shl dh, 0x20
jns 0x4a2abe
cpuid
cli
ret
jns 0x4b81dc
xor al, 0x8b
mov di, di
adc word [edi], bx
jmp dword [esi]
pop ds
cdq
push 0x4a8557
ret
adc byte [ebx + 0x448b085e], cl
add eax, 0x40eec000
shr bx, 0x40
lea esi, [esi + 0xc]
sub dword [ebp + ebx], eax
jmp dword [esi]
mov edx, dword [ebp + 0x1c]
jmp 0x4a3e27
lea edi, [edi]
push eax
xchg ebp, eax
xchg ebp, eax
push ecx
js 0x4a8485
jns 0x4a3e3b
nop
cpuid
ret 0x890f
jns 0x4a8485
xor byte [edi - 0x73], 0x64
and al, 4
jne 0x4b1856
je 0x4a3e53
cpuid
ret
je 0x4b1856
mov edi, edi
mov byte [ebp + edx - 0xd], al
shl bp, 0x20
ja 0x49fa92
jbe 0x4a3e6f
cpuid
nop
ret
jbe 0x49fa92
add eax, 0xd3850f9b
add byte [eax], al
add byte [esi - 0x3f], ah
jmp 0x8d4cb2c4
xchg ecx, ebp
xchg ebp, ecx
call fcn.004ad39b
stc
jb 0x4a3e9d
nop
cpuid
ret
jb 0x4b5290
jmp dword [esi]
mov word [esi + 0xbc], dx
mov dl, dl
xchg di, bx
xchg bx, di
mov cl, byte [ebp + 0xc]
js 0x4bb7c3
jns 0x4a558b
fistp dword [ebx]
jns 0x4bb7c3
fisubr dword [edi + 0x49e0e2]
add byte fs:[eax], al
add byte [edx + 0x20004a4d], ah
add byte [eax], al
add byte [eax], dl
add byte [eax], al
mov eax, 0xeb004ab2
retf 0xa48d
invalid
movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x24]
shl ebx, 0x20
mov ecx, dword [ebp + 0x20]
push eax
mov edx, dword [ebp + 0x1c]
jmp 0x4a6616
push ecx
mov eax, dword [ebp + 0x18]
push edx
mov ecx, dword [ebp + 0x14]
jmp 0x4a6620
push eax
mov esi, dword [ebp + 0x10]
push ecx
push esi
shl bx, 0x20
push ebx
jmp 0x4a6630
push edi
call dword [0x51f0f5]
xchg esi, eax
xchg esi, eax
pop edi
pop esi
pop ebx
shl cx, 0x20
call fcn.0049935e
add eax, 0x1167684c
dec edx
add byte [edx], ch
push 0x51eae4
jmp 0x4a6655
push ebx
call fcn.004bf320
jne 0x496c68
je 0x4a6668
cpuid
ret
je 0x496c68
add eax, 0xfff2ff4c
xchg dl, cl
shl al, 0x20
push esi
mov ax, ax
shr edx, 0x40
xchg esi, ebp
xchg esi, eax
xchg esi, eax
xchg ebp, esi
mov byte [esi + 0xbb], cl
shl dh, 0x20
shl bl, 0x20
xchg ch, bl
xchg bl, ch
call fcn.00494293
invalid
push 0x24
mov eax, dword [esi]
push eax
call fcn.004b6571
add esp, 8
pop edi
mov bl, bl
pop esi
pop ebx
xchg bl, dh
xchg dh, bl
mov esp, ebp
call fcn.004a3189
invalid
mov eax, dword [ebp - 0x3c]
call fcn.004a8e77
js 0x4a556f
jns 0x4aa17e
invalid
jns 0x4a556f
imul bl
xchg ah, dl
xchg dl, ah
mov dword [ebp + 0x50], eax
jmp dword [esi]
mov edi, dword [ebp + 8]
cmp edi, 0xffffffff
xchg dx, ax
xchg dx, ax
jne 0x4b2718
mov bl, bl
je 0x4ab5f1
mov word [eax + 0x6a], ds
add byte [edx], ch
push 0
push 0
push 3
js 0x4b26c0
jns 0x4ab603
xchg ebx, eax
mov bl, 0x6d
mov edi, 0x70b7890f
add byte [eax], al
jns 0x4b26c0
fisub dword [edi + 0x4a7d19]
add byte [ecx], al
and 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], ah
add byte [eax], al
sub al, 0x2a
dec edx
add byte [edi + edi*2], dh
dec edx
add byte [ecx], bl
jge 0x4ab680
add byte [eax], al
inc ecx
add byte [eax + 0x50], al
add byte [ecx], al
add byte [eax], al
pop esi
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
inc ecx
add byte [eax], al
pop eax
add byte [eax], al
add byte [edx + ebp], ch
dec edx
add byte [esi], ah
dec ebx
add byte [eax], al
add byte [eax], al
add byte [eax + eax], ch
add byte [ebx + ebp*2 + 0x58004a], dh
add byte [eax], al
push esp
add byte [eax], al
add byte [eax], ch
push cs
dec edx
add byte [esp + eax*8 + 0xeb50049], dh
dec edx
add byte [0x54000000], dl
add byte [eax], al
add byte [eax], ch
push cs
dec edx
add byte [esi + 0x190048f6], dl
jge 0x4ab6d8
add byte [eax], al
inc ecx
add byte [eax], al
push esp
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
popal
add byte [eax + 0x68], al
add byte [ecx], ah
add byte [eax], al
xor al, 0
add byte [eax], al
sub al, 0x2a
dec edx
add dl, ah
loopne 0x4ab6fb
add byte [eax], ch
add byte [eax], al
mov eax, 0x5d0048de
add byte [eax], al
add byte [ebp], bl
add byte [eax], al
loop 0x4ab6a5
dec ecx
add byte [eax + eax], ah
add byte [eax - 0x70ffb54e], bh
or eax, 0x4af6c6
push eax
add byte [eax], al
add byte [eax], dl
add byte [eax], al
sub byte [esi], cl
dec edx
add byte [ebp - 0x36ffb70a], ch
mov cl, 0x4b
add byte [eax + eax], bl
add byte [eax + eax], ah
add cl, cl
mov cl, 0x4b
add byte [eax + eax], ah
add byte [eax + eax], bl
add byte [ecx + 0x6d0049ac], ah
add byte [eax], al
mov eax, dword [0x6d0049ac]
mov bh, 0x4a
add byte [eax + 0x550048de], bh
add byte [eax], al
add byte [ebp], dl
add byte [eax], al
xor ch, ch
dec edx
add byte [ebx], bl
mov bh, 0x4a
add bh, dl
invalid
js 0x4a0a56
jns 0x4abb80
movsb byte es:[edi], byte [esi]
cpuid
ret
jns 0x4a0a56
ljmp 0x86fd:0x87ef87be
mov ebx, dword [ebp + 0x64]
mov edx, dword [esi + 8]
mov di, di
mov eax, dword [esi + 4]
call fcn.0048d86c
add eax, 0x49c558af
add byte [eax], al
popal
add byte [eax + 0x60], al
add byte [ecx], ah
add byte [eax], al
cld
invalid
push 0
push 3
push 0xc0000000
xchg bx, bp
xchg bp, bx
push 0x51f110
shl ax, 0x20
mov dx, dx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov edi, eax
lea eax, [eax]
mov dword [0x51e834], eax
shl ebp, 0x20
jne 0x4b2718
je 0x4b26fd
mov eax, 0xc0312fb0
xor eax, eax
jb 0x4a0e7a
xchg ch, cl
xchg cl, ch
pop edi
pop esi
pop ebx
shl cx, 0x20
mov dl, dl
mov esp, ebp
pop ebp
ret
cmp dword [0x51e844], 0
je 0x4b2767
add byte [eax], al
add byte [eax], al
add byte [edi], cl
test byte [edi], bh
add byte [eax], al
add byte [ebp + 3], dh
jne 0x4b272d
ja 0x4b271d
sbb al, 0x57
push edi
xchg ecx, edx
xchg edx, ecx
call fcn.00495c91
add esp, 4
cmp ax, 0xffff
je 0x4a6608
jne 0x4b274d
cpuid
nop
ret
cmp ax, 0x102
jb 0x4a6608
jae 0x4b275d
cpuid
ret
mov dword [0x51e844], 0
ja 0x48dbab
jbe 0x4b2771
adc eax, 0x34860f8a
mov ah, 0xfd
inc dword [edx - 0x3677a5]
pop esi
dec ebx
shl dl, 0x20
add esp, dword [esi + 4]
lea esi, [esi + 8]
mov dword [ebp + 0x60], esp
jmp dword [esi]
jbe 0x48dbab
sbb byte [ebx - 0x78], 0xc9
jmp dword [esi]
push ebp
mov ebp, esp
sub esp, 4
cmp dword [0x51e838], 0
push ebx
push esi
push edi
jne 0x4a27c8
je 0x4b49fa
aas
enter 0xde8, 0xffffffffffffffbb
invalid
call fcn.004b050c
add edi, 0
test eax, eax
jb 0x48f547
jne 0x4a27c8
je 0x4b4a17
test al, 0x71
xor eax, eax
jb 0x48f55f
mov cl, cl
pop edi
lea edx, [edx]
jne 0x4a27b7
je 0x4b4a30
out 0x72, al
das
fimul dword [edi]
test byte [ecx + 0x5fffedd], al
ja 0x498674
je 0x4a27b7
add eax, 0x36870f67
cmp al, 0xfe
inc eax
in al, dx
inc eax
shr ah, 0x40
xchg ebx, ecx
xchg ecx, ebx
jbe 0x4b4a49
mov dword [0xce810f04], eax
add byte es:[eax], al
jno 0x4b711d
jo 0x4b4a53
mov ecx, 0xc4800fbf
add byte es:[eax], al
jo 0x4b711d
add eax, 0x4ec8136
add byte [eax], al
add byte [edx], ch
add esp, 4
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
jne 0x4a3b80
mov dl, dl
je 0x4b52aa
cpuid
ret
je 0x4a3b80
xor eax, 0xd9c3f6f6
add bl, 0
add esp, 4
jne 0x4aa174
je 0x4b52ca
cpuid
sbb ebx, eax
je 0x4aa174
and eax, 0x20e4c0a8
shr ax, 8
movzx edx, ax
push 0x4a9032
ret
shr ax, 0x40
cmp word [ebp - 0x3c], 0
je 0x4a8e9a
jne 0x4b7ff0
xlatb
mov edi, 0x870ff297
fistp word [edi]
invalid
ja 0x4a9fd5
jbe 0x4b7ffb
aaa
invalid
jbe 0x4a9fd5
xor al, 0xe8
ja 0x499a24
jbe 0x4b81e6
add eax, 0x38860f4d
sbb dh, bh
inc dword [edx - 0x5777f0ce]
push ecx
std
invalid
jbe 0x499a24
xor byte [edx], 0xf
mov byte [eax + 0x79fffd51], ch
add bl, byte [esi]
pop esi
jns 0x48d39c
mov dword [esi], 0x66ec4589
xchg edi, eax
xchg di, ax
shr ebp, 0x40
lea eax, [ebp - 0x28]
push eax
push 0x48f841
push 0
mov ch, ch
xchg dx, cx
xchg cx, dx
push 0x51eb34
jmp 0x4b8223
push edi
call fcn.004bf320
add esp, 0x14
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x20]
mov esi, esi
jmp 0x4b8239
push eax
push 0x48f841
shl dl, 0x20
push 0
mov bx, bx
push 0x51eb44
ja 0x4bd397
jbe 0x4b8259
imul ecx, edx, 0x860f6a46
cmp byte [ecx], dl
add byte [0x8bf6ff41], dh
push esi
invalid
jbe 0x4bd397
xor eax, 0x8bf6ff41
test byte [ebx + 0x6589fc76], 0x60
jbe 0x4b8262
mov dword [ebp + 0x60], esp
shr edx, 0x40
mov esi, dword [esi]
jmp dword [esi]
mov ax, word [ebp + 0x10]
jmp fcn.0048e80b
jmp 0x4bb7c4
push eax
mov byte [esi + 0xba], cl
xchg cx, ax
xchg ch, dh
xchg si, dx
mov ebp, ebp
xchg cl, ch
shl ecx, 0x20
push edx
pop edx
xchg ch, cl
xchg dx, si
xchg dh, ch
shl eax, 0x20
mov ecx, ecx
shl bp, 0x20
xchg cx, ax
mov ecx, ecx
mov byte [esi + 0xbb], 0
mov si, si
push esi
mov si, si
call fcn.004b318e
xchg si, ax
xchg si, ax
push ebp
mov bp, 0xac02
pop ebp
mov word [esi + 0xbc], di
add esp, 8
shr ch, 0x40
shr ah, 0x40
shr ebx, 0x40
mov cl, byte [ebp - 1]
call fcn.0049f93c
fsub dword [edi - 0x75]
push esi
add al, 0xc0
ljmp 0xfeee
shl dx, 0x20
push edi
mov al, al
call fcn.004bf320
add esp, 0x14
mov ecx, dword [esi]
mov dword [ebp - 0xc], eax
push 0x49efab
ret
add byte [eax], al
push esp
add byte [eax], al
add byte [eax + 0x1b004b49], ah
sbb bl, byte [ebp - 0x52]
pop eax
add byte [eax], al
add byte [esi], bl
lea ecx, [ebx]
sub byte [esi], cl
dec edx
add byte [edi - 0x2a], ch
dec ebx
add byte [eax + 0x28c3a20f], dl
push cs
dec edx
add byte [edi], ch
xor ecx, dword [ecx]
fcmovb st(0), st(7)
or dword [0x51ea04], 2
jb 0x4968a8
pop ebp
ret
jne 0x4a2e66
je 0x4bd699
jne 0x4bd64d
popal
and eax, 0x57c7840f
invalid
je 0x4a2e66
add esp, 8
mov eax, dword [esi]
push 0
shr si, 0x40
push eax
call fcn.004b6571
add esp, 8
pop esi
pop ebp
ret