Function at 0x402ab0
Capabilities:
Execute anti-debugging instructions
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55dd1b
mov eax, dword fs:[0]
push eax
sub esp, 0x8bc
mov eax, dword [0x5beff4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x65c], ecx
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x734], eax
cmp dword [ebp - 0x734], 0
jne 0x402b08
mov eax, 1
jmp 0x40443b
push 0x56cda4
mov eax, dword [ebp - 0x734]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x78c], eax
lea ecx, [ebp - 0x820]
push ecx
call dword [ebp - 0x78c]
mov edx, dword [ebp - 0x80c]
mov dword [0x5c3a54], edx
push 0xa0
push 0
push 0x5d3be8
call fcn.00542260
add esp, 0xc
push 0xa0
push 0
push 0x5d3c88
call fcn.00542260
add esp, 0xc
mov dword [ebp - 0x7e0], 0
mov dword [ebp - 0x680], 0
mov dword [ebp - 0x66c], 0
lea eax, [ebp - 0x680]
push eax
push 0x20019
push 0
push str.SoftwareSynapse_AudioDUNE_3_
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x402bf1
mov dword [ebp - 0x66c], 0x104
lea ecx, [ebp - 0x66c]
push ecx
lea edx, [ebp - 0x504]
push edx
lea eax, [ebp - 0x7e0]
push eax
push 0
push str.Serial
mov ecx, dword [ebp - 0x680]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x402be2
mov eax, 2
jmp 0x40443b
mov edx, dword [ebp - 0x680]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x402bfb
mov eax, 3
jmp 0x40443b
mov eax, dword [ebp - 0x66c]
shl eax, 1
mov dword [ebp - 0x760], eax
cmp dword [ebp - 0x760], 0x4b0
jae 0x402c17
jmp 0x402c1c
call fcn.00540379
xor ecx, ecx
mov edx, dword [ebp - 0x760]
mov word [ebp + edx - 0x504], cx
lea eax, [ebp - 0x504]
push eax
call fcn.005478f6
add esp, 4
mov dword [ebp - 0x728], 0
jmp 0x402c56
mov ecx, dword [ebp - 0x728]
add ecx, 1
mov dword [ebp - 0x728], ecx
lea edx, [ebp - 0x504]
mov dword [ebp - 0x6b0], edx
mov eax, dword [ebp - 0x6b0]
add eax, 2
mov dword [ebp - 0x7e4], eax
mov ecx, dword [ebp - 0x6b0]
mov dx, word [ecx]
mov word [ebp - 0x706], dx
add dword [ebp - 0x6b0], 2
cmp word [ebp - 0x706], 0
jne 0x402c71
mov eax, dword [ebp - 0x6b0]
sub eax, dword [ebp - 0x7e4]
sar eax, 1
mov dword [ebp - 0x7e8], eax
mov ecx, dword [ebp - 0x728]
cmp ecx, dword [ebp - 0x7e8]
jae 0x402cfa
push 0x56ce04
lea edx, [ebp - 0x504]
push edx
call fcn.004048c0
add esp, 8
mov dword [ebp - 0x72c], eax
cmp dword [ebp - 0x72c], 0
je 0x402cf5
push 0xc8
mov eax, dword [ebp - 0x72c]
add eax, 2
push eax
mov ecx, dword [ebp - 0x72c]
push ecx
call fcn.00541ce0
add esp, 0xc
jmp 0x402c47
mov edx, 2
imul eax, edx, 0x36
mov dword [ebp - 0x774], eax
cmp dword [ebp - 0x774], 0x4b0
jae 0x402d16
jmp 0x402d1b
call fcn.00540379
xor ecx, ecx
mov edx, dword [ebp - 0x774]
mov word [ebp + edx - 0x504], cx
mov dword [ebp - 0x654], 0
mov eax, 2
shl eax, 1
movzx ecx, word [ebp + eax - 0x504]
and ecx, 1
add ecx, 8
mov dword [ebp - 0x6fc], ecx
mov dword [ebp - 0x67c], 0
jmp 0x402d6b
mov edx, dword [ebp - 0x67c]
add edx, 1
mov dword [ebp - 0x67c], edx
mov eax, dword [ebp - 0x67c]
cmp eax, dword [ebp - 0x6fc]
jge 0x402db1
mov ecx, dword [ebp - 0x67c]
movzx edx, word [ebp + ecx*2 - 0x4fe]
mov eax, dword [ebp - 0x67c]
mov dword [eax*4 + 0x5d3be8], edx
mov ecx, dword [ebp - 0x67c]
movzx edx, word [ebp + ecx*2 - 0x4ee]
mov eax, dword [ebp - 0x67c]
mov dword [eax*4 + 0x5d3c88], edx
jmp 0x402d5c
mov dword [ebp - 0x7f8], 0
mov dword [ebp - 0x704], 1
mov ecx, dword [ebp - 0x6fc]
mov dword [ebp - 0x7ec], ecx
mov dword [ebp - 0x6ac], 0
jmp 0x402dec
mov edx, dword [ebp - 0x6ac]
add edx, 1
mov dword [ebp - 0x6ac], edx
mov eax, dword [ebp - 0x6ac]
cmp eax, dword [ebp - 0x6fc]
jge 0x402fe5
mov ecx, dword [ebp - 0x704]
mov dword [ebp - 0x7f0], ecx
mov edx, dword [ebp - 0x704]
shl edx, 1
mov dword [ebp - 0x704], edx
mov eax, 2
imul ecx, eax, 0x12
movzx edx, word [ebp + ecx - 0x504]
mov dword [ebp - 0x778], edx
mov eax, 2
imul ecx, eax, 0x13
movzx edx, word [ebp + ecx - 0x504]
mov dword [ebp - 0x77c], edx
mov dword [ebp - 0x700], 0
jmp 0x402e5f
mov eax, dword [ebp - 0x700]
add eax, 1
mov dword [ebp - 0x700], eax
mov ecx, dword [ebp - 0x700]
cmp ecx, dword [ebp - 0x6fc]
jge 0x402fae
mov edx, dword [ebp - 0x700]
mov dword [ebp - 0x664], edx
jmp 0x402e91
mov eax, dword [ebp - 0x664]
add eax, dword [ebp - 0x704]
mov dword [ebp - 0x664], eax
mov ecx, dword [ebp - 0x664]
cmp ecx, dword [ebp - 0x7ec]
jge 0x402fa9
mov edx, dword [ebp - 0x664]
add edx, dword [ebp - 0x7f0]
mov dword [ebp - 0x670], edx
mov eax, dword [ebp - 0x670]
and eax, 0xf
mov dword [ebp - 0x670], eax
mov ecx, dword [ebp - 0x670]
mov edx, dword [ebp - 0x778]
imul edx, dword [ecx*4 + 0x5d3be8]
mov eax, dword [ebp - 0x670]
mov ecx, dword [ebp - 0x77c]
imul ecx, dword [eax*4 + 0x5d3c88]
sub edx, ecx
mov dword [ebp - 0x780], edx
mov edx, dword [ebp - 0x670]
mov eax, dword [ebp - 0x778]
imul eax, dword [edx*4 + 0x5d3c88]
mov ecx, dword [ebp - 0x670]
mov edx, dword [ebp - 0x77c]
imul edx, dword [ecx*4 + 0x5d3be8]
add eax, edx
mov dword [ebp - 0x784], eax
mov eax, dword [ebp - 0x664]
mov ecx, dword [eax*4 + 0x5d3be8]
sub ecx, dword [ebp - 0x780]
mov edx, dword [ebp - 0x670]
mov dword [edx*4 + 0x5d3be8], ecx
mov eax, dword [ebp - 0x664]
mov ecx, dword [eax*4 + 0x5d3c88]
sub ecx, dword [ebp - 0x784]
mov edx, dword [ebp - 0x670]
mov dword [edx*4 + 0x5d3c88], ecx
mov eax, dword [ebp - 0x664]
mov ecx, dword [eax*4 + 0x5d3be8]
add ecx, dword [ebp - 0x780]
mov edx, dword [ebp - 0x664]
mov dword [edx*4 + 0x5d3be8], ecx
mov eax, dword [ebp - 0x664]
mov ecx, dword [eax*4 + 0x5d3c88]
add ecx, dword [ebp - 0x784]
mov edx, dword [ebp - 0x664]
mov dword [edx*4 + 0x5d3c88], ecx
jmp 0x402e7f
jmp 0x402e50
mov eax, dword [ebp - 0x6ac]
mov ecx, dword [ebp - 0x654]
add ecx, dword [eax*4 + 0x5d3be8]
mov dword [ebp - 0x654], ecx
mov edx, dword [ebp - 0x6ac]
mov eax, dword [ebp - 0x654]
sub eax, dword [edx*4 + 0x5d3c88]
mov dword [ebp - 0x654], eax
jmp 0x402ddd
mov ecx, dword [ebp - 0x654]
mov dword [0x5c33e0], ecx
mov edx, dword [0x5c33e8]
cmp edx, dword [0x5c33ec]
jbe 0x403022
mov eax, dword [0x5c33ec]
mov dword [ebp - 0x7c8], eax
mov ecx, dword [0x5c33e8]
mov dword [0x5c33ec], ecx
mov edx, dword [ebp - 0x7c8]
mov dword [0x5c33e8], edx
mov eax, dword [0x5c33e0]
add eax, dword [0x5c33e8]
mov dword [0x5c33e0], eax
jmp 0x91baeb
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00540453
mov esp, ebp
pop ebp
ret 8