Function at 0x401000
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov eax, dword [0x4b9440]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x4ba78c]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
not edx
mov ecx, eax
and eax, 0xc5bfad09
and ecx, 1
mov esi, edx
and edx, 0x3a4052f6
and esi, 0xfffffffe
or eax, edx
or ecx, esi
mov esi, dword [0x4ba788]
mov edx, eax
xor edx, 0xc5bfad09
xor eax, 0x3a4052f6
andn edx, ecx, edx
and eax, ecx
not ecx
or eax, edx
xor ecx, eax
test ecx, eax
mov eax, 0xa000f40
sete byte [ebp - 0x11]
cmp esi, 0xa
setl byte [ebp - 0x12]
jmp 0x401250
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
mov eax, 0x8c
imul esi
inc eax
inc edi
not esi
ror edi, 0x90
dec eax
dec edi
rcl eax, 0x32
bswap eax
inc edx
not edx
rcl ebx, 0x17
bswap ebx
not esi
add eax, 0x34
inc eax
inc eax
and eax, 0xba
sub edx, 0x7d
bswap edi
bswap edi
rol esi, 0x35
imul esi
or eax, 0xf1
rcl ebx, 0x82
imul edx
imul ebx
and ebx, 0x35
rol eax, 0xfb
dec edx
dec eax
not edx
inc ebx
rcr esi, 0x7a
not esi
sbb ebx, 0x54
dec edx
and edi, 0xa1
neg eax
inc edi
mov eax, 0x95
neg edi
inc ebx
mov esi, 0x16
inc esi
imul ebx
bswap eax
ror edx, 0x32
neg eax
not ebx
imul ebx
ror ebx, 0x59
imul esi
mov ebx, 0x2f
bswap edx
rcr ebx, 2
rol edi, 0xeb
imul eax
rcl edx, 0xa4
or ebx, 0x3d
not edx
add esi, 0x91
neg edi
dec edx
bswap esi
imul eax
and ebx, 0x42
not esi
add esi, 0x60
neg ebx
imul eax
rol edi, 0x68
ror esi, 0xd8
imul eax
neg edx
imul edi
rol edi, 0xbc
mov edi, 7
and edi, 0xf4
rcl edi, 0x27
or ebx, 0x81
and edi, 0xf5
sbb edi, 0xd2
bswap ebx
and ebx, 0xf7
sbb eax, 0x75
rol edi, 0x3c
mov edx, 0xb6
imul eax
not ebx
imul esi
inc ebx
add esi, 0x7a
not edx
rcl eax, 0x92
add esi, 0x8c
rol esi, 0xdb
sub edi, 0xf
rol edi, 0xa
inc ebx
dec esi
neg edi
inc edx
mov edx, 0xd3
not esi
sbb edi, 0x6d
sub eax, 0xda
rcr edi, 0xf1
rol eax, 0x28
dec edx
neg edi
bswap edi
mov edi, 0x52
and edi, 0x40
add edx, 5
mov edi, 0xb4
sbb ebx, 0xcb
bswap eax
bswap edi
mov esi, 0xe3
rcr eax, 0x2f
sub ebx, 0xe8
and edi, 0x60
bswap ebx
dec edx
rcl ebx, 5
imul edi
ror esi, 0x12
or edi, 0xe8
not esi
sbb edi, 0xb2
and edi, 0xd3
or ebx, 5
or esi, 0x41
not ebx
inc eax
ror ebx, 0x94
imul edx
or eax, 0xb9
bswap eax
rcl esi, 0xdc
bswap edx
mov esi, 0xd3
or eax, 0x4d
or esi, 0xce
or esi, 0x78
not esi
ror eax, 4
dec ebx
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
xor ecx, ecx
xor edi, edi
mov ecx, dword [edx]
mov edi, dword [esi]
not byte [edi]
sub byte [edi], 0x64
add byte [edi], 0x75
imul byte [edi]
inc edi
loop 0x401231
mov eax, 0xd0c9d256
nop word cs:[eax + eax]
cmp eax, 0xd98eb504
jle 0x4012d0
cmp eax, 0x3d260e25
jg 0x401410
cmp eax, 0xd98eb505
je 0x401713
cmp eax, 0xa000f40
jne 0x4018ca
movzx edx, byte [ebp - 0x11]
mov ah, byte [ebp - 0x12]
mov esi, 0xd98eb505
mov edi, 0x7602dcb4
mov al, dl
xor al, ah
mov ecx, eax
and al, dl
xor cl, 1
and cl, ah
xor ah, 1
or ah, dl
xor cl, 1
xor ah, 1
mov edx, ecx
or al, ah
xor al, 1
or dl, al
xor al, cl
mov ecx, eax
xor cl, dl
test al, 1
mov eax, 0x7602dcb4
cmovne eax, esi
test dl, 1
cmovne eax, edi
test cl, 1
cmove eax, esi
jmp 0x401250
cmp eax, 0xc2212ab3
jg 0x401430
cmp eax, 0x8336457b
je 0x4018b6
cmp eax, 0xbd56408a
jne 0x401250
mov eax, dword [0x4ba78c]
mov edi, 0x3d260e26
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
mov esi, ecx
and esi, 0x9c8917d7
and ecx, 0x3880
mov edx, eax
and edx, 0x6376e828
or esi, edx
mov edx, esi
xor esi, 0x1300000
xor edx, 0x80080401
or esi, 0x7800815e
and edx, 0x824e4421
and esi, 0x7db1835e
or edx, esi
mov esi, eax
or esi, 0x5b10200
and esi, 0x7db1835e
or ecx, esi
mov esi, 0xd0c9d256
xor ecx, edx
mov edx, ecx
not edx
and ecx, 0xde02e9f4
and edx, 0x21fd160b
or ecx, edx
mov edx, ecx
xor edx, 0x40312c90
xor ecx, 0x2602402b
and ecx, 0x3fcec36f
and edx, 0xc0313c90
or edx, ecx
xor edx, 0xc0313c90
or edx, eax
mov eax, edx
not eax
and edx, 0x9b3c8af4
and eax, 0x64c3750b
or edx, eax
xor edx, 0x9b3c8af4
sete cl
setne dl
cmp dword [0x4ba788], 0xa
setge al
setl ah
and ah, dl
and cl, al
or cl, ah
mov ah, al
or al, dl
mov ebx, ecx
xor ah, dl
xor al, 1
mov ch, cl
xor bl, 1
or al, ah
mov ah, bl
xor ah, al
or al, bl
xor al, 1
or al, ah
mov ah, al
xor ch, al
and al, cl
not ah
and ch, cl
and ah, bl
mov cl, ch
or al, ah
xor cl, al
test al, al
mov eax, 0x3d260e26
cmovne eax, esi
test ch, ch
cmove eax, edi
test cl, 1
cmovne eax, esi
jmp 0x401250
cmp eax, 0x3d260e26
je 0x401073
cmp eax, 0x7602dcb4
jne 0x401250
mov eax, 0xd98eb505
jmp 0x401250
cmp eax, 0xc2212ab4
je 0x4018c0
cmp eax, 0xd0c9d256
jne 0x401250
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
mov eax, 0x8c
imul esi
inc eax
inc edi
not esi
ror edi, 0x90
dec eax
dec edi
rcl eax, 0x32
bswap eax
inc edx
not edx
rcl ebx, 0x17
bswap ebx
not esi
add eax, 0x34
inc eax
inc eax
and eax, 0xba
sub edx, 0x7d
bswap edi
bswap edi
rol esi, 0x35
imul esi
or eax, 0xf1
rcl ebx, 0x82
imul edx
imul ebx
and ebx, 0x35
rol eax, 0xfb
dec edx
dec eax
not edx
inc ebx
rcr esi, 0x7a
not esi
sbb ebx, 0x54
dec edx
and edi, 0xa1
neg eax
inc edi
mov eax, 0x95
neg edi
inc ebx
mov esi, 0x16
inc esi
imul ebx
bswap eax
ror edx, 0x32
neg eax
not ebx
imul ebx
ror ebx, 0x59
imul esi
mov ebx, 0x2f
bswap edx
rcr ebx, 2
rol edi, 0xeb
imul eax
rcl edx, 0xa4
or ebx, 0x3d
not edx
add esi, 0x91
neg edi
dec edx
bswap esi
imul eax
and ebx, 0x42
not esi
add esi, 0x60
neg ebx
imul eax
rol edi, 0x68
ror esi, 0xd8
imul eax
neg edx
imul edi
rol edi, 0xbc
mov edi, 7
and edi, 0xf4
rcl edi, 0x27
or ebx, 0x81
and edi, 0xf5
sbb edi, 0xd2
bswap ebx
and ebx, 0xf7
sbb eax, 0x75
rol edi, 0x3c
mov edx, 0xb6
imul eax
not ebx
imul esi
inc ebx
add esi, 0x7a
not edx
rcl eax, 0x92
add esi, 0x8c
rol esi, 0xdb
sub edi, 0xf
rol edi, 0xa
inc ebx
dec esi
neg edi
inc edx
mov edx, 0xd3
not esi
sbb edi, 0x6d
sub eax, 0xda
rcr edi, 0xf1
rol eax, 0x28
dec edx
neg edi
bswap edi
mov edi, 0x52
and edi, 0x40
add edx, 5
mov edi, 0xb4
sbb ebx, 0xcb
bswap eax
bswap edi
mov esi, 0xe3
rcr eax, 0x2f
sub ebx, 0xe8
and edi, 0x60
bswap ebx
dec edx
rcl ebx, 5
imul edi
ror esi, 0x12
or edi, 0xe8
not esi
sbb edi, 0xb2
and edi, 0xd3
or ebx, 5
or esi, 0x41
not ebx
inc eax
ror ebx, 0x94
imul edx
or eax, 0xb9
bswap eax
rcl esi, 0xdc
bswap edx
mov esi, 0xd3
or eax, 0x4d
or esi, 0xce
or esi, 0x78
not esi
ror eax, 4
dec ebx
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
xor ecx, ecx
xor edi, edi
mov ecx, dword [edx]
mov edi, dword [esi]
not byte [edi]
sub byte [edi], 0x64
add byte [edi], 0x75
imul byte [edi]
inc edi
loop 0x401604
mov ecx, dword [0x4ba78c]
lea eax, [ecx + 1]
imul eax, ecx
mov edx, eax
xor edx, 0x6f1f2b59
mov ecx, eax
and ecx, 0x8170a59
and edx, eax
not eax
and eax, 0x67082100
or ecx, eax
xor ecx, 0x8170a59
or edx, ecx
mov eax, edx
not eax
and edx, 0x18fb704d
and eax, 0xe7048fb2
or edx, eax
mov eax, edx
mov ecx, edx
xor edx, 0x881ba4ea
xor eax, 0x77e45b14
xor ecx, 0x77e45b15
and ecx, eax
and edx, 0xfffffffe
and eax, 1
or eax, edx
mov edx, ecx
not edx
and ecx, 0xa396367c
mov edi, eax
not edi
mov esi, edx
and esi, 0x5c69c983
and eax, 0xa396367c
or edx, edi
and edi, 0x5c69c983
or ecx, esi
or eax, edi
not edx
xor eax, ecx
or edx, eax
xor edx, 0xffffffff
setne al
sete cl
cmp dword [0x4ba788], 0xa
setl dl
setge ah
and al, dl
and ah, cl
or dl, cl
or al, ah
mov ecx, eax
xor cl, 1
mov ah, cl
xor ah, dl
or dl, cl
xor dl, 1
or dl, ah
mov ah, dl
xor ah, 1
mov ch, ah
and ch, dl
xor ah, ch
xor ch, 1
or ch, dl
xor ch, 1
or ch, ah
mov dl, ch
xor ch, al
mov eax, 0x8336457b
xor dl, 1
or dl, cl
mov cl, dl
xor cl, ch
test dl, 1
mov edx, 0x3d260e26
cmovne eax, edx
test ch, 1
cmove eax, edx
test cl, 1
mov edx, 0x8336457b
cmove eax, edx
jmp 0x401250
push eax
mov eax, esp
mov dword [ebp - 0x1c], eax
push eax
mov eax, esp
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
mov dword [eax], ecx
mov eax, dword [0x4ba78c]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
andn ecx, edx, edx
not edx
and eax, 0x875ebb0c
and edx, 0x78a144f3
mov esi, ecx
not esi
and ecx, 0x9c08a90d
or eax, edx
mov edx, eax
xor edx, 0x8408a90c
xor eax, 0x78a144f3
mov edi, eax
or eax, esi
and esi, 0x63f756f2
and edi, 0x63f756f2
and edx, 0x9c08a90d
or edx, edi
or ecx, esi
not eax
xor ecx, edx
or eax, ecx
mov edx, eax
mov ecx, eax
not edx
or ecx, 0x32c992d0
mov edi, edx
mov esi, ecx
and esi, 0x2a697f10
and edi, 0xc516002f
or edx, 1
or edi, esi
mov esi, eax
xor esi, 0xcd366d2f
and edx, 0xa6c59a5b
and esi, eax
and eax, 0x593a65a4
mov ebx, esi
not ebx
and esi, 0xd59680ef
or edx, eax
or ecx, ebx
and ebx, 0x2a697f10
or esi, ebx
not ecx
xor esi, edi
or ecx, esi
mov esi, ecx
not esi
and ecx, 0xcd366d2e
and esi, 0x32c992d1
or ecx, esi
mov eax, ecx
not eax
and ecx, 0x712c6725
mov esi, eax
and esi, 0x8ed398da
or ecx, esi
mov esi, edx
xor esi, 0x20040200
xor edx, 0x593a65a4
or eax, edx
and edx, 0x8ed398da
and esi, 0x712c6724
or esi, edx
not eax
xor esi, ecx
or eax, esi
mov esi, 0xc2212ab4
mov edx, eax
xor edx, 0x656cdad3
mov ecx, eax
and ecx, 0x5681283
and edx, eax
not eax
and eax, 0x6004c850
or ecx, eax
xor ecx, 0x5681283
or ecx, edx
not edx
and edx, 0x9a93252c
and ecx, 0x656cdad3
or ecx, edx
mov eax, ecx
not eax
and ecx, 0xcc492e6b
and eax, 0x33b6d194
or eax, ecx
xor eax, 0x33b6d194
sete dl
setne ah
cmp dword [0x4ba788], 0xa
setge al
setl cl
xor dl, al
xor cl, ah
and dl, al
xor al, ah
or al, dl
mov edx, eax
not dl
and dl, cl
xor cl, 1
mov ch, cl
xor ch, al
and al, cl
and ch, cl
or al, dl
mov edx, 0x7602dcb4
mov cl, ch
xor cl, al
cmovne edx, esi
test al, al
mov eax, edx
cmovne eax, esi
test ch, ch
cmove eax, edx
jmp 0x401250
mov eax, 0xf3ed5b40
jmp 0x401250
mov eax, 0xbd56408a
jmp 0x401250
cmp eax, 0xf3ed5b40
jne 0x401250
or edi, 0xa2
or edi, 0x55
rol eax, 0x95
rcr edi, 0x90
dec eax
rcl esi, 0x4a
neg ebx
rcr edi, 0x8a
dec edx
rol ebx, 0x5c
sbb eax, 0xea
or edx, 0x93
inc edi
rcl edx, 0x8d
imul eax
ror edi, 0x81
imul edx
imul ebx
add esi, 0x9a
rcr ebx, 0x97
inc esi
bswap edx
sub edi, 0xc1
rol eax, 0xfb
sbb ebx, 0x6a
add eax, 0x20
not ebx
rol edx, 0xc1
not ebx
imul eax
mov edi, 0xef
ror eax, 0x6c
dec edi
rcl edx, 0x20
rcl esi, 0xc3
or edx, 0xac
ror ebx, 0x80
or ebx, 0xed
dec eax
rcl ebx, 0x2e
rol esi, 0x1d
rcr edx, 0x28
imul edx
inc edx
rcl ebx, 0xaf
or eax, 0x9c
rol eax, 0x6a
rcr esi, 0x6e
sbb esi, 0x36
sub edi, 0xe0
ror edi, 0xf5
inc edi
bswap ebx
rol edx, 0x2c
add eax, 0x17
dec edx
not ebx
neg edi
imul esi
and ebx, 0xb0
or ebx, 0x98
and edx, 0x2d
imul ebx
dec ebx
neg edi
imul edx
rol esi, 0x2e
mov edx, 0x67
dec ebx
rol esi, 0x7a
imul ebx
dec eax
rol eax, 0x49
sbb edx, 0x77
dec edi
neg ebx
rcr eax, 0xe
not esi
imul esi
rcr edi, 0x94
rol edx, 0x2f
bswap ebx
inc ebx
dec eax
add edi, 0xbb
or ebx, 0xcb
rcl edx, 0xb0
sub eax, 0xaf
mov edx, 0x59
sub ebx, 0x85
ror ebx, 0xf9
rol edi, 0x72
neg edx
dec edx
imul ebx
inc eax
and edx, 0xa0
bswap esi
ror esi, 0x5f
ror ebx, 0x89
inc ebx
sub eax, 0x52
inc eax
dec edi
imul esi
ror edx, 0x12
inc edx
sub eax, 0xaa
not edx
inc edi
not edx
neg ebx
not esi
and edx, 0x58
or esi, 0xc2
ror ebx, 0x32
imul eax
rol eax, 0xad
bswap edx
rcr edi, 6
bswap edi
not eax
not edi
ror eax, 0xa0
sbb eax, 2
dec edx
mov ebx, 0x73
mov eax, 0xeb
bswap edi
imul ebx
inc ebx
dec edi
dec eax
not eax
neg edi
neg esi
imul eax
dec edx
and esi, 0x55
mov esi, 0xf9
inc edi
or ebx, 0x1e
neg esi
neg eax
rcr edx, 1
not edx
inc edx
neg edi
imul edx
bswap edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041d790
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret