Function at 0x403230
Capabilities:
Check if file exists
Copy file
Create directory
Delete directory
Delete file
Get common file path
Get file attributes
Persist via lnk shortcut

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea esi, [ebp - 0x6c0]
push ebx
sub esp, 0x70c
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0x4092ec
mov dword [esp + 8], 3
mov dword [esp + 4], 0
mov dword [esp], 0x40865c
call sub.ole32.dll_CoCreateInstance
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0x5c
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6c0]
lea ecx, [ebp - 0x6b8]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x40868c
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x5f
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov eax, dword [ebp - 0x6c0]
mov ecx, 0x60
mov edx, 0x40868c
call fcn.004011b0
mov eax, dword [ebp - 0x6c0]
lea ecx, [ebp - 0x6c8]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x4087bc
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x63
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004002
mov dword [esp + 8], ebx
sete al
mov dword [esp + 0xc], 0x80004002
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov eax, dword [ebp - 0x6c0]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x6b8]
lea ecx, [ebp - 0x6cc]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x40868c
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x67
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 0xc], 0
lea ebx, [ebp - 0x6b4]
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov eax, dword [ebp - 0x6cc]
mov edx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x40883c
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0x6a
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp edi, 0x80004002
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6cc]
mov edx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x4086ac
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 0x6d
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6b4]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x6cc]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x40869c
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x71
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6b4]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x6cc]
lea ecx, [ebp - 0x6c4]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x75
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov eax, dword [ebp - 0x6c4]
mov ecx, 0x76
mov edx, 0x4086ec
call fcn.004011b0
mov eax, dword [ebp - 0x6c4]
lea ecx, [ebp - 0x6b0]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x4086fc
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x79
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004002
mov dword [esp + 8], ebx
sete al
mov dword [esp + 0xc], 0x80004002
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov eax, dword [ebp - 0x6c4]
mov edx, dword [eax]
mov dword [esp + 8], esi
mov dword [esp + 4], 0x4092ec
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x7c
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov eax, dword [ebp - 0x6c0]
lea ecx, [ebp - 0x6a8]
mov edx, dword [eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 0x10
mov ebx, eax
mov dword [esp + 4], 0x7f
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov eax, dword [ebp - 0x6a8]
lea ecx, [ebp - 0x6a4]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x82
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 0xc], 0
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov dword [esp + 4], 0x83
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x6a4]
mov edi, dword [0x4086ec]
cmp dword [eax], edi
je 0x404ee3
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.got_wrong_type_guid_n
lea ebx, [ebp - 0x680]
lea edi, [ebp - 0x690]
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6a8]
mov ecx, dword [ebp - 0x6a4]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x4c]
sub esp, 8
mov dword [esp], str.Desktop
call sub.oleaut32.dll_SysAllocString
mov ecx, 8
mov dword [ebp - 0x65c], 0
mov dword [ebp - 0x6a0], eax
sub esp, 4
mov dword [ebp - 0x688], eax
lea eax, [ebp - 0x690]
mov dword [ebp - 0x660], eax
mov eax, dword [ebp - 0x6c0]
mov word [ebp - 0x690], cx
lea ecx, [ebp - 0x694]
mov dword [ebp - 0x658], 1
mov dword [ebp - 0x654], 0
mov edx, dword [eax]
mov dword [esp + 0x20], ecx
lea ecx, [ebp - 0x650]
mov dword [esp + 0x1c], ecx
lea ecx, [ebp - 0x660]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0x409
mov dword [esp + 8], 0x40861c
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x18]
sub esp, 0x24
mov esi, eax
mov dword [esp + 4], 0x8f
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80020003
mov dword [esp + 8], esi
sete al
mov dword [esp + 0xc], 0x80020003
xor esi, esi
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov eax, dword [ebp - 0x6c4]
mov word [ebp - 0x680], si
mov edx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x94
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 0xc], 0
lea esi, [ebp - 0x69c]
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov dword [esp + 4], 0x95
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
movzx edx, word [ebp - 0x680]
mov dword [esp + 4], str.got_res_type__d_n
cmp dx, 8
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x678]
mov edx, 0x96
call fcn.00401040
mov eax, dword [ebp - 0x6a0]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
sub esp, 4
mov dword [esp], ebx
lea ebx, [ebp - 0x6bc]
call sub.oleaut32.dll_VariantClear
sub esp, 4
mov dword [esp], str.file.lnk
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6cc]
mov dword [ebp - 0x6a0], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call dword [ecx + 0x2c]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x9d
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov eax, dword [ebp - 0x6a0]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
mov eax, dword [ebp - 0x6bc]
lea ecx, [ebp - 0x6ac]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x4086bc
mov dword [esp], eax
call dword [edx]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xa0
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], str.got_0x_08x__expected_0x_08x_n
call fcn.00405bb0
mov eax, dword [ebp - 0x6bc]
mov ecx, 0xa1
mov edx, 0x4086bc
call fcn.004011b0
mov eax, dword [ebp - 0x6ac]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xa4
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6ac]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x38]
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0xa7
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6ac]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x6bc]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x6cc]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x30]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xae
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp], str._PATH_
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6cc]
mov dword [ebp - 0x6a0], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
call dword [ecx + 0x30]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xb2
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6a0]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
mov eax, 8
sub esp, 4
mov word [ebp - 0x690], ax
mov dword [esp], str.SYSTEM
call sub.oleaut32.dll_SysAllocString
lea ecx, [ebp - 0x6d4]
mov dword [ebp - 0x688], eax
mov eax, dword [ebp - 0x6cc]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xb8
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp], edi
call sub.oleaut32.dll_VariantClear
mov eax, dword [ebp - 0x6d4]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xbc
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6d4]
mov ecx, 0xbd
mov edx, 0x4086dc
call fcn.004011b0
mov eax, dword [ebp - 0x6d4]
mov dword [ebp - 0x69c], 1
mov edx, dword [eax]
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc1
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0xc2
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x69c]
xor edx, edx
test eax, eax
je 0x403cb1
xor edx, edx
cmp word [eax], 0
sete dl
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 4], str.got__p_n
call fcn.00405bb0
mov eax, dword [ebp - 0x69c]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
sub esp, 4
mov dword [esp], str.file.lnk
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6d4]
mov dword [ebp - 0x6a0], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
call dword [ecx + 0x1c]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xc8
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6d4]
mov ecx, dword [ebp - 0x6a0]
mov dword [ebp - 0x69c], 0
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp], eax
call dword [edx + 0x1c]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xcc
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0xcd
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov ebx, dword [ebp - 0x69c]
test ebx, ebx
je 0x404ff0
mov eax, ebx
shr eax, 0x10
je 0x404f50
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x404fb0
cmp word [ebx], 0
je 0x403dfa
lea esi, [esi]
lea esi, [esi]
add eax, 1
cmp word [ebx + eax*2], 0
jne 0x403df0
mov edx, 0x224c
lea edi, [ebp - 0x21e]
mov dword [ebp - 0x6dc], ebx
lea ecx, [eax - 1]
mov word [ebp - 0x220], dx
mov edx, edi
mov dword [ebp - 0x6e4], edi
test eax, eax
jle 0x403e77
lea eax, [ebp - 0xfe]
cmp edx, eax
ja 0x403e77
add dword [ebp - 0x6dc], 2
mov eax, dword [ebp - 0x6dc]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x404db0
ja 0x404d60
cmp ax, 9
je 0x404d80
cmp ax, 0xa
jne 0x404dc3
mov eax, 0x6e5c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
nop
lea ecx, [eax - 1]
test eax, eax
jg 0x403e21
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x403e91
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x220]
mov dword [esp], eax
mov dword [ebp - 0x6e0], eax
call fcn.00406700
mov edx, dword [ebp - 0x69c]
test edx, edx
je 0x404f89
cmp word [edx], 0
sete dl
movzx edx, dl
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 4], str.got__s_n
call fcn.00405bb0
mov eax, dword [ebp - 0x69c]
mov edx, 0xce
call fcn.00401040
mov eax, dword [ebp - 0x69c]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
mov eax, dword [ebp - 0x6a0]
sub esp, 4
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
sub esp, 4
mov dword [esp], str.PATH
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6d4]
mov dword [ebp - 0x6a0], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
call dword [ecx + 0x1c]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0xd5
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0xd6
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov ebx, dword [ebp - 0x69c]
test ebx, ebx
je 0x405014
mov eax, ebx
shr eax, 0x10
je 0x404f20
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x404fe0
cmp word [ebx], 0
je 0x403fbe
add eax, 1
cmp word [ebx + eax*2], 0
jne 0x403fb4
mov edx, 0x224c
lea esi, [ebp - 0xfe]
mov dword [ebp - 0x6dc], ebx
lea ecx, [eax - 1]
mov word [ebp - 0x220], dx
mov edx, dword [ebp - 0x6e4]
cmp edx, esi
ja 0x404037
test eax, eax
jle 0x404037
add dword [ebp - 0x6dc], 2
mov eax, dword [ebp - 0x6dc]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x404e42
ja 0x404e23
cmp ax, 9
je 0x404ed0
cmp ax, 0xa
jne 0x404e70
mov eax, 0x6e5c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
lea esi, [esi]
lea ecx, [eax - 1]
cmp edx, esi
jbe 0x403fe3
mov byte [edx], 0x22
lea eax, [edx + 1]
test ecx, ecx
jle 0x404051
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
mov eax, dword [ebp - 0x6e0]
mov dword [esp], eax
call fcn.00406700
mov edx, dword [ebp - 0x69c]
test edx, edx
je 0x404f41
cmp word [edx], 0
setne dl
movzx edx, dl
mov dword [esp + 8], eax
xor esi, esi
mov ebx, 2
mov edi, 0xa
mov dword [esp], edx
mov dword [esp + 4], str.got__s_n
call fcn.00405bb0
mov eax, dword [ebp - 0x69c]
mov edx, 0xd7
call fcn.00401040
mov eax, dword [ebp - 0x69c]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
mov eax, dword [ebp - 0x6a0]
sub esp, 4
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
mov eax, dword [ebp - 0x6d4]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov word [ebp - 0x690], bx
sub esp, 4
mov word [ebp - 0x688], si
mov dword [esp], str.notepad.exe
mov word [ebp - 0x670], di
lea edi, [ebp - 0x670]
mov dword [ebp - 0x668], 0x80020004
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6cc]
sub esp, 4
mov dword [ebp - 0x6a0], eax
mov ecx, dword [edx]
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x690]
mov dword [esp], edx
mov dword [esp + 8], edi
lea edi, [ebp - 0x698]
mov dword [esp + 0x10], 0
mov dword [esp + 4], eax
call dword [ecx + 0x24]
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xe4
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6cc]
mov ecx, dword [ebp - 0x6a0]
mov dword [ebp - 0x698], 0xa
mov edx, dword [eax]
mov dword [esp + 0x10], edi
lea edi, [ebp - 0x670]
mov dword [esp + 4], ecx
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x698]
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xe8
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0xe9
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x698]
mov dword [esp + 4], str.got__u_n
cmp eax, 0xa
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6cc]
mov ecx, dword [ebp - 0x6a0]
mov dword [ebp - 0x698], 0xa
mov edx, dword [eax]
mov dword [esp + 0x10], edi
lea edi, [ebp - 0x690]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
lea edi, [ebp - 0x698]
mov dword [esp + 0xc], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xed
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0xee
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x698]
mov dword [esp + 4], str.got__u_n
cmp eax, 0xa
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov eax, 0xa
mov ecx, dword [ebp - 0x6a0]
mov dword [ebp - 0x698], 0xa
mov word [ebp - 0x670], ax
mov eax, dword [ebp - 0x6cc]
mov dword [ebp - 0x668], 0
mov edx, dword [eax]
mov dword [esp + 0x10], edi
lea edi, [ebp - 0x670]
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x690]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
lea edi, [ebp - 0x698]
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xf4
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80020005
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0xf5
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x698]
mov dword [esp + 4], str.got__u_n
cmp eax, 0xa
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6a0]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
mov eax, 0xb
mov dword [ebp - 0x698], 0xdeadbeef
sub esp, 4
mov word [ebp - 0x670], ax
mov eax, 0xffffffff
mov dword [esp], str.cmd.exe__c_rd__s__q_c:_nosuchdir
mov word [ebp - 0x668], ax
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6cc]
sub esp, 4
mov dword [ebp - 0x6a0], eax
mov ecx, dword [edx]
mov dword [esp + 0x10], edi
lea edi, [ebp - 0x670]
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x690]
mov dword [esp], edx
mov dword [esp + 8], edi
mov edi, 0x4083aa
mov dword [esp + 4], eax
call dword [ecx + 0x24]
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0xfe
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov esi, dword [str.windows]
mov ecx, 5
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405d20
jmp 0x4044ac
mov dword [esp + 4], 0xff
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x698]
mov dword [esp + 4], str.got__u_n
cmp eax, 2
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
call fcn.00405d70
call fcn.00405d50
test eax, eax
jne 0x404470
mov eax, dword [ebp - 0x6a0]
lea edi, [ebp - 0x698]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
mov dword [ebp - 0x698], 0xdeadbeef
sub esp, 4
mov dword [esp], str._cmd.exe____c_rd__s__q_c:_nosuchdir
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6cc]
sub esp, 4
mov dword [ebp - 0x6a0], eax
mov ecx, dword [edx]
mov dword [esp + 0x10], edi
lea edi, [ebp - 0x670]
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x690]
mov dword [esp], edx
mov dword [esp + 8], edi
mov edi, 0x4083aa
mov dword [esp + 4], eax
call dword [ecx + 0x24]
sub esp, 0x14
mov ebx, eax
mov dword [esp + 4], 0x105
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov esi, dword [str.windows]
mov ecx, 5
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405d20
jmp 0x4045ae
mov dword [esp + 4], 0x106
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x698]
mov dword [esp + 4], str.got__u_n
cmp eax, 2
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
call fcn.00405d70
call fcn.00405d50
test eax, eax
jne 0x404572
mov esi, eax
mov eax, dword [ebp - 0x6a0]
lea edi, [ebp - 0x630]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
sub esp, 4
mov dword [esp + 4], 0x104
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_GetSystemDirectoryW]
mov edx, edi
sub esp, 8
cmp word [ebp - 0x630], 0
je 0x4045f9
add edx, 2
cmp word [edx], 0
jne 0x4045f0
xor eax, eax
mov ecx, 0x5c
jmp 0x404609
movzx ecx, word [eax + str.cmd.exe]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x404602
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
sub esp, 4
mov ebx, eax
mov dword [esp + 4], 0x10c
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.cmd.exe_not_found_n
setne al
lea ebx, [ebp - 0x428]
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], ebx
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetTempPathW]
mov edx, ebx
sub esp, 8
cmp word [ebp - 0x428], 0
je 0x40467e
add edx, 2
cmp word [edx], 0
jne 0x404675
xor eax, eax
mov ecx, 0x77
jmp 0x404697
movzx ecx, word [eax + str.wshom_test_dir]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x404690
mov dword [esp + 4], 0
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CreateDirectoryW]
mov edx, ebx
sub esp, 8
cmp word [ebp - 0x428], 0
je 0x4046cc
add edx, 2
cmp word [edx], 0
jne 0x4046c3
xor eax, eax
mov ecx, 0x5c
jmp 0x4046dc
movzx ecx, word [eax + str.cmd.exe]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4046d5
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_CopyFileW]
mov ecx, 0x22
xor eax, eax
mov word [ebp - 0x220], cx
mov ecx, dword [ebp - 0x6e4]
sub esp, 0xc
movzx edx, word [ebx + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x404714
cmp word [ebp - 0x220], 0
je 0x404745
mov esi, dword [ebp - 0x6e0]
add esi, 2
cmp word [esi], 0
jne 0x404734
sub esi, dword [ebp - 0x6e0]
sar esi, 1
mov edx, 0x22
cmp word [ebp - 0x428], 0
mov word [ebp + esi*2 - 0x220], dx
je 0x405030
mov eax, ebx
add eax, 2
cmp word [eax], 0
jne 0x404762
sub eax, ebx
sar eax, 1
lea ecx, [eax + eax + 4]
add ecx, dword [ebp - 0x6e0]
xor eax, eax
mov edx, 0x20
jmp 0x404789
movzx edx, word [eax + str.__c_rd__s__q_c:_nosuchdir]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x404782
mov eax, dword [ebp - 0x6e0]
lea edi, [ebp - 0x698]
mov dword [ebp - 0x698], 0xdeadbeef
mov dword [esp], eax
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6cc]
sub esp, 4
mov dword [ebp - 0x6a0], eax
mov ecx, dword [edx]
mov dword [esp + 0x10], edi
lea edi, [ebp - 0x670]
mov dword [esp + 0xc], edi
lea edi, [ebp - 0x690]
mov dword [esp], edx
mov dword [esp + 8], edi
mov edi, 0x4083aa
mov dword [esp + 4], eax
call dword [ecx + 0x24]
sub esp, 0x14
mov esi, eax
mov dword [esp + 4], 0x11d
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov esi, dword [str.windows]
mov ecx, 5
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405d20
jmp 0x40487f
mov dword [esp + 4], 0x11e
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x698]
mov dword [esp + 4], str.got__u_n
cmp eax, 2
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00405bb0
call fcn.00405d70
call fcn.00405d50
test eax, eax
jne 0x404843
mov esi, eax
mov eax, dword [ebp - 0x6a0]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
sub esp, 4
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_DeleteFileW]
sub esp, 4
cmp word [ebp - 0x428], 0
je 0x405020
mov eax, ebx
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x4048c0
sub eax, ebx
sar eax, 1
mov edx, eax
mov ecx, 0x63
mov eax, str.cmd.exe
jmp 0x4048e4
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4048e0
sub eax, str.cmd.exe
mov dword [esp], ebx
sar eax, 1
sub edx, eax
xor eax, eax
mov word [ebp + edx*2 - 0x428], ax
call dword [sym.imp.kernel32.dll_RemoveDirectoryW]
mov eax, dword [ebp - 0x6cc]
mov dword [ebp - 0x6a0], 0
lea ecx, [ebp - 0x6a0]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x50]
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x12b
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp + 4], 0x12c
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, dword [ebp - 0x6a0]
test eax, eax
je 0x40498b
cmp word [eax], 0
setne al
movzx eax, al
mov esi, eax
mov dword [esp + 4], str.got_empty_string_n
mov dword [esp], esi
call fcn.00405bb0
mov eax, dword [ebp - 0x6a0]
mov edx, 0x12d
call fcn.00401040
mov eax, dword [ebp - 0x6a0]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
mov eax, dword [ebp - 0x6cc]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x54]
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x131
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
mov eax, 1
cmp ebx, 0x80070057
je 0x404a13
xor eax, eax
cmp ebx, 0x800703e6
sete al
mov dword [esp], eax
call fcn.00405a20
test eax, eax
setne al
movzx eax, al
mov dword [esp + 8], ebx
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp], 0x4085fc
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6cc]
mov dword [ebp - 0x6a0], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 4], eax
call dword [ecx + 0x54]
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x136
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80070002
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6a0]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
sub esp, 4
mov dword [esp], str.deadparrot
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6cc]
mov dword [ebp - 0x6a0], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 4], eax
call dword [ecx + 0x54]
sub esp, 8
mov ebx, eax
mov dword [esp + 4], 0x13b
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80070002
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6a0]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
mov eax, dword [ebp - 0x6cc]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x4c]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x140
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
lea ebx, [ebp - 0x6d0]
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6cc]
mov edx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x4c]
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x143
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80020009
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov dword [esp], 0x4085fc
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6cc]
mov dword [ebp - 0x6a0], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call dword [ecx + 0x4c]
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x147
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80070002
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6a0]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
sub esp, 4
mov dword [esp], str._deadbeaf___c_echo_test
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6cc]
mov dword [ebp - 0x6a0], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call dword [ecx + 0x4c]
sub esp, 0xc
mov esi, eax
mov dword [esp + 4], 0x14c
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
cmp esi, 0x80070002
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6a0]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
sub esp, 4
mov dword [esp], str._ComSpec___c_echo_test
call sub.oleaut32.dll_SysAllocString
mov edx, dword [ebp - 0x6cc]
mov dword [ebp - 0x6a0], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call dword [ecx + 0x4c]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], 0x151
mov dword [esp], str..._wine_dlls_wshom.ocx_tests_wshom.c
call fcn.00405940
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.got_0x_08x_n
mov dword [esp], eax
call fcn.00405bb0
mov eax, dword [ebp - 0x6a0]
mov dword [esp], eax
call sub.oleaut32.dll_SysFreeString
mov eax, dword [ebp - 0x6c4]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x6c0]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x6cc]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x6b8]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ax, 0x22
je 0x404d93
cmp ax, 0x5c
jne 0x404dc3
mov ebx, 0x5c5c
add edx, 2
mov eax, ecx
mov word [edx - 2], bx
jmp 0x403e70
mov eax, 0x745c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x403e70
mov edi, 0x225c
add edx, 2
mov eax, ecx
mov word [edx - 2], di
jmp 0x403e70
mov eax, 0x725c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x403e70
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x404f90
mov edi, eax
mov byte [edx], 0x5c
add edx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefe]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [edx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefe]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefe]
and edi, 0xf
mov byte [edx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefe]
mov byte [edx - 1], al
mov eax, ecx
mov byte [edx - 2], bl
jmp 0x403e70
cmp ax, 0x22
je 0x404e55
cmp ax, 0x5c
jne 0x404e70
mov ebx, 0x5c5c
add edx, 2
mov eax, ecx
mov word [edx - 2], bx
jmp 0x404030
mov eax, 0x725c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x404030
mov edi, 0x225c
add edx, 2
mov eax, ecx
mov word [edx - 2], di
jmp 0x404030
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x404fa0
mov edi, eax
mov byte [edx], 0x5c
add edx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefe]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [edx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefe]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefe]
and edi, 0xf
mov byte [edx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefe]
mov byte [edx - 1], al
mov eax, ecx
mov byte [edx - 2], bl
jmp 0x404030
mov eax, 0x745c
add edx, 2
mov word [edx - 2], ax
mov eax, ecx
jmp 0x404030
mov edi, dword [0x4086f0]
cmp dword [eax + 4], edi
jne 0x4036e9
mov edi, dword [0x4086f4]
cmp dword [eax + 8], edi
jne 0x4036e9
mov edi, dword [0x4086f8]
cmp dword [eax + 0xc], edi
jne 0x4036e9
xor eax, eax
jmp 0x4036ee
movzx ebx, bx
mov dword [esp], str._04x
mov dword [esp + 4], ebx
call fcn.00401000
mov edx, dword [ebp - 0x69c]
test edx, edx
jne 0x404070
xor edx, edx
jmp 0x40407a
movzx ebx, bx
mov dword [esp], str._04x
lea edi, [ebp - 0x21e]
mov dword [esp + 4], ebx
call fcn.00401000
mov edx, dword [ebp - 0x69c]
mov dword [ebp - 0x6e4], edi
lea edi, [ebp - 0x220]
mov dword [ebp - 0x6e0], edi
test edx, edx
jne 0x403eb6
xor edx, edx
jmp 0x403ec0
mov byte [edx], al
add edx, 1
mov eax, ecx
jmp 0x403e70
mov byte [edx], al
add edx, 1
mov eax, ecx
jmp 0x404030
lea edi, [ebp - 0x21e]
mov edx, dword [ebp - 0x69c]
mov eax, str._invalid_
mov dword [ebp - 0x6e4], edi
lea edi, [ebp - 0x220]
mov dword [ebp - 0x6e0], edi
jmp 0x403eae
mov edx, dword [ebp - 0x69c]
mov eax, str._invalid_
jmp 0x404068
lea edi, [ebp - 0x21e]
mov eax, str._null_
xor edx, edx
mov dword [ebp - 0x6e4], edi
lea edi, [ebp - 0x220]
mov dword [ebp - 0x6e0], edi
jmp 0x403ec0
mov eax, str._null_
xor edx, edx
jmp 0x40407a
xor edx, edx
jmp 0x4048cf
mov ecx, 4
jmp 0x404773