Function at 0x40e790
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov esi, 0xb9
sub edx, 0x2d
or eax, 0xe8
sbb eax, 6
or edi, 0x21
rol ebx, 0x65
ror eax, 0xe0
and edx, 0x90
mov eax, 0xe1
dec eax
rcr ebx, 0xef
rol eax, 0x2c
sub ebx, 0xa2
add esi, 0x8f
and ebx, 0xe2
neg edx
not edi
imul ebx
ror esi, 0x9d
add edx, 0xcf
mov eax, 0x8f
rol eax, 0xa1
mov edx, 0xc6
and edi, 0xec
not eax
neg eax
add eax, 0x7a
ror esi, 0xe7
rcl edi, 2
rcr esi, 0x73
or eax, 0x5b
or edx, 0x16
or edi, 0xe3
or edx, 0x2e
neg esi
not edi
rcr ebx, 0xc
imul ebx
not esi
or edi, 0x11
neg eax
add edi, 0xb1
imul eax
not eax
dec edx
bswap edi
imul edx
dec ebx
ror esi, 0x47
sub edx, 2
mov dword [esp + 0xa0], eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
cmp dword [esp + 0x7c], 0x5f5e100
jge 0x40e88b
mov eax, dword [esp + 0x78]
add eax, 1
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x7c]
add eax, 1
mov dword [esp + 0x7c], eax
jmp 0x40e862
cmp dword [esp + 0x78], 0x5f5e100
jne 0x40ee85
rcl eax, 0x7c
inc esi
bswap eax
mov eax, 0x2d
neg edx
dec ebx
or edi, 0xda
sub edx, 0xc4
add eax, 0x97
neg esi
sbb ebx, 0xc9
or esi, 0xa1
rcl edx, 0x5a
inc edi
dec edx
mov eax, 0xa0
sub esi, 0x90
sub ebx, 0xf9
add edx, 0x58
or esi, 0x3e
inc ebx
bswap edx
dec edx
ror eax, 0x43
and edx, 0xa0
sub edi, 0xb
not edx
neg eax
imul edx
add edx, 0xc
or edx, 0xca
and eax, 0x27
rol eax, 0x91
bswap edx
rol edx, 0xa
imul edi
not eax
imul edi
bswap esi
rol edx, 0xe8
bswap eax
dec ebx
rol ebx, 0x6b
rcr esi, 0xd7
bswap edi
dec edi
dec esi
add esi, 0xce
rol edi, 0x98
sub edx, 0x79
mov dword [esp + 0xa0], eax
mov byte [esp + 0x77], 0x60
mov dword [esp + 0x70], 0x77c
cmp dword [esp + 0x70], 0
jl 0x40e975
mov eax, dword [esp + 0x70]
mov cl, byte [eax + 0x419c00]
mov eax, dword [esp + 0x70]
mov byte [eax + 0x419c01], cl
mov eax, dword [esp + 0x70]
add eax, 0xffffffff
mov dword [esp + 0x70], eax
jmp 0x40e944
mov al, byte [esp + 0x77]
mov byte [0x419c00], al
mov eax, esp
mov dword [eax + 4], 0x77d
mov dword [eax], 0x419c00
call fcn.0040e1c0
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
rcl ebx, 0x88
neg esi
dec ebx
or edx, 0x33
ror esi, 0x45
sub edi, 0xb6
bswap esi
bswap ebx
bswap esi
mov eax, 0xe8
neg ebx
inc ebx
imul ebx
rcl eax, 0xc2
sbb ebx, 0xf5
rol eax, 0x21
neg eax
not esi
neg edi
rcl ebx, 0x86
neg esi
dec eax
sbb ebx, 0x40
add edi, 0xa6
and eax, 0x85
dec edx
neg ebx
dec eax
or eax, 0xc1
not ebx
add edx, 0x8b
rol ebx, 0x56
imul eax
mov edi, 0xac
not esi
rol ebx, 0x1f
mov ebx, 0xe9
or ebx, 0x63
imul edx
or ebx, 0x3b
neg esi
sbb edi, 0x23
rcl esi, 0x22
neg ebx
imul ebx
imul ebx
mov esi, 0x36
inc edi
add eax, 0x70
sbb esi, 0xca
mov dword [esp + 0xa0], eax
call fcn.0040e4a0
mov dword [esp + 0x64], eax
lea eax, section..data
mov dword [esp], eax
mov dword [esp + 4], 0x2c00
call fcn.0040e000
inc esi
ror esi, 0x28
mov edi, 0xd3
and edx, 0x2f
imul edi
bswap edi
not esi
mov edx, 0xc1
rcl edx, 4
add ebx, 0xb
ror edi, 0x8f
sbb edi, 0x8c
or esi, 0x43
and edx, 0x9c
bswap esi
bswap edi
ror eax, 0xb
or edx, 0x8a
inc eax
dec edx
not edx
sbb esi, 3
or edi, 0xdc
rol ebx, 0x5d
imul ebx
dec edi
bswap eax
ror ebx, 0x6b
inc esi
mov edi, 0x4f
imul ebx
inc ebx
sub eax, 0x55
dec esi
inc edi
imul edx
inc eax
imul eax
or ebx, 0x2b
rcl esi, 0xb2
imul eax
rcr esi, 0x81
dec ebx
and edx, 0xef
mov edi, 0xd7
neg ebx
imul ebx
mov ebx, 0x48
inc esi
inc edi
mov dword [esp + 0xa0], eax
mov dword [esp], 0x2000
call fcn.00401030
mov dword [esp + 0x60], eax
mov edx, 0x38
bswap edi
inc eax
imul esi
dec esi
inc esi
imul ebx
not edi
and edx, 0x14
inc edx
sbb eax, 0x71
sub ebx, 0x25
ror esi, 0x1a
or edi, 0x79
rol eax, 0x63
rcr edi, 0xe2
dec eax
sbb eax, 0x13
neg edx
not edi
imul ebx
ror esi, 0x34
mov ebx, 0xa1
sub esi, 0x2d
or edi, 0xbf
rcr edi, 0xfd
inc eax
rol esi, 0x9e
inc edi
add edx, 0x10
imul ebx
rol esi, 0x92
imul edi
neg eax
rol edx, 0x6c
rol ebx, 0x5a
ror edx, 0x7e
or esi, 0xbf
sbb edx, 9
inc esi
not edi
and ebx, 0x66
and edx, 0x51
not edx
dec edx
rcr ebx, 0x17
sbb ebx, 0xa7
not ebx
dec eax
dec eax
mov dword [esp + 0xa0], eax
lea eax, [0x419c00]
mov dword [esp], eax
mov dword [esp + 4], 0x77d
call fcn.0040e000
lea ecx, [esp + 0x24]
lea eax, [0x4101a0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x3c
call fcn.00401d00
mov dword [esp + 0x20], 0
cmp dword [esp + 0x20], 0x3c
jae 0x40ed6e
mov eax, dword [esp + 0x20]
mov al, byte [esp + eax + 0x24]
mov byte [esp + 0x1f], al
movzx ecx, byte [esp + 0x1f]
xor eax, eax
sub eax, ecx
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
sub eax, 0xbb
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
xor eax, 0xffffffff
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
add eax, 0xd9
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
sar eax, 1
movzx ecx, byte [esp + 0x1f]
shl ecx, 7
or eax, ecx
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
xor eax, 0xffffffff
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
add eax, 0xc3
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
sar eax, 7
movzx ecx, byte [esp + 0x1f]
shl ecx, 1
or eax, ecx
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
sub eax, 0x8f
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
sar eax, 6
movzx ecx, byte [esp + 0x1f]
shl ecx, 2
or eax, ecx
mov byte [esp + 0x1f], al
movzx ecx, byte [esp + 0x1f]
xor eax, eax
sub eax, ecx
mov byte [esp + 0x1f], al
mov ecx, dword [esp + 0x20]
movzx eax, byte [esp + 0x1f]
sub eax, ecx
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
sar eax, 1
movzx ecx, byte [esp + 0x1f]
shl ecx, 7
or eax, ecx
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
xor eax, 0xffffffff
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
sar eax, 2
movzx ecx, byte [esp + 0x1f]
shl ecx, 6
or eax, ecx
mov byte [esp + 0x1f], al
mov ecx, dword [esp + 0x20]
movzx eax, byte [esp + 0x1f]
add eax, ecx
mov byte [esp + 0x1f], al
movzx ecx, byte [esp + 0x1f]
xor eax, eax
sub eax, ecx
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
sub eax, 0xc7
mov byte [esp + 0x1f], al
movzx ecx, byte [esp + 0x1f]
xor eax, eax
sub eax, ecx
mov byte [esp + 0x1f], al
mov ecx, dword [esp + 0x20]
movzx eax, byte [esp + 0x1f]
sub eax, ecx
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
xor eax, 0xffffffff
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x1f]
sar eax, 7
movzx ecx, byte [esp + 0x1f]
shl ecx, 1
or eax, ecx
mov byte [esp + 0x1f], al
mov ecx, dword [esp + 0x20]
movzx eax, byte [esp + 0x1f]
sub eax, ecx
mov byte [esp + 0x1f], al
movzx ecx, byte [esp + 0x1f]
xor eax, eax
sub eax, ecx
mov byte [esp + 0x1f], al
mov ecx, dword [esp + 0x20]
movzx eax, byte [esp + 0x1f]
sub eax, ecx
mov byte [esp + 0x1f], al
mov cl, byte [esp + 0x1f]
mov eax, dword [esp + 0x20]
mov byte [esp + eax + 0x24], cl
mov eax, dword [esp + 0x20]
add eax, 1
mov dword [esp + 0x20], eax
jmp 0x40ebb5
lea eax, [0x419c00]
add eax, dword [esp + 0x64]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x24]
mov dword [esp], eax
mov dword [esp + 4], 0x3c
call fcn.0040e590
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040e660
mov edx, eax
mov eax, dword [esp + 0x14]
xor ecx, ecx
lea ecx, section..data
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
call eax
inc edi
and esi, 0x35
imul edi
sbb esi, 0x8e
sbb ebx, 0x8f
and ebx, 0xf8
not edx
rcr eax, 0x58
rcr edx, 0x2b
rol esi, 0x88
dec edi
inc ebx
bswap eax
ror esi, 0xd2
bswap eax
or edi, 0x17
rcr esi, 0x5e
and edx, 0xd
dec edi
not edi
not esi
imul eax
rol esi, 0x6b
and ebx, 0x14
rol edx, 0x72
bswap ebx
not edi
dec eax
mov edi, 0xf2
rcr edi, 0x20
ror ebx, 0x79
dec eax
not ebx
inc ebx
rcl esi, 0x85
not edi
ror eax, 0x6e
add edi, 0x85
and ebx, 0x24
not esi
sub edi, 5
add eax, 0xeb
sub esi, 0xe
sbb edi, 0x73
ror eax, 0x24
add edi, 0x5c
bswap ebx
sub eax, 0x60
mov ebx, 0xa1
sbb esi, 0x18
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x18], eax
cmp eax, 0
je 0x40ee7a
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.00401039
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret