Function at 0x41789a
Capabilities:
Authenticate hmac

Disassembly:
movzx edx, byte [0x42ba0c]
sub esp, 0x214
mov eax, edx
and eax, 0xfda6
mov word [0x42b9d4], ax
push ebx
push ebp
push esi
mov esi, ecx
push edi
cmp byte [esi + 2], 0
jne 0x4178e1
cmp byte [esi + 1], 0
jne 0x4178e1
cmp byte [esi + 4], 0
jne 0x4178e1
cmp byte [esi + 6], 0
jne 0x4178e1
cmp byte [esi + 3], 0
jne 0x4178e1
cmp byte [esi], 0
je 0x417c6c
movzx ecx, word [0x42b9e8]
imul eax, ecx, 0xff95
sub dword [0x42b9d8], 0x388a1106
mov word [0x42b9f0], ax
mov al, byte [0x42ba08]
sub al, 0x6a
mov byte [0x42ba0b], al
imul eax, edx, 0x891a
xor eax, 0xeaef
mov word [0x42b9e8], ax
imul eax, ecx, 0x7729
xor ecx, ecx
inc ecx
mov word [0x42b9d4], ax
call fcn.0041e241
mov ebp, eax
test ebp, ebp
je 0x417c5d
mov bx, word [0x42ba08]
mov edx, 0xb61d
imul eax, dword [0x42b9d8], 0x522d
xor byte [0x42ba0c], 0x37
movzx ecx, bx
and bl, 0xd0
imul ecx, edx
or bl, 0x50
push 0x1000
mov word [0x42ba08], ax
mov byte [0x42ba0b], bl
mov word [0x42b9f0], cx
call fcn.0040570b
pop ecx
mov cx, word [0x42b9d4]
mov edi, eax
mov eax, 0x7a0d
sub cx, ax
mov word [0x42b9f0], cx
test edi, edi
je 0x417c24
push 0x7c
pop eax
mov word [esp + 0x14], ax
mov dx, cx
xor eax, eax
and dword [esp + 0x18], 0
mov word [esp + 0x16], ax
mov eax, 0x7b20
and dx, ax
movzx eax, dx
xor eax, 0xee95d28
mov word [0x42b9d4], dx
mov dword [0x42b9d8], eax
mov eax, 0xf174
xor cx, ax
mov al, dl
or al, 0x4c
mov word [0x42b9e8], cx
mov byte [0x42ba0c], al
add dl, 0x43
mov eax, ecx
mov byte [0x42ba0b], dl
xor eax, 0xceaf
mov word [0x42b9f0], ax
imul eax, ecx, 0x4af7
mov word [0x42ba08], ax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
push ebp
call fcn.004057dc
mov bx, word [0x42ba08]
mov edx, eax
movzx ecx, bx
add esp, 0xc
sub ecx, 0x2be7789c
mov dword [0x42b9d8], ecx
test edx, edx
je 0x417bf5
mov cl, byte [0x42ba0c]
movzx eax, cl
sub cl, 0x75
mov dword [esp + 0x1c], 0xe66
add ax, word [esp + 0x1c]
mov word [0x42b9d4], ax
mov eax, 0x802
mov byte [0x42ba0b], cl
xor ax, bx
mov ecx, 0x6b02
and ax, cx
xor ecx, ecx
mov word [0x42b9e8], ax
inc ecx
push edx
lea eax, [esp + 0x24]
mov edx, 0xf89245cb
push eax
call fcn.00415084
call eax
mov eax, 0x1f28
xor ax, word [0x42b9f0]
mov word [0x42ba08], ax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
push 0
call fcn.004057dc
mov cl, byte [0x42ba08]
add esp, 0xc
add cl, 0x58
mov edx, 0x5060ff33
mov byte [0x42ba0b], cl
xor ecx, ecx
inc ecx
push 0x800
push edi
push eax
call fcn.00415084
call eax
test eax, eax
je 0x417bb9
mov cx, word [0x42b9e8]
movzx eax, byte [0x42ba0b]
sub eax, 0x6f374a7d
mov dword [0x42b9d8], eax
lea eax, [ecx - 7]
movzx ecx, cx
mov byte [0x42ba0c], al
mov eax, 0x8d90
imul ecx, eax
push edi
mov word [0x42b9e8], cx
call fcn.0040581e
movzx edx, byte [0x42ba0c]
dec eax
mov bx, word [0x42b9e8]
pop ecx
mov ecx, 0x90de
mov dword [esp + 0x1c], eax
movzx eax, word [edi + eax*2]
imul edx, ecx
mov word [0x42b9f0], dx
cmp eax, 0x5c
je 0x417b4c
cmp eax, 0x2f
jne 0x417b92
mov ecx, 0x6cc
add cx, bx
movzx eax, cx
imul edx, eax, 0x4bd4b60
mov eax, 0x9985
mov word [0x42b9f0], cx
movzx ecx, cx
imul ecx, eax
mov dword [0x42b9d8], edx
lea eax, [edx - 0x869]
mov word [0x42ba08], cx
mov word [0x42b9d4], ax
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov word [edi + eax*2], cx
or bl, 0x76
lea edx, [esp + 0x20]
movzx eax, bl
mov ecx, 0x1fb
sub ax, cx
mov byte [0x42ba0b], bl
push edi
mov ecx, esi
mov word [0x42b9e8], ax
call fcn.00417c77
pop ecx
movzx ecx, word [0x42b9d4]
mov eax, 0x6e63
imul ecx, eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
push 0
mov word [0x42b9f0], cx
call fcn.004057dc
mov edx, eax
add esp, 0xc
test edx, edx
je 0x417bf5
mov bx, word [0x42ba08]
jmp 0x417a40
movzx eax, byte [0x42ba0b]
mov ecx, 0x1524
and ax, cx
mov word [0x42ba08], ax
mov al, byte [0x42b9d4]
add al, 0x36
push edi
mov byte [0x42ba0c], al
call fcn.004056f0
pop ecx
mov cx, word [0x42b9f0]
movzx eax, byte [0x42ba0c]
mov edx, 0x5bce
movzx ecx, cx
and ax, dx
and ecx, 0x7aa66027
mov word [0x42ba08], ax
push ebp
mov dword [0x42b9d8], ecx
lea eax, [ecx - 0x4e2c]
mov word [0x42b9e8], ax
call fcn.004056f0
pop ecx
jmp 0x417c6c
movzx eax, byte [0x42ba0c]
imul eax, eax, 0x7f
mov byte [0x42ba0b], al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x214
ret