Function at 0x417d46
Capabilities:
Authenticate hmac

Disassembly:
sub esp, 0x214
push ebx
push ebp
push esi
push edi
mov di, word [0x42ba34]
mov esi, ecx
movzx edx, di
and edx, 0xa750ce24
mov dword [0x42ba28], edx
cmp byte [esi + 2], 0
jne 0x417d8f
cmp byte [esi + 1], 0
jne 0x417d8f
cmp byte [esi + 4], 0
jne 0x417d8f
cmp byte [esi + 6], 0
jne 0x417d8f
cmp byte [esi + 3], 0
jne 0x417d8f
cmp byte [esi], 0
je 0x4180c5
mov al, dl
or dl, 0x94
xor al, 0xba
mov byte [0x42ba15], dl
movzx ecx, al
mov byte [0x42ba20], al
mov eax, 0x9081
imul ecx, eax
mov eax, 0xd11e
add di, ax
mov al, byte [0x42ba08]
or al, 0xb9
mov word [0x42ba34], di
mov byte [0x42b9f6], al
mov word [0x42ba24], cx
xor ecx, ecx
inc ecx
call fcn.0041e996
mov ebp, eax
test ebp, ebp
je 0x4180b0
movzx ecx, byte [0x42ba20]
mov eax, 0x7a3b
add cx, ax
push 0x1000
mov word [0x42ba24], cx
call fcn.0040570b
mov edi, eax
pop ecx
test edi, edi
je 0x418077
movzx ecx, byte [0x42ba20]
movzx edx, byte [0x42b9f6]
push 0x7c
pop eax
mov word [esp + 0x14], ax
xor eax, eax
mov word [esp + 0x16], ax
movzx eax, byte [0x42b9f6]
add eax, 0x6558351b
and dword [esp + 0x18], 0
mov dword [0x42ba28], eax
mov eax, 0x27fd
imul ecx, eax
mov eax, 0x5b27
sub dx, ax
mov word [0x42ba48], dx
and dl, 0x29
mov byte [0x42ba15], dl
movzx eax, cl
imul eax, eax, 0xf9
mov word [0x42ba34], cx
mov byte [0x42ba20], al
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
push ebp
call fcn.004057dc
mov dx, word [0x42ba34]
mov ecx, 0x4476
xor cx, dx
add esp, 0xc
mov word [0x42ba24], cx
lea ecx, [edx - 8]
or dl, 0x83
mov byte [0x42ba20], cl
mov byte [0x42b9f6], dl
mov ebx, eax
mov eax, dword [0x42ba28]
test ebx, ebx
je 0x41805c
xor eax, 0x3d79
xor ecx, ecx
mov word [0x42ba48], ax
inc ecx
movzx eax, dl
mov edx, 0xf89245cb
imul eax, eax, 0x702ac3fb
push ebx
mov dword [0x42ba28], eax
lea eax, [esp + 0x24]
push eax
call fcn.0041568d
call eax
movzx eax, word [0x42ba24]
mov ecx, 0x1dec
and eax, 0x1c188af7
mov dword [0x42ba28], eax
movzx eax, byte [0x42b9f6]
and ax, cx
mov word [0x42ba08], ax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
push 0
call fcn.004057dc
movzx ecx, word [0x42ba24]
add esp, 0xc
or ecx, 0x98aff3d3
mov edx, 0x5060ff33
mov dword [0x42ba28], ecx
xor ecx, ecx
inc ecx
push 0x800
push edi
push eax
call fcn.0041568d
call eax
test eax, eax
je 0x418021
mov eax, 0x45b8
add word [0x42ba08], ax
movzx eax, byte [0x42ba20]
imul eax, eax, 0x34
push edi
mov byte [0x42ba20], al
mov al, byte [0x42b9f6]
or al, 0xc8
mov byte [0x42ba15], al
call fcn.0040581e
mov dx, word [0x42ba24]
mov ebx, eax
pop ecx
mov cl, dl
mov eax, 0x19a1
or cl, 0x49
mov byte [0x42b9f6], cl
mov cx, dx
sub cx, ax
movzx eax, word [edi + ebx*2 - 2]
mov word [0x42ba08], cx
cmp eax, 0x5c
je 0x417fb9
cmp eax, 0x2f
jne 0x41800b
movzx eax, byte [0x42ba20]
sub cl, 0x54
mov dword [esp + 0x1c], 0xc656
or ax, word [esp + 0x1c]
mov word [0x42ba34], ax
movzx eax, word [0x42ba48]
imul eax, eax, 0x85b7651b
mov byte [0x42b9f6], cl
movzx ecx, word [0x42ba48]
mov dword [0x42ba28], eax
mov eax, 0xf37
imul ecx, eax
xor eax, eax
mov word [edi + ebx*2 - 2], ax
mov word [0x42ba48], cx
or dl, 0x36
mov ecx, esi
mov byte [0x42ba15], dl
lea edx, [esp + 0x20]
push edi
call fcn.004180d0
pop ecx
mov ax, word [0x42ba34]
mov ecx, 0xfd
sub ax, cx
mov ecx, 0xba26
or ax, cx
mov word [0x42ba08], ax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
push 0
call fcn.004057dc
mov dl, byte [0x42b9f6]
add esp, 0xc
jmp 0x417eae
or dl, 0x50
or eax, 0xc84c
push edi
mov byte [0x42ba15], dl
mov word [0x42ba24], ax
call fcn.004056f0
pop ecx
mov ecx, dword [0x42ba28]
mov edx, 0x1934
mov al, cl
and ecx, 0x6cfa
or al, 0x83
mov word [0x42ba24], cx
mov byte [0x42ba15], al
mov ax, word [0x42ba48]
and ax, dx
push ebp
mov word [0x42ba34], ax
call fcn.004056f0
pop ecx
jmp 0x4180c5
movzx eax, byte [0x42ba20]
mov ecx, 0x362b
sub ax, cx
mov word [0x42ba24], ax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x214
ret