Function at 0x479922
Capabilities:
Authenticate hmac

Disassembly:
sub esp, 0x54
mov esp, dword [eax + eax*2]
insb byte es:[edi], dx
push ebx
push ss
pop esp
and al, 0x60
mov ebp, dword [esp + 0xc]
insb byte es:[edi], dx
push esi
mov esi, dword [eax + 8]
push edi
xor edi, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], 0xffff84fd
mov dword [esp + 0x74], edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x6c], edi
cmp ebp, edi
je 0x50479c7a
cmp dword [esp + 0x70], edi
je 0x50479c7a
mov edx, dword [esp + 0x78]
cmp edx, edi
je 0x479c7a
push ebp
call 0x8543550f
sal byte [ebp + 0x75], 0x1e
mov esp, dword [eax + edx]
push 0xbc68016a
lodsd eax, dword [esi]
dec eax
add byte [edi], dl
add dl, byte [ecx - 0x18]
adc eax, 0x5e8bffe8
pop ebp
pop ebp
add dword [ebx + 0x18c254c4], 0x458b53
mov ebp, dword [eax + 8]
cmp ebp, edi
jne 0x4799cc
mov esp, dword [eax + edx]
push 0xc68016a
stosb byte es:[edi], al
dec eax
add byte [edi], dl
add al, 0x51
call 0x8c4781af
pop esi
pop ebp
pop ebp
add dword [ebx + 0x18c254c4], 0x4e85253
jns 0x4799ca
sbb byte [ebx + 0x52], dl
push edx
call 0x8a4112d6
les eax, [eax*4 + 0x5a74c085]
mov esp, eax
add al, 0x85
test eax, eax
je 0x479a33
mov edi, dword [esp + 0x78]
call 0x8a40fff1
inc esp
and al, 0x30
insb byte es:[edi], dx
mov edx, dword [ebp + 0x50]
mov edx, dword [edx + 0x14]
lea esp, [esp + ebp]
je 0x479a41
push 0x8383045e
push 1
inc esp
and al, 0x10
js 0x479a4e
adc byte [eax + 0x51], bh
push 0x482a60
push ebp
call edx
inc esp
clc
test edi, edi
jge 0x479a37
jl 0x479a31
and byte [eax + edx*2 - 0x18], ch
mov edi, 0x448bf99d
dec esp
and al, 0x6c
les eax, [eax*4 + 0x100]
push 0
push edi
push ecx
call 0x8c4781af
pop esi
pop ebp
pop ebp
add dword [ebx + 0x18c254c4], 0x247c8953
sbb byte [ebx - 0x77], dl
jl 0x479a5a
mov dword [esp + 0x74], edi
je 0x479a6b
xor ecx, ecx
leave
lea eax, [esi + 1]
add dl, byte [eax]
add byte [ebx + 0xfe2f700], al
nop
sal edi, 0xd9
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call 0x8a410f65
les eax, [eax*4 + 0x24448933]
xor byte [eax - 0x7b], bh
stc
mov esp, eax
add al, 0x85
xor ecx, dword [ecx + 0x78302444]
test esi, esi
jbe 0x479ab3
div byte [esi + 0x56]
mov ecx, esi
shl ecx, 4
lea edx, [ecx + eax - 0x10]
mov dword [esp], esp
adc al, 0x8b
inc esp
inc eax
jl 0x4799fa
dec eax
add al, 0x8b
and al, 0x24
adc al, 0x8b
add al, 0xb9
push edx
push eax
call fcn.00476a8b
inc esp
or byte [ebp - 0x7cf38a40], al
insb byte es:[edi], dx
and al, 0x14
adc byte [edi + 0x3b], al
invalid
je 0x479ad9
adc byte [eax - 0x75], bh
sti
and edi, 0xc
mov dword [esp + ecx], esp
sub byte [esp + ecx*2 + 0x24], al
and byte [eax + edx - 0x73], dh
and al, 0x10
sbb byte [esi], al
inc esp
and al, 0x2c
add byte [eax], al
add byte [esi + 0x44], bl
and al, 0x10
and al, 0x8d
inc esp
and al, 0x30
push eax
call dword [0x5f002434]
xor byte [eax - 1], dl
adc eax, 0x5f002434
push 0x20
inc esp
and al, 0x10
inc esp
add byte [ebx + 0x51], dl
call fcn.004131f1
mov edx, dword [ebp]
add esp, 0xc
lea esp, [esp + ebp]
sbb al, 0x50
lea esp, [eax + edx]
inc esp
push ecx
lea esp, [eax]
cmp byte [eax - 0x75], dl
test byte [eax + eax*4], ah
add byte [ebx + 0x10244c83], al
sub al, 0x51
mov ecx, dword [edx + 0x18]
push ebx
push 0x800
push 0x482a60
push eax
push ebp
call ecx
cmp eax, 0x80020003
jne 0x479b69
test di, di
je 0x479ba2
mov edx, dword [ebp + 0x50]
mov edx, dword [edx + 0x18]
lea esp, [esp + ebp]
sbb al, 0x50
lea esp, [eax + edx]
inc esp
push ecx
lea esp, [eax]
cmp byte [eax - 0x75], dl
ret
ror byte [edi], 0x7d
pop ecx
cmp eax, 0x80020009
jne 0x479ba2
mov esp, dword [eax + edx]
push 0x686a016a
inc esp
and al, 0xc
dec eax
push eax
push 0x80020009
push ecx
call fcn.004781af
inc esp
sbb eax, 0x5f00242c
lea edx, [eax + edx + 0x30]
push edx
mov dword [esp + 0x14], eax
call ebx
jmp 0x5e479c2f
mov edx, dword [eax + edx + 0x68]
push 1
push 0x68
push 0
push eax
push edx
call fcn.004781af
inc esp
sbb eax, 0x5f00242c
lea edx, [eax + edx + 0x30]
push edx
mov dword [esp + 0x14], eax
call ebx
jmp 0x479c2f
test esi, esi
jbe 0x479c4e
mov edi, dword [esp + 0x78]
cmp word [edi], 0xc
jne 0x479c43
mov eax, dword [edi + 8]
push eax
call ebx
push edi
call ebx
add edi, 0x10
sub esi, 1
jne 0x479c37
je 0x479c74
adc byte [eax + 0x51], bh
call 0x8c4137d4
inc esp
inc esp
and al, 0x70
les eax, [eax*4 + 0x974c085]
push eax
call 0x8e4137d4
les eax, [esp + eax]
mov esp, dword [eax + esi]
adc byte [esi + 0x5d], bl
add esp, 0x54
ret 0x5318
mov edx, dword [eax + edx + 0x68]
push 1
push 0x48aa0c
push edi
add byte [ecx], al
push edx
call 0x8c4781af
pop esi
pop ebp
pop ebp
add dword [ebx + 0x18c254c4], 0x94ec8153
push ebx
sub esp, 0x5e000094