Function at 0x4337e0
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x50
call fcn.004136c0
sub esp, 8
mov ecx, esp
push eax
mov ebx, esp
sub esp, 8
mov dword [ebp - 0x44], esp
push eax
mov dword [ebp - 0x48], esp
sub esp, 8
mov esi, esp
push eax
mov dword [ebp - 0x4c], esp
sub esp, 8
mov dword [ebp - 0x14], esp
push eax
mov dword [ebp - 0x50], esp
sub esp, 8
mov dword [ebp - 0x18], esp
push eax
mov dword [ebp - 0x54], esp
sub esp, 8
mov dword [ebp - 0x1c], esp
push eax
mov dword [ebp - 0x58], esp
sub esp, 8
mov eax, esp
push eax
mov dword [ebp - 0x5c], esp
mov dl, byte [ebx]
mov byte [ebp - 0x2c], dl
mov byte [ecx], 0xf8
mov byte [ecx + 1], 0xf9
mov byte [ecx + 2], 0xf6
mov byte [ecx + 3], 0xb7
mov edx, 4
mov byte [ecx + edx], 0
add edx, 1
cmp edx, 6
jne 0x433849
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], eax
xor ebx, ebx
cmp ebx, 6
jae 0x4338cb
movzx edi, byte [ecx + ebx]
mov esi, ebx
xor esi, 0x50ffd02a
mov edx, ebx
shl edx, 1
and edx, 0x5e005faa
sub edx, esi
mov esi, edi
xor esi, 0x338cc4aa
mov eax, edx
xor eax, 0x338cc4aa
xor edi, 0xcc733b55
and edi, eax
xor edx, 0xcc733b55
and esi, edx
or edi, esi
mov edx, edi
add edx, 1
mov eax, edi
xor eax, 0xffffffff
or eax, 0x94ff10d1
add edx, eax
or edi, 0x94ff10d1
add edx, edi
mov eax, edx
xor eax, 0x44
shl edx, 1
and edx, 0x76
sub edx, eax
add dl, 0x45
mov byte [ecx + ebx], dl
add ebx, 1
jmp 0x43385d
mov eax, dword [ebp - 0x48]
mov al, byte [eax]
mov byte [ebp - 0x28], al
mov eax, dword [ebp - 0x44]
mov byte [eax], 0xf8
mov byte [eax + 1], 0xf9
mov byte [eax + 2], 0xf6
mov byte [eax + 3], 0xb7
mov ecx, 4
mov byte [eax + ecx], 0
add ecx, 1
cmp ecx, 6
jne 0x4338ea
xor ecx, ecx
mov esi, dword [ebp - 0x20]
cmp ecx, 6
jae 0x43396e
movzx edx, byte [eax + ecx]
mov eax, ecx
xor eax, 0x50ffd02a
mov edi, ecx
shl edi, 1
and edi, 0x5e005faa
sub edi, eax
mov esi, edx
xor esi, 0x338cc4aa
mov eax, edi
xor eax, 0x338cc4aa
xor edx, 0xcc733b55
and edx, eax
xor edi, 0xcc733b55
and esi, edi
or edx, esi
mov esi, dword [ebp - 0x20]
mov ebx, edx
add ebx, 1
mov eax, edx
xor eax, 0xffffffff
or eax, 0x94ff10d1
add ebx, eax
or edx, 0x94ff10d1
add ebx, edx
mov eax, ebx
xor eax, 0x44
shl ebx, 1
and ebx, 0x76
sub ebx, eax
mov eax, dword [ebp - 0x44]
add bl, 0x45
mov byte [eax + ecx], bl
add ecx, 1
jmp 0x4338fb
mov eax, dword [eax]
xor ecx, ecx
cpuid
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x4c]
mov al, byte [eax]
mov byte [ebp - 0x30], al
mov byte [esi], 0x7a
mov byte [esi + 1], 0x40
mov byte [esi + 2], 0x43
mov byte [esi + 3], 0x47
mov eax, 4
mov byte [esi + eax], 0
add eax, 1
cmp eax, 6
jne 0x433993
xor ebx, ebx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
cmp ebx, 6
jae 0x433a03
movzx ecx, byte [esi + ebx]
mov edx, ebx
add edx, 0x7cd3a45d
mov eax, ebx
add eax, 0x5d
and eax, ecx
mov edi, eax
and edi, 0xfd
mov esi, eax
and esi, 2
xor esi, 2
imul esi, edi
mov edi, eax
and edi, 2
or eax, 2
imul eax, edi
add eax, esi
mov esi, dword [ebp - 0x20]
add edx, ecx
mov ecx, dword [ebp - 0x18]
sub edx, eax
mov eax, edx
shl eax, 1
and eax, 0x5c
xor edx, 0xd1
sub eax, edx
mov edx, dword [ebp - 0x14]
mov byte [esi + ebx], al
add ebx, 1
jmp 0x4339a7
mov eax, dword [ebp - 0x10]
cmp eax, dword [esi]
sete al
test al, 1
mov ebx, dword [ebp - 0x1c]
jne 0x433c2c
jmp 0x433a18
mov eax, dword [ebp - 0x50]
mov al, byte [eax]
mov byte [ebp - 0x34], al
mov byte [edx], 0xf9
mov byte [edx + 1], 0xe6
mov byte [edx + 2], 0xea
mov byte [edx + 3], 0xf4
mov eax, 4
mov byte [edx + eax], 0
add eax, 1
cmp eax, 7
jne 0x433a34
xor eax, eax
cmp eax, 7
jae 0x433ab2
movzx ecx, byte [edx + eax]
mov edx, eax
shl edx, 1
and edx, 0x334572ea
mov esi, eax
xor esi, 0x99a2b975
add esi, edx
xor esi, ecx
mov edx, esi
shl edx, 1
and edx, 2
mov edi, 1
sub edi, esi
mov ecx, 1
sub ecx, esi
and edi, ecx
mov ebx, 0x49
sub ebx, esi
and ebx, 0xfe
or edi, 0xfe
xor ebx, edi
add ebx, edx
mov ecx, dword [ebp - 0x14]
mov byte [ecx + eax], bl
mov ebx, dword [ebp - 0x1c]
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
and edx, ecx
or eax, ecx
mov ecx, dword [ebp - 0x18]
xor eax, 1
add eax, edx
mov edx, dword [ebp - 0x14]
jmp 0x433a42
mov eax, dword [ebp - 0x10]
cmp eax, dword [edx]
je 0x433c2c
mov eax, dword [ebp - 0x54]
mov al, byte [eax]
mov byte [ebp - 0x38], al
mov byte [ecx], 0x4e
mov byte [ecx + 1], 0x58
mov byte [ecx + 2], 0x68
mov byte [ecx + 3], 0x6e
mov eax, 4
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 8
jne 0x433ad9
xor eax, eax
cmp eax, 8
jae 0x433b2b
movzx esi, byte [ecx + eax]
mov edx, eax
add edx, 0x2c8e0e35
mov ecx, 0xca
sub ecx, eax
mov edi, 0xca
sub edi, eax
and ecx, edi
xor ecx, 0xffffffff
mov edi, esi
and edi, ecx
shl edi, 1
mov ecx, edx
and ecx, esi
shl ecx, 1
xor edx, esi
add edx, ecx
mov ecx, dword [ebp - 0x18]
sub edx, edi
add dl, 0xf7
mov byte [ecx + eax], dl
add eax, 1
jmp 0x433ae7
mov eax, dword [ecx]
jmp 0x433b2f
cmp dword [ebp - 0x10], eax
sete al
jmp 0x433b37
jmp 0x433b39
test al, 1
jne 0x433c2c
jmp 0x433b43
mov eax, dword [ebp - 0x58]
mov al, byte [eax]
mov byte [ebp - 0x3c], al
mov byte [ebx], 0xb6
mov byte [ebx + 1], 0x83
mov byte [ebx + 2], 0xad
mov byte [ebx + 3], 0xdb
mov eax, 4
mov byte [ebx + eax], 0
add eax, 1
cmp eax, 6
jne 0x433b5f
xor eax, eax
cmp eax, 6
jae 0x433ba7
movzx ecx, byte [ebx + eax]
mov edx, 0xef
sub edx, eax
or edx, ecx
mov ebx, 0xef
sub ebx, eax
and ebx, ecx
xor edx, 0xffffffff
or ebx, edx
add bl, 0xb0
mov ecx, dword [ebp - 0x1c]
mov byte [ecx + eax], bl
mov ebx, dword [ebp - 0x1c]
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x433b6d
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebx]
je 0x433c2c
mov eax, dword [ebp - 0x5c]
mov al, byte [eax]
mov byte [ebp - 0x40], al
mov ecx, dword [ebp - 0x24]
mov byte [ecx], 0x23
mov byte [ecx + 1], 0x20
mov byte [ecx + 2], 0x36
mov byte [ecx + 3], 0x36
mov eax, 4
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 8
jne 0x433bcd
xor eax, eax
cmp eax, 8
jae 0x433c20
mov edi, dword [ebp - 0x24]
movzx esi, byte [edi + eax]
mov edx, 0x5a
sub edx, eax
mov ecx, 0x5a
sub ecx, eax
and edx, ecx
mov ecx, esi
xor ecx, 0xffffffff
mov ebx, 0xc20f4e5a
sub ebx, eax
and ebx, ecx
mov ecx, ebx
shl ecx, 1
xor ecx, 0xffffffff
add ebx, ecx
xor esi, 0xffffffff
or edx, esi
and ebx, edx
add bl, 0xc7
mov byte [edi + eax], bl
add eax, 1
jmp 0x433bdb
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
cmp dword [ebp - 0x10], eax
je 0x433c2c
jmp 0x433c30
mov al, 1
jmp 0x433c34
xor eax, eax
jmp 0x433c34
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret