Function at 0x403ee0
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x43e630
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push ebp
push esi
mov eax, dword [0x464770]
xor eax, esp
push eax
lea eax, [esp + 0x24]
mov dword fs:[0], eax
mov eax, dword [edi + 0x94]
mov ebx, dword [0x44c4bc]
xor ebp, ebp
push ebp
push ebp
push 0x14b
push eax
call ebx
mov ecx, dword [edi + 0xe8]
push ebp
push ebp
push 0x14b
push ecx
call ebx
mov edx, dword [edi + 0x94]
push 0x4550a4
push ebp
push 0x143
push edx
call ebx
mov esi, 0x469ff8
mov eax, dword [esi]
push eax
mov eax, dword [edi + 0x94]
push ebp
push 0x143
push eax
call ebx
add esi, 4
cmp esi, 0x46a084
jl 0x403f47
mov ecx, dword [edi + 0xe8]
push 0x4550a4
push ebp
push 0x143
push ecx
call ebx
push ebp
mov ecx, edi
call fcn.00414170
lea edx, [esp + 0x18]
push edx
push str.SoftwareVeryProxy
push 0x80000002
mov dword [esp + 0x20], ebp
call dword [0x44c02c]
test eax, eax
jne 0x403fcc
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
push ecx
push ebp
push ebp
push str.LastAreaCode
push edx
mov dword [esp + 0x28], 4
call dword [0x44c034]
mov eax, dword [esp + 0x18]
push eax
call dword [0x44c020]
mov ecx, dword [edi + 0x94]
push ebp
push ebp
push 0x146
push ecx
call ebx
mov ecx, dword [esp + 0x14]
mov esi, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
xor edx, edx
cmp eax, esi
setge dl
dec edx
and eax, edx
cmp eax, ebp
mov dword [edi + 0x120], eax
jle 0x404021
push ebp
push eax
mov eax, dword [edi + 0x94]
push 0x14e
push eax
call ebx
push 1
lea ecx, [edi + 0x74]
call fcn.00414170
call fcn.0040c2c1
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x40403b
push 0x80004005
call fcn.00402620
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2c], ebp
mov edx, dword [edi + 0x120]
push ecx
lea esi, [edi + 0x74]
push edx
mov ecx, esi
call fcn.0040e105
mov eax, dword [esp + 0x1c]
push 0x4550a4
push eax
call fcn.00429f43
add esp, 8
cmp eax, ebp
jne 0x404081
mov dword [edi + 0x120], ebp
mov eax, dword [edi + 0x120]
cmp eax, ebp
je 0x404256
cmp eax, 0x23
je 0x404256
lea ecx, [edi + 0xc8]
push 1
mov dword [esp + 0x24], ecx
call fcn.00417835
call fcn.0040c2c1
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x4040c3
push 0x80004005
call fcn.00402620
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x2c], 1
mov edx, dword [edi + 0x120]
push ecx
push edx
mov ecx, esi
call fcn.0040e105
mov dword [esp + 0x10], 0x468524
jmp 0x4040f7
xor ebp, ebp
mov eax, dword [esp + 0x10]
mov esi, dword [eax - 4]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
call eax
cmp dword [esi + 0xc], ebp
lea ecx, [esi + 0xc]
jl 0x404124
cmp eax, dword [esi]
jne 0x404124
mov ebp, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x404158
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov ebp, eax
test ebp, ebp
je 0x404251
mov eax, dword [esi + 4]
mov dword [ebp + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [ebp + 0x10]
push ecx
call fcn.0042941f
add esp, 0x10
mov eax, dword [esp + 0x18]
xor ecx, ecx
add ebp, 0x10
test eax, eax
setne cl
test ecx, ecx
je 0x404031
push eax
push ebp
call fcn.00429f43
add esp, 8
test eax, eax
sete al
test al, al
je 0x404198
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
push eax
mov eax, dword [edi + 0xe8]
push 0
push 0x143
push eax
call ebx
lea eax, [ebp - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4041b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x10]
add eax, 8
cmp eax, 0x469ffc
mov dword [esp + 0x10], eax
jl 0x4040f5
mov ecx, dword [edi + 0xe8]
push 0
push 0
push 0x146
push ecx
call ebx
mov ecx, dword [esp + 0x14]
mov esi, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x64
mov eax, ecx
sub eax, edx
xor ecx, ecx
cmp eax, esi
setge cl
dec ecx
and eax, ecx
mov dword [edi + 0x11c], eax
test eax, eax
jle 0x40422a
mov edx, dword [edi + 0xe8]
push 0
push eax
push 0x14e
push edx
call ebx
mov ecx, dword [esp + 0x20]
push 1
call fcn.00414170
mov byte [esp + 0x2c], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404268
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x404268
call fcn.00402b80
push ebp
lea ecx, [edi + 0xc8]
mov dword [edi + 0x11c], ebp
call fcn.00417835
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404290
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
add esp, 0x20
ret