Function at 0x401a80
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov eax, dword [0x4b9440]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x4ba784]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov esi, eax
or esi, 0x10104c4c
and eax, 0x812401b0
mov edx, ecx
or edx, 0x4acba003
and esi, 0x5adbec4f
and ecx, 0x24001200
and edx, 0x5adbec4f
or ecx, esi
or eax, edx
xor eax, ecx
mov ecx, eax
not ecx
and eax, 0x8ae32c57
and ecx, 0x751cd3a8
or eax, ecx
mov edx, eax
mov ecx, eax
xor eax, 0xc021ab
xor edx, 0xe4289e54
xor ecx, 0xe4289e55
and ecx, edx
and eax, 0x80c83fef
and edx, 0x7f37c010
or edx, eax
mov eax, ecx
not eax
and ecx, 0x43cbd061
mov edi, edx
xor edi, 0x4303c001
xor edx, 0x80c83fee
mov esi, eax
and esi, 0xbc342f9e
or eax, edx
and edx, 0xbc342f9e
and edi, 0x43cbd061
or ecx, esi
or edi, edx
not eax
xor edi, ecx
or eax, edi
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x8085979f
and ecx, 0x7f7a6860
or ecx, edx
xor ecx, 0x7f7a6860
or ecx, eax
mov eax, dword [0x4ba780]
cmp ecx, 0xffffffff
sete byte [ebp - 0x11]
cmp eax, 0xa
mov eax, 0xee58459b
setl byte [ebp - 0x12]
nop word cs:[eax + eax]
cmp eax, 0x2277754
jg 0x401cf0
cmp eax, 0xee58459b
je 0x401d1b
cmp eax, 0xefcfae35
je 0x401dae
cmp eax, 0x1d2799e
jne 0x401b80
push eax
mov eax, esp
mov dword [ebp - 0x18], eax
push eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov eax, dword [0x4ba784]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
mov esi, edx
not eax
or esi, 0xafd3d1b9
mov ebx, eax
mov edi, esi
and edi, 0xf1090b56
and ebx, 0x242400
and eax, 0xf610c35a
or ebx, edi
mov edi, edx
xor edi, 0x502c2e46
and edi, edx
mov ecx, edi
not ecx
and edi, 0xef6f4a9
or esi, ecx
and ecx, 0xf1090b56
or edi, ecx
not esi
xor edi, ebx
or esi, edi
mov ecx, esi
not ecx
and esi, 0x39608ee2
and ecx, 0xc69f711d
or esi, ecx
mov edi, esi
xor edi, 0x9442024
xor esi, 0x6214d08
and esi, 0x6629cd89
and edi, 0x99d63276
or edi, esi
mov esi, edi
xor esi, 0x90100252
xor edi, 0x6629cd89
mov ecx, edi
or edi, edx
and edx, 0x9ef3ca5
and ecx, 0x9ef3ca5
and esi, 0xf610c35a
or esi, ecx
or eax, edx
not edi
xor eax, esi
mov esi, 0x633e34b1
or edi, eax
mov eax, edi
not eax
and edi, 0xc4004672
and eax, 0x3bffb98d
or edi, eax
xor edi, 0xc4004672
mov edi, 0x387f22c2
sete bl
setne ah
cmp dword [0x4ba780], 0xa
mov ecx, ebx
setge al
setl dh
mov dl, al
or cl, al
and ah, dh
or dh, bl
xor dl, bl
mov ch, cl
xor dh, 1
not dl
and dl, al
and al, bl
xor dl, 1
or al, ah
xor ch, dl
or dl, cl
or al, dh
xor dl, 1
mov cl, al
or dl, ch
xor cl, 1
mov dh, dl
xor dh, al
and al, dl
and dh, dl
xor dl, 1
and dl, cl
mov cl, dh
or al, dl
xor cl, al
test cl, 1
cmovne edi, esi
test al, 1
mov eax, edi
cmovne eax, esi
test dh, 1
cmove eax, edi
jmp 0x401b80
cmp eax, 0x2277755
je 0x401faa
cmp eax, 0x387f22c2
je 0x401fa0
cmp eax, 0x633e34b1
jne 0x401b80
mov eax, 0xefcfae35
jmp 0x401b80
mov dh, byte [ebp - 0x11]
mov ah, byte [ebp - 0x12]
mov ecx, 0x387f22c2
mov bl, ah
mov al, dh
xor bl, 1
xor al, 1
mov bh, bl
mov dl, al
and bh, ah
and dl, dh
xor bh, 1
xor dl, 1
or bh, ah
or dl, dh
xor bh, 1
xor dl, 1
or bh, bl
and bl, dh
mov dh, al
or dl, al
xor dh, ah
xor dl, bh
and dh, al
and al, ah
mov ah, dh
or al, bl
xor dh, al
xor ah, 1
xor al, 1
or al, ah
xor al, 1
or al, dh
mov ah, al
mov dh, al
xor ah, 1
and dh, ah
xor dh, 1
or dh, ah
or ah, dl
xor dl, 1
xor dh, 1
xor ah, 1
or dh, al
xor al, dl
or ah, al
xor dh, dl
mov dl, ah
xor dl, dh
test ah, 1
mov eax, 0x1d2799e
cmovne eax, ecx
test dh, 1
cmove eax, ecx
test dl, 1
mov edx, 0x1d2799e
cmove eax, edx
jmp 0x401b80
push eax
mov eax, esp
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x18]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x1c]
mov dword [eax], ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov dword [eax], ecx
inc edi
not edx
not ebx
mov eax, 0xe9
mov esi, 0xb5
imul edi
not ebx
neg eax
and eax, 0xfd
neg edx
neg eax
rcl esi, 0x5f
add eax, 0xfc
imul eax
rcl esi, 0x31
and esi, 0x5f
and edx, 0x40
not esi
inc esi
rcr edi, 0xd5
neg ebx
imul edi
inc edx
ror ebx, 0xbf
or esi, 0xc1
mov edi, 0xa0
or edi, 0x96
neg eax
rol eax, 0x80
not edi
imul esi
mov edi, 0xc8
dec ebx
inc ebx
or edx, 0xde
imul edi
sbb eax, 0xfc
not edx
sub edx, 0x5f
rcl esi, 0x16
not edx
sbb edx, 0x16
imul esi
neg esi
mov eax, 0xbb
ror eax, 0x80
sub edi, 0xf3
inc edi
neg ebx
inc edi
sub edx, 0x47
not esi
sub ebx, 0x77
imul eax
neg ebx
rcl esi, 0xec
sub esi, 0x3e
neg ebx
sbb edx, 0x36
rol edi, 0x48
neg eax
dec edx
ror ebx, 0x98
not esi
ror edi, 0x4c
ror edi, 0xab
rcr esi, 0x67
mov ebx, 0x64
sbb edx, 0x7a
inc eax
ror eax, 0x42
inc edi
dec edx
rol esi, 0x46
or ebx, 0xa7
not edx
bswap esi
rol eax, 0x68
bswap esi
add ebx, 0x4a
neg ebx
sbb edi, 0x19
rcl eax, 0xc6
and esi, 0xaa
rcr edx, 0xed
imul edi
rcr edi, 0x5c
add edi, 0x46
inc edi
not edx
rcr ebx, 0xbb
sub ebx, 0xd9
bswap esi
imul ebx
mov esi, 0xe7
ror edx, 0x7e
imul edi
rcl eax, 0x4b
bswap esi
sbb eax, 0x55
add esi, 0x97
mov esi, 0xae
add edi, 0xcb
imul esi
neg ebx
or esi, 0x2f
inc esi
mov esi, 6
or ebx, 0x69
not edx
imul ebx
rcl ebx, 0x77
dec edx
or eax, 0xef
dec esi
or esi, 0x51
ror eax, 0xaa
bswap edx
sbb ebx, 0x81
add esi, 0x55
not ebx
mov eax, 0xc9
not esi
ror edi, 0xd2
sub edx, 0xab
imul eax
rol ebx, 0x98
rcr ebx, 0x2d
bswap edi
dec ebx
imul ebx
rcl esi, 0x95
inc ebx
add esi, 0xd0
neg esi
add edx, 0xd7
dec edi
not edi
or eax, 0xc0
ror esi, 0x54
bswap esi
neg ebx
and edi, 0xa3
rcr ebx, 2
not edx
rcr eax, 0xfc
rcl ebx, 0
dec eax
add edx, 0xe8
and eax, 0x20
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x2c], eax
mov eax, 0x2277755
jmp 0x401b80
mov eax, 0x1d2799e
jmp 0x401b80
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041d790
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret