Function at 0x401510
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd4
push ebx
push esi
push edi
mov dword [ebp - 0x64], fcn.00401b30
mov dword [ebp - 4], 0
mov dword [ebp - 0x68], str.BBvapi32
mov dword [ebp - 0x7c], str.SBBBWAREClassesInterface_
mov dword [ebp - 0x78], str.0000011b_0000_0000_c000_000000000046
mov dword [ebp - 0x80], str.BBgOpenKeyA
mov eax, dword [ebp - 0x7c]
mov byte [eax + 1], 0x4f
mov ecx, dword [ebp - 0x7c]
mov byte [ecx + 2], 0x46
mov edx, dword [ebp - 0x7c]
mov byte [edx + 3], 0x54
mov dword [ebp - 0xb0], 0
push 0x2c
push 0
lea eax, [ebp - 0xac]
push eax
call fcn.00402086
add esp, 0xc
mov ecx, dword [0x405008]
mov dword [ebp - 0xd0], ecx
push 0x7f00
push 0
call dword [0x4050b4]
push 0x7f00
push 0
call dword [0x4050b4]
mov dword [ebp - 0x94], eax
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
cmp eax, 0x6a
je 0x4015e1
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
cmp edx, 0x55
je 0x4015e1
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
cmp ecx, 0x8b
je 0x4015e1
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
cmp eax, 0xff
jne 0x4015e9
mov ecx, dword [ebp - 0x68]
mov byte [ecx], 0x61
jmp 0x4015ee
call fcn.00401510
mov edx, dword [ebp - 0x68]
mov byte [edx + 1], 0x64
mov eax, dword [ebp - 0x80]
mov byte [eax], 0x52
mov ecx, dword [ebp - 0x80]
mov byte [ecx + 1], 0x65
mov edx, dword [ebp - 0x80]
push edx
push 0
push 0
mov eax, dword [ebp - 0x68]
push eax
call dword [0x405004]
push eax
call dword [section..data]
mov dword [ebp - 0x74], eax
lea ecx, [ebp - 0x70]
push ecx
mov edx, dword [ebp - 0x7c]
push edx
push 0x80000002
call dword [ebp - 0x74]
test eax, eax
je 0x401639
xor eax, eax
jmp 0x4018b3
lea eax, [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x78]
push ecx
mov edx, dword [ebp - 0x70]
push edx
call dword [ebp - 0x74]
test eax, eax
je 0x401651
call fcn.00401b30
lea eax, [ebp - 0x70]
push eax
push 0x405190
push 0x80000002
call dword [ebp - 0x74]
test eax, eax
jne 0x40166b
call fcn.00401b30
mov dword [ebp - 0x60], 0x64
mov dword [ebp - 0x14], 1
mov dword [ebp - 4], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0xc], 0
call fcn.00401040
mov ecx, dword [0x448c88]
push ecx
call fcn.00401390
add esp, 4
mov dword [0x448c94], eax
mov edx, dword [0x448c94]
push edx
call fcn.00401a40
add esp, 4
mov dword [0x448c6c], eax
mov eax, dword [0x448c94]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [0x448c94]
jae 0x401727
mov edx, dword [ebp - 0x54]
push edx
mov eax, dword [ebp - 0x60]
push eax
call fcn.004013e0
add esp, 8
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x58]
push ecx
mov edx, dword [0x448c88]
add edx, dword [ebp - 0x48]
push edx
mov eax, dword [0x448c6c]
add eax, dword [ebp - 4]
push eax
call fcn.00401090
add esp, 0xc
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x48]
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp - 4]
add edx, dword [ebp - 0x60]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x58]
mov dword [ebp - 0x54], eax
jmp 0x4016ca
mov ecx, dword [0x448c94]
push ecx
mov edx, dword [0x448c6c]
push edx
call fcn.00401000
add esp, 8
pushal
mov dword [ebp - 4], 0
mov dword [ebp - 0x48], 0
mov eax, dword [0x448c94]
push eax
push 0
mov ecx, dword [0x448c84]
push ecx
call fcn.00401020
add esp, 0xc
mov edx, dword [0x448c94]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 4]
cmp eax, dword [0x448c94]
jae 0x4017ca
mov ecx, dword [ebp - 0x54]
push ecx
mov edx, dword [ebp - 0x60]
push edx
call fcn.004013e0
add esp, 8
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
push eax
mov ecx, dword [0x448c88]
add ecx, dword [ebp - 0x48]
push ecx
mov edx, dword [0x448c84]
add edx, dword [ebp - 4]
push edx
call fcn.00401090
add esp, 0xc
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x48]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x60]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x54]
sub edx, dword [ebp - 0x58]
mov dword [ebp - 0x54], edx
jmp 0x40176c
mov eax, dword [0x448c94]
push eax
mov ecx, dword [0x448c84]
push ecx
call fcn.00401000
add esp, 8
mov dword [ebp - 0x64], fcn.00401b30
mov edx, dword [0x448c6c]
mov eax, dword [0x448c84]
mov dword [edx], eax
push 0x46000
call fcn.00401a40
add esp, 4
mov dword [0x448c64], eax
mov ecx, dword [0x448c64]
add ecx, 0x300
mov dword [0x448c70], ecx
push 0x42e00
mov edx, dword [0x448c6c]
push edx
mov eax, dword [0x448c70]
push eax
call fcn.00401090
add esp, 0xc
mov dword [0x448c60], 0x400000
mov ecx, dword [0x448c64]
sub ecx, dword [0x448c60]
push ecx
mov edx, dword [0x448c64]
push edx
mov eax, dword [0x448c84]
push eax
call fcn.00401490
add esp, 0xc
mov ecx, dword [0x448c64]
add ecx, 0x42d80
mov dword [0x448c68], ecx
mov eax, eax
mov eax, eax
mov eax, eax
popal
mov eax, eax
mov eax, eax
mov eax, eax
mov eax, eax
push 0x368282
mov eax, dword [ebp - 0x64]
mov eax, eax
mov eax, eax
mov ecx, esp
push edx
mov edx, ecx
sub edx, 0x26
mov ecx, edx
pop edx
add ecx, 0x22
mov eax, eax
mov eax, eax
mov eax, eax
mov dword [ecx + 4], 0
mov eax, eax
mov eax, eax
mov eax, eax
add dword [ecx + 4], eax
mov eax, eax
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret