Function at 0x1008e1f0
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1009ab60
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0xf4
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov eax, 0x6c98f
mov dword [ebp - 0xbc], 0x5ec7b418
mov dword [ebp - 0xb8], eax
movsx eax, byte [0x100c3145]
cdq
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], edx
movzx ecx, byte [0x100c316f]
mov dword [ebp - 0x5c], ecx
mov dx, word [0x100c31dc]
mov word [ebp - 0x70], dx
mov eax, 0x5dfa
mov word [ebp - 0x1c], ax
mov cx, word [0x100c319c]
mov word [ebp - 0x38], cx
mov dword [ebp - 0x24], 0xd8
mov byte [ebp - 0x14], 0x15
mov edx, dword [0x100c320c]
mov dword [ebp - 0x78], edx
mov eax, dword [0x100c31b0]
mov dword [ebp - 0x7c], eax
mov ecx, dword [0x100c31b8]
mov word [ebp - 0x28], cx
xor edx, edx
mov dword [ebp - 0x50], 0x10d0bd7d
mov dword [ebp - 0x4c], edx
mov eax, 0x7e46
mov word [ebp - 0x20], ax
mov byte [ebp - 0x13], 0x56
xor ecx, ecx
mov dword [ebp - 0x64], 0x2f0a8f60
mov dword [ebp - 0x60], ecx
xor edx, edx
mov dword [ebp - 0x84], 0x94
mov dword [ebp - 0x80], edx
mov eax, dword [0x100c31ac]
mov byte [ebp - 0x15], al
mov dword [ebp - 0x54], 0x5c
mov ecx, 0x8e
mov word [ebp - 0x34], cx
movsx edx, word [0x100c31c8]
mov dword [ebp - 0x2c], edx
movzx ax, byte [str.2OriginalFilename]
mov word [ebp - 0x3c], ax
mov byte [ebp - 0x12], 0xe3
mov cx, word [0x100c31dc]
mov word [ebp - 0x44], cx
movzx dx, byte [0x100c3131]
mov word [ebp - 0x40], dx
mov ax, word [0x100c31b4]
mov byte [ebp - 0x11], al
mov ecx, 0x6e
mov word [ebp - 0x74], cx
mov dword [ebp - 0x9c], 0x2993757a
mov byte [ebp - 0x2d], 0xc7
mov dword [ebp - 0xa8], 0x7c8aa85b
mov edx, 0x50
mov word [ebp - 0x90], dx
movzx eax, word [0x100c31d0]
mov dword [ebp - 0xac], eax
mov eax, dword [0x100c31b8]
cdq
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], edx
xor ecx, ecx
mov dword [ebp - 0xd4], 0x62
mov dword [ebp - 0xd0], ecx
mov edx, dword [0x100c31f0]
mov eax, dword [0x100c31f4]
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xb0], 0xaeea
mov dword [ebp - 0x94], 0x46
mov ecx, 0xffffa842
mov word [ebp - 0x88], cx
mov dword [ebp - 0x98], 0x84
mov byte [ebp - 0x2e], 0xe9
movzx dx, byte [0x100c315b]
mov word [ebp - 0x8c], dx
mov dword [ebp - 0xb4], 0x5b2d0851
mov al, byte [0x100c320c]
mov byte [ebp - 0x2f], al
mov ecx, 9
mov esi, str.AslRegistryGetUInt
lea edi, [ebp - 0x104]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea ecx, [ebp - 0x104]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x78], eax
call dword [sym.imp.USER32.dll_GetCapture]
mov word [ebp - 0x34], ax
movzx edx, byte [ebp - 0x13]
test edx, edx
je 0x1008e5af
cmp dword [0x100c31d8], 0
je 0x1008e5af
movzx eax, byte [ebp - 0x14]
cmp eax, dword [0x100c31b8]
jge 0x1008e4ff
mov dword [ebp - 4], 0
movsx eax, word [ebp - 0x38]
movzx ecx, word [0x100c31a8]
sub eax, ecx
cdq
mov dword [0x100c31e8], eax
mov dword [0x100c31ec], edx
movzx edx, word [ebp - 0x20]
imul eax, edx, 0x36
mov dword [ebp - 0x7c], eax
movsx ecx, word [ebp - 0x28]
imul edx, ecx, 0x7a
mov dword [ebp - 0x54], edx
mov eax, dword [0x100c3208]
imul eax, dword [ebp - 0x2c]
mov dword [0x100c3208], eax
mov ecx, 0x39b20
mov dword [0x100c31f0], 0xb0ca190
mov dword [0x100c31f4], ecx
mov edx, dword [0x101a2860]
mov dword [ebp - 0x5c], edx
jmp 0x1008e4ea
mov dword [ebp - 4], 0xffffffff
jmp 0x1008e4fa
jmp 0x1008e5af
xor edx, edx
mov dword [ebp - 0x64], 0x36
mov dword [ebp - 0x60], edx
mov eax, dword [0x100c31b8]
not eax
cdq
mov ecx, dword [0x100c31e8]
mov esi, dword [0x100c31ec]
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x54]
not edx
imul eax, edx, 0x128b
xor edx, edx
add ecx, eax
adc esi, edx
movsx eax, word [ebp - 0x40]
movzx edx, byte [str.2OriginalFilename]
not edx
imul eax, edx
movzx edx, byte [ebp - 0x13]
sub eax, edx
not eax
cdq
add ecx, eax
adc esi, edx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], esi
movsx eax, byte [ebp - 0x12]
imul ecx, eax, 0x9c
mov byte [0x100c3131], cl
mov edx, dword [ebp - 0x24]
mov eax, 1
imul ecx, eax, 0xd
mov byte [ecx + 0x1043b870], dl
movsx eax, byte [0x100c3145]
cdq
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 0x4c]
push edx
push eax
push esi
push ecx
call fcn.1008eb70
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
movzx edx, word [ebp - 0x1c]
movzx eax, byte [0x100c3132]
add edx, eax
movzx ecx, word [ebp - 0x1c]
add ecx, edx
mov word [ebp - 0x1c], cx
jmp 0x1008e5d6
jmp 0x1008e5ee
jmp 0x1008e5fa
mov dword [0x100c31b0], 0xebc4
movzx edx, word [ebp - 0x20]
mov eax, dword [ebp - 0x24]
imul eax, edx
test eax, eax
jne 0x1008e620
xor ecx, ecx
mov dword [ebp - 0x6c], 1
mov dword [ebp - 0x68], ecx
jmp 0x1008e628
xorps xmm0, xmm0
movlpd qword [ebp - 0x6c], xmm0
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
mov dword [0x100c31f0], edx
mov dword [0x100c31f4], eax
movsx ecx, word [0x100c31dc]
movzx edx, word [ebp - 0x1c]
xor ecx, edx
movsx eax, word [0x100c31dc]
add eax, ecx
mov word [0x100c31dc], ax
movsx ecx, byte [ebp - 0x15]
imul edx, ecx, 0x3bce
movzx eax, word [0x100c31d0]
or eax, edx
mov word [0x100c31d0], ax
mov dword [ebp - 0x48], 0
jmp 0x1008e680
mov ecx, dword [ebp - 0x48]
add ecx, 1
mov dword [ebp - 0x48], ecx
cmp dword [ebp - 0x48], 0x312
jge 0x1008e758
movzx edx, byte [ebp - 0x11]
test edx, edx
jne 0x1008e69e
mov dword [ebp - 0x58], 1
jmp 0x1008e6a5
mov dword [ebp - 0x58], 0
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, dword [0x100c31e8]
mov esi, dword [0x100c31ec]
push edx
push eax
push esi
push ecx
call fcn.1008eb70
mov ecx, eax
mov esi, edx
movzx eax, byte [ebp - 0x11]
add eax, dword [ebp - 0x58]
cdq
push edx
push eax
push esi
push ecx
call fcn.1008eb70
mov ecx, eax
not ecx
mov esi, dword [0x100c31f0]
sub esi, 0x4a97
movsx eax, word [0x100c31c8]
cdq
or esi, eax
and ecx, esi
mov dword [ebp - 0x5c], ecx
movsx eax, byte [ebp - 0x12]
cdq
mov ecx, dword [0x100c3200]
mov esi, dword [0x100c3204]
push esi
push ecx
push edx
push eax
call fcn.1008eb70
mov ecx, eax
movsx eax, byte [ebp - 0x12]
cdq
sub eax, ecx
mov byte [ebp - 0x12], al
mov edx, dword [ebp - 0x2c]
xor edx, 0xc92eb96a
mov byte [ebp - 0x14], dl
mov eax, dword [0x101a2860]
mov dword [0x100c31b0], eax
mov ecx, dword [ebp - 0x24]
xor ecx, dword [0x100c31cc]
mov edx, dword [ebp - 0x24]
and edx, ecx
mov dword [ebp - 0x24], edx
mov dword [0x100c31d8], 2
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
jmp 0x1008e677
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0xa0], edx
add ecx, 0x9027
mov byte [ebp - 0x15], cl
movsx eax, word [ebp - 0x28]
add eax, 0x6ff538
mov word [ebp - 0x44], ax
mov eax, dword [ebp - 0x24]
cdq
mov ecx, dword [0x100c31a0]
mov esi, dword [0x100c31a4]
add ecx, eax
adc esi, edx
mov edx, dword [0x100c31a0]
mov eax, dword [0x100c31a4]
add edx, ecx
adc eax, esi
mov dword [0x100c31a0], edx
mov dword [0x100c31a4], eax
mov ecx, dword [0x101a2860]
xor edx, edx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], edx
movzx eax, byte [0x100c315b]
cdq
mov dword [0x100c31e0], eax
mov dword [0x100c31e4], edx
movzx eax, byte [ebp - 0x13]
cdq
mov ecx, dword [0x100c31a0]
mov edx, dword [0x100c31a4]
mov dword [ebp - 0xa4], edx
add eax, ecx
mov byte [ebp - 0x13], al
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret