Function at 0x402bb0
Capabilities:
Check if process is running under wine
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x130
call fcn.00401890
mov dword [ebp - 0x120], eax
lea eax, [ebp - 0x114]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareWineTest
mov dword [esp], 0x80000001
call dword [sym.imp.advapi32.dll_RegOpenKeyExA]
sub esp, 0x14
mov ebx, eax
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x1f3
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.Failed_to_open_a_key__ret__lu._n
call fcn.00401870
mov ebx, dword [sym.imp.msvcrt.dll_strlen]
mov dword [esp], 0x41c140
call ebx
lea edx, [eax + 1]
mov eax, 0x18
cmp edx, eax
cmovb edx, eax
mov dword [ebp - 0x124], edx
mov dword [esp], 0x41c020
call ebx
mov dword [esp + 0x14], 0
lea esi, [eax + 1]
mov eax, 0xe
mov dword [esp + 0x10], 0
cmp esi, eax
mov dword [esp + 0xc], 0
cmovb esi, eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Test1
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call dword [0x41c254]
sub esp, 0x18
mov ebx, eax
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x1fe
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.Failed_to_query_value__ret__lu._n
call fcn.00401870
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x11c], 0xffffffff
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Test1
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call dword [0x41c254]
sub esp, 0x18
mov ebx, eax
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x205
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.Failed_to_query_value__ret__lu._n
call fcn.00401870
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x206
mov eax, dword [ebp - 0x11c]
mov dword [esp + 4], str.Unexpected_type__ld._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401870
lea eax, [ebp - 0x118]
mov dword [ebp - 0x118], 6
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.Test1
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call dword [0x41c254]
sub esp, 0x18
mov ebx, eax
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x20a
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.Failed_to_query_value__ret__lu._n
call fcn.00401870
call fcn.00404eb0
mov edx, dword [ebp - 0x124]
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x20b
mov eax, dword [ebp - 0x118]
mov dword [esp + 0xc], edx
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.Buffer_sizes__lu_and__lu_are_not_equal_n
movzx eax, al
mov dword [esp], eax
call fcn.00401870
lea eax, [ebp - 0x118]
mov dword [ebp - 0x118], 6
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.Test3
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call dword [0x41c254]
sub esp, 0x18
mov ebx, eax
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x212
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x110]
mov dword [esp], eax
mov dword [esp + 4], str.Failed_to_query_value__ret__lu._n
call fcn.00401870
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x213
mov eax, dword [ebp - 0x118]
mov dword [esp + 0xc], esi
cmp eax, esi
mov dword [esp + 8], eax
setae al
mov dword [esp + 4], str.Buffer_size__lu_should_be____lu._n
movzx eax, al
mov dword [esp], eax
call fcn.00401870
lea eax, [ebp - 0x118]
mov dword [ebp - 0x10c], 0x37363534
mov dword [ebp - 0x110], 0x33323130
mov dword [ebp - 0x109], 0x393837
mov dword [ebp - 0x118], 6
mov dword [ebp - 0x11c], 0xffffffff
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Test1
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call dword [0x41c254]
sub esp, 0x18
mov edi, eax
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x21c
xor eax, eax
cmp edi, 0xea
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_retval__ld._n
call fcn.00401870
call fcn.00404eb0
mov edi, dword [sym.imp.msvcrt.dll_strcmp]
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x21d
mov dword [esp + 4], ebx
mov dword [esp], str.0123456789
call edi
mov dword [esp + 0xc], str.0123456789
test eax, eax
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Comparing___s__with___s__failed_n
movzx eax, al
mov dword [esp], eax
call fcn.00401870
call fcn.00404eb0
mov edx, dword [ebp - 0x124]
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x21e
mov eax, dword [ebp - 0x118]
mov dword [esp + 0xc], edx
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.Buffer_sizes__lu_and__lu_are_not_equal_n
movzx eax, al
mov dword [esp], eax
call fcn.00401870
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x21f
mov eax, dword [ebp - 0x11c]
mov dword [esp + 4], str.Unexpected_type__ld._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401870
lea eax, [ebp - 0x118]
mov dword [ebp - 0x10c], 0x37363534
mov dword [ebp - 0x110], 0x33323130
mov dword [ebp - 0x109], 0x393837
mov dword [ebp - 0x118], 6
mov dword [ebp - 0x11c], 0xffffffff
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Test3
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call dword [0x41c254]
sub esp, 0x18
mov dword [ebp - 0x124], eax
call fcn.00404eb0
mov edx, dword [ebp - 0x124]
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x229
xor eax, eax
cmp edx, 0xea
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_retval__ld._n
call fcn.00401870
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x22a
mov dword [esp + 4], ebx
mov dword [esp], str.0123456789
call edi
mov dword [esp + 0xc], str.0123456789
test eax, eax
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Comparing___s__with___s__failed_n
movzx eax, al
mov dword [esp], eax
call fcn.00401870
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x22b
mov eax, dword [ebp - 0x118]
mov dword [esp + 0xc], esi
cmp eax, esi
mov dword [esp + 8], eax
setae al
mov dword [esp + 4], str.Buffer_size__lu_should_be____lu._n
movzx eax, al
mov dword [esp], eax
call fcn.00401870
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x22c
mov eax, dword [ebp - 0x11c]
mov dword [esp + 4], str.Unexpected_type__ld._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401870
lea eax, [ebp - 0x118]
mov dword [ebp - 0x10c], 0x37363534
mov dword [ebp - 0x110], 0x33323130
mov dword [ebp - 0x109], 0x393837
mov dword [ebp - 0x118], 0x20
mov dword [ebp - 0x11c], 0xffffffff
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Test3
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call dword [0x41c254]
sub esp, 0x18
mov dword [ebp - 0x124], eax
call fcn.00404eb0
mov edx, dword [ebp - 0x124]
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x238
xor eax, eax
cmp edx, 0xea
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_retval__ld._n
call fcn.00401870
mov ecx, dword [0x41c2b0]
mov dword [ebp - 0x124], ecx
call fcn.00404eb0
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
mov ecx, dword [ebp - 0x124]
test ecx, ecx
setne cl
movzx ecx, cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x4032aa
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x23c
xor eax, eax
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Unexpanded_string__s._n
cmp byte [ebp - 0x110], 0
sete al
mov dword [esp], eax
call fcn.00401870
call fcn.00404eb0
shr dword [eax + 0x10], 1
call fcn.00404eb0
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x403270
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x23f
mov eax, dword [ebp - 0x118]
mov dword [esp + 0xc], esi
cmp eax, esi
mov dword [esp + 8], eax
setae al
mov dword [esp + 4], str.Buffer_size__lu_should_be____lu._n
movzx eax, al
mov dword [esp], eax
call fcn.00401870
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x240
mov eax, dword [ebp - 0x11c]
mov dword [esp + 4], str.Unexpected_type__ld._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401870
mov eax, dword [0x41c000]
mov dword [ebp - 0x10c], 0x37363534
mov dword [ebp - 0x110], 0x33323130
mov dword [ebp - 0x109], 0x393837
sub eax, 4
mov dword [ebp - 0x118], eax
lea eax, [ebp - 0x118]
mov dword [ebp - 0x11c], 0xffffffff
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Test3
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call dword [0x41c254]
sub esp, 0x18
mov dword [ebp - 0x124], eax
call fcn.00404eb0
mov edx, dword [ebp - 0x124]
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x24c
xor eax, eax
cmp edx, 0xea
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_retval__ld._n
call fcn.00401870
mov ecx, dword [0x41c2b0]
mov dword [ebp - 0x124], ecx
call fcn.00404eb0
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
mov ecx, dword [ebp - 0x124]
test ecx, ecx
setne cl
movzx ecx, cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x403469
call fcn.00404eb0
mov dword [eax], 0x40917b
cmp byte [ebp - 0x110], 0
mov dword [eax + 4], 0x250
mov eax, 1
je 0x403445
mov dword [esp + 4], ebx
mov dword [esp], str.ImARatherLongButIndeedNeededString
call edi
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.ImARatherLongButIndeedNeededString
mov dword [esp + 4], str.Expected_empty_or_first_part_of_the_string___s___got___s__n
call fcn.00401870
call fcn.00404eb0
shr dword [eax + 0x10], 1
call fcn.00404eb0
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x403410
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x254
mov eax, dword [ebp - 0x118]
mov dword [esp + 0xc], esi
cmp eax, esi
mov dword [esp + 8], eax
setae al
mov dword [esp + 4], str.Buffer_size__lu_should_be____lu._n
movzx eax, al
mov dword [esp], eax
call fcn.00401870
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x255
mov eax, dword [ebp - 0x11c]
mov dword [esp + 4], str.Unexpected_type__ld._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401870
lea eax, [ebp - 0x118]
mov dword [ebp - 0x10c], 0x37363534
mov dword [ebp - 0x110], 0x33323130
mov dword [ebp - 0x109], 0x393837
mov dword [ebp - 0x118], 6
mov dword [ebp - 0x11c], 0xffffffff
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Test3
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call dword [0x41c254]
sub esp, 0x18
mov ebx, eax
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x25e
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.Failed_to_query_value__ret__lu._n
call fcn.00401870
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x25f
mov eax, dword [ebp - 0x118]
mov dword [esp + 0xc], esi
cmp eax, esi
mov dword [esp + 8], eax
setae al
mov dword [esp + 4], str.Buffer_size__lu_should_be____lu._n
movzx eax, al
mov dword [esp], eax
call fcn.00401870
call fcn.00404eb0
mov dword [eax], 0x40917b
mov dword [eax + 4], 0x260
mov eax, dword [ebp - 0x11c]
mov dword [esp + 4], str.Unexpected_type__ld._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401870
mov eax, dword [ebp - 0x114]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
mov eax, dword [ebp - 0x120]
sub esp, 4
call fcn.00401230
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret