Function at 0x41f2e9
Capabilities:
Authenticate hmac
Execute anti-debugging instructions

Disassembly:
popfd
mov ecx, ecx
je 0x42d344
jne 0x42d344
jmp 0x42d342
pushfd
add ebp, 0x31
popfd
lea ebp, [ebp - 0x31]
add dword [esp], 0x2bac2
xchg dword [esp], ebx
pushfd
add ebp, 7
popfd
lea ebp, [ebp - 7]
xchg dword [esp + 4], ebx
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x6d]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg dword [esp], ebx
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x6c]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
popfd
push ebp
mov ebp, esp
leave
jmp 0x44ad58
add byte [eax], al
popfd
pushfd
add ebp, 8
popfd
lea ebp, [ebp - 8]
je 0x4326dc
jne 0x4326dc
jmp 0x4326da
lock add byte [ebp + 0x24448b50], bl
add al, 0x8d
inc eax
push edi
popfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x57]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
je 0x438a50
jne 0x438a50
jmp 0x438a4e
add byte [eax], al
cmp dword [esi - 4], 0
mov ecx, ecx
jbe 0x438a50
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, dword [esi - 4]
xchg dword [esp], edx
xchg edi, eax
mov edi, dword [esi]
push eax
xchg edi, eax
pop edi
add eax, edi
pushfd
add ebp, 0x32
popfd
lea ebp, [ebp - 0x32]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
xchg ecx, eax
mov ecx, dword [esi - 0xc]
push eax
xchg ecx, eax
pop ecx
add eax, dword [ebp + 8]
push edi
mov edi, esi
pop edi
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, eax
mov eax, dword [esp]
lea eax, [esi + 8]
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x20]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
pushfd
push esi
mov esi, ecx
pop esi
call 0x42d3c6
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x64]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
add dword [esp], 0xfffffb72
xchg dword [esp], ecx
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x7b]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
xchg dword [esp + 4], ecx
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x4f]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
xchg dword [esp], ecx
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x47]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
popfd
lea edi, [edi]
jmp fcn.004416c4
pushfd
pushfd
add ebp, 0x56
popfd
lea ebp, [ebp - 0x56]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], eax
mov eax, edx
mov edx, dword [esp]
rdtsc
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x4d]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
and eax, 1
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x4e]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
xchg edi, edx
xchg dword [esp], edi
xchg edi, edx
lea esp, [esp + 4]
xchg edi, eax
xchg dword [esp], edi
xchg edi, eax
lea esp, [esp + 4]
je 0x44a9cc
jne 0x445048
jmp 0x44a9ca
add byte [eax], al
cmp dword [esi - 4], 0
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x73]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
jbe 0x443bb4
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, dword [esi - 4]
xchg dword [esp], ecx
xchg ecx, eax
mov ecx, dword [esi]
push eax
xchg ecx, eax
pop ecx
add eax, edi
push ebp
mov ebp, esp
leave
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, eax
mov eax, dword [esp]
xchg ecx, eax
mov ecx, dword [esi - 0xc]
push eax
xchg ecx, eax
pop ecx
add eax, dword [ebp + 8]
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x16]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, eax
mov eax, dword [esp]
lea eax, [esi + 8]
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x38]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
pushfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x12]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
call 0x432795
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x37]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
add dword [esp], 0xffffa7a3
xchg dword [esp], ecx
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x14]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg dword [esp + 4], ecx
pushfd
add ebp, 0x79
popfd
lea ebp, [ebp - 0x79]
xchg dword [esp], ecx
mov ebx, ebx
popfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x4c]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
jmp fcn.004416c4
add byte [eax], al
movzx eax, word [edi + 6]
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x70]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
inc ebx
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x10]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
add esi, 0x24
push ebx
mov ebx, dword [esp + 0xc]
pop ebx
cmp ebx, eax
pushfd
add ebp, 0x67
popfd
lea ebp, [ebp - 0x67]
jl 0x4326dc
xchg esi, eax
xchg dword [esp], eax
xchg esi, eax
lea esp, [esp + 4]
jmp 0x443408
pop ds
mov dl, 0xf
mov bh, 0x47
push es
movzx eax, word [edi + 6]
push ebp
mov ebp, esp
leave
inc ebx
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x5e]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
add esi, 0x24
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x13]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
cmp ebx, eax
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0xc]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
jl 0x4326dc
xchg esi, eax
xchg dword [esp], eax
xchg esi, eax
lea esp, [esp + 4]
jmp 0x443408
popfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x55]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
je 0x4429c8
jne 0x4429c8
jmp 0x4429c6
mov edx, 0x558b92da
or byte [eax - 0x6e], dl
xchg edx, eax
mov edx, dword [ebp + 8]
push eax
xchg edx, eax
pop edx
xchg edx, ebx
mov ebx, dword [eax + 0x3c]
push edx
xchg edx, ebx
pop ebx
add edx, eax
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x62]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
xor eax, eax
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x7d]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
inc eax
pushfd
add ebp, 0x72
popfd
lea ebp, [ebp - 0x72]
movzx ecx, word [edx + 0x14]
pushfd
add ebp, 0x2d
popfd
lea ebp, [ebp - 0x2d]
mov word [edx + 6], ax
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x57]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
and dword [ecx + edx + 0x24], 0
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x36]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
xchg dword [ecx + edx + 0x3c], eax
mov eax, 0x3d6c53c3
push dword [ecx + edx + 0x3c]
xchg dword [ecx + edx + 0x3c], eax
pop eax
pushfd
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 6]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
push 0x5d6c5383
push eax
mov eax, dword [esp + 4]
xor dword [ecx + edx + 0x3c], eax
mov eax, dword [esp]
lea esp, [esp + 8]
popfd
pushfd
add ebp, 0xb
popfd
lea ebp, [ebp - 0xb]
xchg ecx, eax
mov ecx, dword [edi + 0x22]
push eax
xchg ecx, eax
pop ecx
xchg edx, edi
xchg dword [esp], edx
xchg edx, edi
lea esp, [esp + 4]
xchg dword [ecx + edx + 0x20], esi
mov esi, eax
push dword [ecx + edx + 0x20]
xchg dword [ecx + edx + 0x20], esi
pop esi
xor eax, eax
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x3b]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
xchg ecx, ebx
xchg dword [esp], ecx
xchg ecx, ebx
lea esp, [esp + 4]
xchg ebx, ebp
xchg dword [esp], ebx
xchg ebx, ebp
lea esp, [esp + 4]
ret
pushfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x6d]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], eax
mov eax, edx
mov edx, dword [esp]
rdtsc
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x5c]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
and eax, 1
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x10]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
xchg ecx, edx
xchg dword [esp], ecx
xchg ecx, edx
lea esp, [esp + 4]
xchg ecx, eax
xchg dword [esp], ecx
xchg ecx, eax
lea esp, [esp + 4]
je 0x42c15c
jne 0x443220
jmp 0x42c15a
popfd
lea eax, [eax]
je 0x449b5c
jne 0x449b5c
jmp 0x449b5a
pushfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x7e]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
xchg ecx, edx
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, edx
mov edx, dword [esp]
rdtsc
push ecx
mov ecx, eax
pop ecx
and eax, 1
lea esi, [esi]
xchg edi, edx
xchg dword [esp], edi
xchg edi, edx
lea esp, [esp + 4]
xchg ebx, eax
xchg dword [esp], ebx
xchg ebx, eax
lea esp, [esp + 4]
je 0x42a308
jne 0x41eac8
jmp 0x42a306
add byte [eax], al
xchg ecx, eax
mov ecx, dword [ebp + 8]
push eax
xchg ecx, eax
pop ecx
xchg edx, ebx
mov ebx, dword [eax + 0x3c]
push edx
xchg edx, ebx
pop ebx
add edx, eax
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x59]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xor eax, eax
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0xb]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
inc eax
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x35]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
movzx ecx, word [edx + 0x14]
mov edx, edx
mov word [edx + 6], ax
push ecx
mov ecx, eax
pop ecx
and dword [ecx + edx + 0x24], 0
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x55]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
xchg dword [ecx + edx + 0x3c], ebx
mov ebx, 0x3b838dc3
push dword [ecx + edx + 0x3c]
xchg dword [ecx + edx + 0x3c], ebx
pop ebx
pushfd
push edi
mov edi, ecx
pop edi
push 0x5b838d83
push eax
mov eax, dword [esp + 4]
xor dword [ecx + edx + 0x3c], eax
mov eax, dword [esp]
lea esp, [esp + 8]
popfd
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x58]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
xchg edx, eax
mov edx, dword [edi + 0x22]
push eax
xchg edx, eax
pop edx
xchg ecx, edi
xchg dword [esp], ecx
xchg ecx, edi
lea esp, [esp + 4]
xchg dword [ecx + edx + 0x20], edi
mov edi, eax
push dword [ecx + edx + 0x20]
xchg dword [ecx + edx + 0x20], edi
pop edi
xor eax, eax
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x34]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg ecx, ebx
xchg dword [esp], ecx
xchg ecx, ebx
lea esp, [esp + 4]
xchg edi, ebp
xchg dword [esp], edi
xchg edi, ebp
lea esp, [esp + 4]
ret
add byte [eax], al
popfd
pushfd
add ebp, 0x1e
popfd
lea ebp, [ebp - 0x1e]
je 0x443408
jne 0x443408
jmp 0x443406
call fcn.004332e0
clc
out dx, eax
pop edi
xchg esp, eax
pop edx
jo 0x44adca
inc esp
cmp al, byte [eax]
add byte [edi + 0x24648deb], al
cld
mov dword [esp], ebx
mov ebx, ebp
mov ebp, dword [esp]
xchg ebp, ecx
mov ecx, esp
push ebp
xchg ebp, ecx
pop ecx
xchg ebx, eax
lea esp, [esp - 4]
mov dword [esp], eax
mov eax, ebx
mov ebx, dword [esp]
xchg edx, edi
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, edi
mov edi, dword [esp]
xchg edi, esi
mov esi, dword [ebp + 0xc]
push edi
xchg edi, esi
pop esi
xor eax, eax
push edx
mov edx, dword [esp + 5]
pop edx
xor ebx, ebx
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 6]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
cmp ax, word [edi + 6]
mov edx, edx
jae 0x42dda0
adc ecx, 0x2f
invalid
xchg edx, esi
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, esi
mov esi, dword [esp]
lea esi, [edi + 0x6a]
push edx
mov edx, dword [esp + 4]
lea edx, [edx]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
jmp 0x4457c0