Function at 0x405320
Capabilities:
Query or enumerate registry value

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43f6b2
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x428
mov eax, dword [0x455014]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x424], 0
lea ecx, [ebp - 0x230]
push 0x28
push str.http:__ramzih.liveblog365.com_serial.txt
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.0040d700
lea edx, [ebp - 0x230]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2b8]
call fcn.004047e0
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x21c]
cmp edx, 0x10
jb 0x4053ee
mov ecx, dword [ebp - 0x230]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4053e4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405f1c
push edx
push ecx
call fcn.0041e4c9
add esp, 8
cmp dword [ebp - 0x2a8], 0
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
je 0x405ec8
lea eax, [ebp - 0x420]
push eax
push 0x20019
push 0
push str.SOFTWAREMySecretApplicationSettings
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x405ec8
lea eax, [ebp - 0x41c]
mov dword [ebp - 0x41c], 0x200
push eax
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push str.Config
push dword [ebp - 0x420]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x405ebc
mov eax, dword [ebp - 0x41c]
lea ecx, [ebp - 0x218]
add eax, ecx
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x25c], 0xf
mov byte [ebp - 0x270], 0
cmp ecx, eax
je 0x4054af
sub eax, ecx
push eax
mov eax, ecx
lea ecx, [ebp - 0x270]
push eax
call fcn.0040d700
lea edx, [ebp - 0x270]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2a0]
call fcn.00408190
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x25c]
cmp edx, 0x10
jb 0x405502
mov ecx, dword [ebp - 0x270]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4054f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405f26
push edx
push ecx
call fcn.0041e4c9
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x248], 0
lea eax, [ebp - 0x254]
movups xmmword [ebp - 0x258], xmm0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x424], eax
push 1
mov byte [ebp - 4], 6
call fcn.0041b588
add esp, 4
mov dword [ebp - 0x248], eax
lea eax, [ebp - 0x24c]
mov byte [ebp - 4], 7
push eax
call fcn.00411b00
add esp, 4
mov dword [ebp - 0x254], eax
lea eax, [ebp - 0x24c]
push eax
call fcn.0040f6f0
add esp, 4
mov dword [ebp - 0x250], eax
mov byte [ebp - 4], 8
push dword [ebp - 0x424]
push ecx
push 0x44ed73
push str.ActivationKey_d_
lea ecx, [ebp - 0x258]
call fcn.00410c40
push 0x38
lea eax, [ebp - 0x398]
push 0
push eax
call fcn.00420300
xorps xmm0, xmm0
mov dword [ebp - 0x398], 0
add esp, 0xc
mov byte [ebp - 0x394], 0
movups xmmword [ebp - 0x390], xmm0
mov dword [ebp - 0x380], 0
mov byte [ebp - 0x37c], 0
mov dword [ebp - 0x378], 0
mov dword [ebp - 0x374], 0
mov byte [ebp - 0x370], 0
mov dword [ebp - 0x36c], 0
mov dword [ebp - 0x368], 0
mov byte [ebp - 0x364], 0
mov byte [ebp - 4], 0xa
lea edi, [ebp - 0x2a0]
cmp dword [ebp - 0x28c], 0x10
lea ecx, [ebp - 0x2a0]
mov edx, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0x290]
cmovae ecx, edx
cmovae edi, edx
add eax, ecx
cmp dword [ebp - 0x28c], 0x10
lea ecx, [ebp - 0x2a0]
push edi
cmovae ecx, edx
lea edx, [ebp - 0x258]
push 0
push eax
push ecx
lea ecx, [ebp - 0x398]
call fcn.004109e0
add esp, 0x10
or edi, 0xffffffff
test al, al
je 0x405e21
mov ecx, dword [ebp - 0x38c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x390]
sub ecx, esi
imul ecx
lea ecx, [ebp - 0x36c]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x40568e
lea ecx, [esi + 0xc]
cmp byte [ecx + 8], 0
je 0x4056a9
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, edx
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x424], edx
jmp 0x4056af
xor eax, eax
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
cmp eax, edx
je 0x4056dd
sub ecx, eax
push ecx
push eax
lea ecx, [ebp - 0x230]
call fcn.0040d700
mov dword [ebp - 0x42c], 3
xorps xmm0, xmm0
mov dword [ebp - 0x234], 0
lea eax, [ebp - 0x240]
movups xmmword [ebp - 0x244], xmm0
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x424], eax
push 1
mov byte [ebp - 4], 0xc
call fcn.0041b588
add esp, 4
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x238]
mov byte [ebp - 4], 0xd
push eax
call fcn.00411b00
add esp, 4
mov dword [ebp - 0x240], eax
lea eax, [ebp - 0x238]
push eax
call fcn.0040f6f0
add esp, 4
mov dword [ebp - 0x23c], eax
mov byte [ebp - 4], 0xe
push dword [ebp - 0x424]
push ecx
push 0x44ed92
push str._d___d4_d2_d2___._
lea ecx, [ebp - 0x244]
call fcn.00410c40
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x2d0]
push 0xa
push str.2023_01_01
mov dword [ebp - 0x2c0], 0
mov dword [ebp - 0x2bc], 0xf
mov byte [ebp - 0x2d0], 0
call fcn.0040d700
push 0x48
lea eax, [ebp - 0x318]
push 0
push eax
call fcn.00420300
mov eax, dword [ebp - 0x2a8]
lea edx, [ebp - 0x2b8]
add esp, 0xc
mov dword [ebp - 0x30c], 0
cmp dword [ebp - 0x2a4], 0x10
lea ecx, [ebp - 0x244]
xorps xmm0, xmm0
mov dword [ebp - 0x310], ecx
cmovae edx, dword [ebp - 0x2b8]
add eax, edx
mov dword [ebp - 0x308], 0
cmp dword [ebp - 0x2a4], 0x10
lea edx, [ebp - 0x2b8]
mov dword [ebp - 0x314], eax
cmovae edx, dword [ebp - 0x2b8]
mov dword [ebp - 0x318], edx
mov byte [ebp - 0x304], 0
movups xmmword [ebp - 0x300], xmm0
mov dword [ebp - 0x2f0], 0
mov byte [ebp - 0x2ec], 0
mov dword [ebp - 0x2e8], 0
mov dword [ebp - 0x2e4], 0
mov byte [ebp - 0x2e0], 0
mov dword [ebp - 0x2dc], 0
mov dword [ebp - 0x2d8], 0
mov byte [ebp - 0x2d4], 0
push edx
push 0
push eax
mov byte [ebp - 4], 0x11
push edx
mov edx, ecx
lea ecx, [ebp - 0x308]
call fcn.004109e0
mov esi, dword [ebp - 0x310]
xor ecx, ecx
test al, al
cmove esi, ecx
mov dword [ebp - 0x310], esi
push 0x48
push ecx
lea eax, [ebp - 0x3e0]
push eax
call fcn.00420300
xorps xmm0, xmm0
mov dword [ebp - 0x3e0], 0
add esp, 0x1c
mov dword [ebp - 0x3dc], 0
mov dword [ebp - 0x3d8], 0
mov dword [ebp - 0x3d0], 0
mov byte [ebp - 0x3cc], 0
movups xmmword [ebp - 0x3c8], xmm0
mov dword [ebp - 0x3b8], 0
mov byte [ebp - 0x3b4], 0
mov dword [ebp - 0x3b0], 0
mov dword [ebp - 0x3ac], 0
mov byte [ebp - 0x3a8], 0
mov dword [ebp - 0x3a4], 0
mov dword [ebp - 0x3a0], 0
mov byte [ebp - 0x39c], 0
push 0x48
lea eax, [ebp - 0x360]
mov byte [ebp - 4], 0x13
push 0
push eax
call fcn.00420300
mov eax, dword [ebp - 0x318]
lea ecx, [ebp - 0x350]
mov dword [ebp - 0x360], eax
add esp, 0xc
mov eax, dword [ebp - 0x314]
mov dword [ebp - 0x35c], eax
mov eax, dword [ebp - 0x30c]
mov dword [ebp - 0x354], eax
lea eax, [ebp - 0x308]
push eax
mov dword [ebp - 0x358], esi
call fcn.00405f60
mov byte [ebp - 4], 0x14
nop dword [eax]
cmp dword [ebp - 0x358], 0
sete al
test al, al
jne 0x405d19
push 0x38
lea eax, [ebp - 0x418]
push 0
push eax
call fcn.00420300
add esp, 0xc
lea eax, [ebp - 0x350]
lea ecx, [ebp - 0x418]
push eax
call fcn.00405f60
mov byte [ebp - 4], 0x15
mov eax, 0x2aaaaaab
mov ecx, dword [ebp - 0x40c]
mov edi, dword [ebp - 0x410]
mov dword [ebp - 0x424], ecx
sub ecx, edi
imul ecx
lea ecx, [ebp - 0x3ec]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x4059ed
lea ecx, [edi + 0xc]
cmp byte [ecx + 8], 0
je 0x4059fc
mov eax, dword [ecx]
mov edx, eax
mov ecx, dword [ecx + 4]
jmp 0x405a02
xor eax, eax
xor ecx, ecx
xor edx, edx
xor esi, esi
mov dword [ebp - 0x25c], 0xf
mov dword [ebp - 0x260], esi
mov byte [ebp - 0x270], 0
cmp edx, ecx
je 0x405a42
sub ecx, edx
push ecx
push eax
lea ecx, [ebp - 0x270]
call fcn.0040d700
mov ecx, dword [ebp - 0x40c]
mov edi, dword [ebp - 0x410]
mov esi, dword [ebp - 0x260]
jmp 0x405a48
mov ecx, dword [ebp - 0x424]
sub ecx, edi
mov byte [ebp - 4], 0x16
mov eax, 0x2aaaaaab
imul ecx
lea ecx, [ebp - 0x3ec]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jbe 0x405a6c
lea ecx, [edi + 0x18]
cmp byte [ecx + 8], 0
je 0x405a7b
mov eax, dword [ecx]
mov edx, eax
mov ecx, dword [ecx + 4]
jmp 0x405a81
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x278], 0
mov dword [ebp - 0x274], 0xf
mov byte [ebp - 0x288], 0
cmp edx, ecx
je 0x405aaf
sub ecx, edx
push ecx
push eax
lea ecx, [ebp - 0x288]
call fcn.0040d700
or dword [ebp - 0x42c], 0x3c
mov byte [ebp - 4], 0x17
lea edx, [ebp - 0x230]
cmp dword [ebp - 0x21c], 0x10
lea eax, [ebp - 0x270]
mov edi, dword [ebp - 0x270]
cmovae edx, dword [ebp - 0x230]
cmp dword [ebp - 0x25c], 0x10
cmovae eax, edi
cmp esi, dword [ebp - 0x220]
jne 0x405b45
sub esi, 4
jb 0x405b02
mov ecx, dword [eax]
cmp ecx, dword [edx]
jne 0x405b07
add eax, 4
add edx, 4
sub esi, 4
jae 0x405af1
cmp esi, 0xfffffffc
je 0x405b3b
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x405b34
cmp esi, 0xfffffffd
je 0x405b3b
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x405b34
cmp esi, 0xfffffffe
je 0x405b3b
mov cl, byte [eax + 2]
cmp cl, byte [edx + 2]
jne 0x405b34
cmp esi, 0xffffffff
je 0x405b3b
mov al, byte [eax + 3]
cmp al, byte [edx + 3]
je 0x405b3b
sbb eax, eax
or eax, 1
jmp 0x405b3d
xor eax, eax
test eax, eax
je 0x405c70
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x274]
cmp ecx, 0x10
jb 0x405b85
lea edx, [ecx + 1]
mov ecx, dword [ebp - 0x288]
mov eax, ecx
cmp edx, 0x1000
jb 0x405b7b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405f1c
push edx
push ecx
call fcn.0041e4c9
add esp, 8
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x25c]
cmp eax, 0x10
jb 0x405bbf
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x405bb5
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405f1c
push ecx
push edi
call fcn.0041e4c9
add esp, 8
lea ecx, [ebp - 0x410]
mov byte [ebp - 4], 0x14
call fcn.0040d110
mov eax, dword [ebp - 0x348]
mov esi, dword [eax + 4]
cmp dword [eax], esi
jne 0x405c26
mov eax, dword [ebp - 0x35c]
cmp esi, eax
jne 0x405bf4
mov dword [ebp - 0x358], 0
jmp 0x405980
mov ecx, dword [ebp - 0x354]
push dword [ebp - 0x360]
mov edx, dword [ebp - 0x358]
or ecx, 0x20
or ecx, 0x40
push ecx
push eax
push esi
lea ecx, [ebp - 0x350]
call fcn.004109e0
add esp, 0x10
test al, al
jne 0x405980
inc esi
mov eax, dword [ebp - 0x354]
lea ecx, [ebp - 0x350]
push dword [ebp - 0x360]
mov edx, dword [ebp - 0x358]
or eax, 0x100
push eax
push dword [ebp - 0x35c]
mov dword [ebp - 0x354], eax
push esi
call fcn.004109e0
add esp, 0x10
test al, al
jne 0x405980
mov dword [ebp - 0x358], 0
jmp 0x405980
cmp dword [ebp - 0x274], 0x10
lea eax, [ebp - 0x288]
push dword [ebp - 0x278]
cmovae eax, dword [ebp - 0x288]
lea ecx, [ebp - 0x2d0]
push eax
call fcn.0040d700
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x274]
cmp edx, 0x10
jb 0x405cd4
mov ecx, dword [ebp - 0x288]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x405cca
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405f1c
push edx
push ecx
call fcn.0041e4c9
add esp, 8
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x25c]
cmp eax, 0x10
jb 0x405d0e
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x405d04
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405f1c
push ecx
push edi
call fcn.0041e4c9
add esp, 8
lea ecx, [ebp - 0x410]
call fcn.0040d110
lea ecx, [ebp - 0x348]
mov byte [ebp - 4], 0x13
call fcn.0040d110
lea edx, [ebp - 0x2d0]
lea ecx, [ebp - 0x230]
call fcn.00404c70
lea ecx, [ebp - 0x3c8]
call fcn.0040d110
lea ecx, [ebp - 0x300]
call fcn.0040d110
mov edx, dword [ebp - 0x2bc]
cmp edx, 0x10
jb 0x405d89
mov ecx, dword [ebp - 0x2d0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x405d7f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405f21
push edx
push ecx
call fcn.0041e4c9
add esp, 8
mov ecx, dword [ebp - 0x244]
or edi, 0xffffffff
test ecx, ecx
je 0x405dc0
mov eax, edi
lock xadd dword [ecx + 0x20], eax
jne 0x405dc0
mov esi, dword [ebp - 0x244]
test esi, esi
je 0x405dc0
mov ecx, esi
lea eax, [esi + 0xc]
mov esi, dword [eax]
mov dword [eax], 0
push 1
mov eax, dword [ecx]
call dword [eax]
test esi, esi
jne 0x405da9
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x244], 0
test ecx, ecx
je 0x405de7
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x405de7
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov edx, dword [ebp - 0x21c]
cmp edx, 0x10
jb 0x405e21
mov ecx, dword [ebp - 0x230]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x405e17
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405f21
push edx
push ecx
call fcn.0041e4c9
add esp, 8
lea ecx, [ebp - 0x390]
call fcn.0040d110
mov eax, dword [ebp - 0x258]
test eax, eax
je 0x405e5f
lock xadd dword [eax + 0x20], edi
dec edi
jne 0x405e5f
mov esi, dword [ebp - 0x258]
test esi, esi
je 0x405e5f
mov ecx, esi
lea eax, [esi + 0xc]
mov esi, dword [eax]
mov dword [eax], 0
push 1
mov eax, dword [ecx]
call dword [eax]
test esi, esi
jne 0x405e48
mov ecx, dword [ebp - 0x248]
mov dword [ebp - 0x258], 0
test ecx, ecx
je 0x405e86
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x405e86
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov edx, dword [ebp - 0x28c]
cmp edx, 0x10
jb 0x405ebc
mov ecx, dword [ebp - 0x2a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x405eb2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405f26
push edx
push ecx
call fcn.0041e4c9
add esp, 8
push dword [ebp - 0x420]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 0x2a4]
cmp edx, 0x10
jb 0x405efe
mov ecx, dword [ebp - 0x2b8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x405ef4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405f2b
push edx
push ecx
call fcn.0041e4c9
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041df22
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.00426b63
call fcn.00426b63
call fcn.00426b63
call fcn.00426b63
int3