Function at 0x5b4db0
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d5f85
mov eax, dword fs:[0]
push eax
sub esp, 0x64
push ebx
push esi
push edi
mov eax, dword [0x638fe4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov dword [ebp - 0x14], esi
mov edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [0x643bf0]
test eax, eax
je 0x5b5b92
xor ebx, ebx
cmp esi, 0x9fbf1
push 0x10018
setne bl
dec ebx
and ebx, 4
push dword [ebx + 0x644028]
call eax
cmp eax, 0x13ba
jne 0x5b5b7a
push str.http:__rs.ciggws.net_rd2.cgi_
lea ecx, [ebp - 0x3c]
call fcn.00403280
mov dword [ebp - 4], 0
call fcn.00418413
mov ecx, eax
test ecx, ecx
jne 0x5b4e3f
push 0x80004005
call fcn.00402650
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b4e54
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x5b4e56
call edx
add eax, 0x10
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
cmp edi, 0x2473
jne 0x5b4e74
push 0x12
push str.FNCSCAN_U_ERR_COM
jmp 0x5b4e7b
push 0xe
push str.FNCSCAN_U_COM
call fcn.00403620
call fcn.00418413
mov ecx, eax
test ecx, ecx
jne 0x5b4e95
push 0x80004005
call fcn.00402650
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b4eaa
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x5b4eac
call edx
add eax, 0x10
mov dword [ebp - 0x34], eax
mov byte [ebp - 4], 2
call fcn.00418413
mov ecx, eax
test ecx, ecx
jne 0x5b4ecb
push 0x80004005
call fcn.00402650
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b4ee0
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x5b4ee2
call edx
add eax, 0x10
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 3
push 0x610460
push eax
call fcn.00402e70
mov esi, dword [ebp - 0x10]
lea eax, [ebp - 0x34]
push esi
push str.OSV_s
push eax
call fcn.00402e70
add esp, 0x14
call fcn.00418413
mov ecx, eax
test ecx, ecx
jne 0x5b4f24
push 0x80004005
call fcn.00402650
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b4f39
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x5b4f3b
call edx
add eax, 0x10
mov dword [ebp - 0x30], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c]
mov edx, dword [ebp - 0x14]
push 0x20014
call fcn.005b5f80
add esp, 4
mov byte [ebp - 4], 5
push dword [eax]
lea eax, [ebp - 0x30]
push str.TYP_s
push eax
call fcn.00402e70
mov byte [ebp - 4], 4
or ebx, 0xffffffff
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
add ecx, 0xfffffff0
mov eax, ebx
lock xadd dword [ecx + 0xc], eax
dec eax
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
test eax, eax
jg 0x5b4fcd
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b4fc8
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b4fc1
push 0
push dword [edx + 4]
call edi
jmp 0x5b4fcd
mov ecx, edx
call dword [ebp - 0x28]
jmp 0x5b4fcd
mov ecx, edx
call dword [ebp - 0x28]
call fcn.00418413
mov ecx, eax
test ecx, ecx
jne 0x5b4fe2
push 0x80004005
call fcn.00402650
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b4ff7
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x5b4ff9
call edx
add eax, 0x10
mov dword [ebp - 0x2c], eax
push 0x60e1d8
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 6
call fcn.00406070
mov byte [ebp - 4], 7
push 0x2e
push dword [ebp - 0x18]
call fcn.005471eb
add esp, 8
test eax, eax
jne 0x5b502a
or eax, 0xffffffff
jmp 0x5b502f
sub eax, dword [ebp - 0x18]
sar eax, 1
push eax
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x18]
call fcn.004088d0
mov byte [ebp - 4], 8
mov edx, dword [eax]
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
mov dword [ebp - 0x20], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x28], eax
lea eax, [edx - 0x10]
cmp eax, ecx
je 0x5b5094
cmp dword [ecx + 0xc], 0
jl 0x5b5088
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x5b5088
mov eax, dword [ebp - 0x28]
push eax
call fcn.004035b0
mov ecx, dword [ebp - 0x20]
add esp, 4
mov edi, eax
call fcn.00402670
lea eax, [edi + 0x10]
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [ebp - 0x18], eax
jmp 0x5b5094
push dword [edx - 0xc]
lea ecx, [ebp - 0x18]
push edx
call fcn.00403620
mov byte [ebp - 4], 7
mov eax, ebx
mov ecx, dword [ebp - 0x40]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b50e9
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b50e4
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b50dd
push 0
push dword [edx + 4]
call edi
jmp 0x5b50e9
mov ecx, edx
call dword [ebp - 0x28]
jmp 0x5b50e9
mov ecx, edx
call dword [ebp - 0x28]
push dword [ebp - 0x18]
lea eax, [ebp - 0x2c]
push 0x610464
push eax
call fcn.00402e70
add esp, 0xc
call fcn.00418413
mov ecx, eax
test ecx, ecx
jne 0x5b5112
push 0x80004005
call fcn.00402650
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5127
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x5b5129
call edx
add eax, 0x10
mov dword [ebp - 0x20], eax
push 7
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 9
push str.CTV1.2
call fcn.00403620
call fcn.00418413
mov ecx, eax
test ecx, ecx
jne 0x5b5157
push 0x80004005
call fcn.00402650
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b516c
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x5b516e
call edx
add eax, 0x10
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x40]
mov edx, dword [ebp - 0x14]
push 0x23c9
call fcn.005b5f80
add esp, 4
mov byte [ebp - 4], 0xb
push dword [eax]
lea eax, [ebp - 0x28]
push str.LNG_s
push eax
call fcn.00402e70
mov byte [ebp - 4], 0xa
add esp, 0xc
mov ecx, dword [ebp - 0x40]
mov eax, ebx
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b51fa
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x14], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b51f5
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x14], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b51ee
push 0
push dword [edx + 4]
call edi
jmp 0x5b51fa
mov ecx, edx
call dword [ebp - 0x14]
jmp 0x5b51fa
mov ecx, edx
call dword [ebp - 0x14]
call fcn.00418413
mov ecx, eax
test ecx, ecx
jne 0x5b520f
push 0x80004005
call fcn.00402650
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5224
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x5b5226
call edx
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x1c]
cmp eax, 0xe6c
jg 0x5b5262
je case.0x5b5246.3632
add eax, 0xfffff1d1
cmp eax, 6
ja case.0x5b5246.3632
jmp dword [eax*4 + 0x5b5f0c]
push str.CTNSU_2FTop.html
jmp 0x5b5292
push str.CTNSU_2Fstorages.html
jmp 0x5b5292
push str.CTNSU_2FSu_PAGE4.html
jmp 0x5b5292
sub eax, 0xe6d
je case.0x5b5246.3633
sub eax, 1
je case.0x5b5246.3637
sub eax, 0x1605
je 0x5b5286
push 0x11
push str.CTNSU_2FTop.html
lea ecx, [ebp - 0x14]
call fcn.00403620
jmp 0x5b529a
push 0x61055c
jmp 0x5b5292
push str.CTNSU_2FSu_PAGE3.html
lea ecx, [ebp - 0x14]
call fcn.004031d0
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.004030d0
add esp, 0xc
push 0x610558
push eax
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 0xd
push eax
call fcn.004087e0
add esp, 0xc
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xe
push ecx
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004030d0
add esp, 0xc
push 0x610558
push eax
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 0xf
push eax
call fcn.004087e0
add esp, 0xc
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x10
push ecx
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.004030d0
add esp, 0xc
push 0x610558
push eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x11
push eax
call fcn.004087e0
add esp, 0xc
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x12
push ecx
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.004030d0
add esp, 0xc
push 0x610558
push eax
lea eax, [ebp - 0x50]
mov byte [ebp - 4], 0x13
push eax
call fcn.004087e0
add esp, 0xc
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x14
push ecx
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.004030d0
add esp, 0xc
push 0x610558
push eax
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x48]
push eax
call fcn.004087e0
add esp, 0xc
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x16
push ecx
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.004030d0
add esp, 0xc
push 0x610558
push eax
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x17
push eax
call fcn.004087e0
add esp, 0xc
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x18
push ecx
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.004030d0
mov byte [ebp - 4], 0x17
add esp, 0xc
mov ecx, dword [ebp - 0x40]
mov eax, ebx
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5408
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5403
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b53fc
push 0
push dword [edx + 4]
call edi
jmp 0x5b5408
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b5408
mov ecx, edx
call dword [ebp - 0x1c]
mov byte [ebp - 4], 0x16
mov eax, ebx
mov ecx, dword [ebp - 0x44]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5460
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b545b
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5454
push 0
push dword [edx + 4]
call edi
jmp 0x5b5460
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b5460
mov ecx, edx
call dword [ebp - 0x1c]
mov byte [ebp - 4], 0x15
mov eax, ebx
mov ecx, dword [ebp - 0x48]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b54b8
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b54b3
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b54ac
push 0
push dword [edx + 4]
call edi
jmp 0x5b54b8
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b54b8
mov ecx, edx
call dword [ebp - 0x1c]
mov byte [ebp - 4], 0x14
mov eax, ebx
mov ecx, dword [ebp - 0x4c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5510
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b550b
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5504
push 0
push dword [edx + 4]
call edi
jmp 0x5b5510
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b5510
mov ecx, edx
call dword [ebp - 0x1c]
mov byte [ebp - 4], 0x13
mov eax, ebx
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5568
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5563
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b555c
push 0
push dword [edx + 4]
call edi
jmp 0x5b5568
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b5568
mov ecx, edx
call dword [ebp - 0x1c]
mov byte [ebp - 4], 0x12
mov eax, ebx
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b55c0
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b55bb
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b55b4
push 0
push dword [edx + 4]
call edi
jmp 0x5b55c0
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b55c0
mov ecx, edx
call dword [ebp - 0x1c]
mov byte [ebp - 4], 0x11
mov eax, ebx
mov ecx, dword [ebp - 0x58]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5618
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5613
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b560c
push 0
push dword [edx + 4]
call edi
jmp 0x5b5618
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b5618
mov ecx, edx
call dword [ebp - 0x1c]
mov byte [ebp - 4], 0x10
mov eax, ebx
mov ecx, dword [ebp - 0x5c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5670
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b566b
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5664
push 0
push dword [edx + 4]
call edi
jmp 0x5b5670
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b5670
mov ecx, edx
call dword [ebp - 0x1c]
mov byte [ebp - 4], 0xf
mov eax, ebx
mov ecx, dword [ebp - 0x60]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b56c8
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b56c3
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b56bc
push 0
push dword [edx + 4]
call edi
jmp 0x5b56c8
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b56c8
mov ecx, edx
call dword [ebp - 0x1c]
mov byte [ebp - 4], 0xe
mov eax, ebx
mov ecx, dword [ebp - 0x64]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5720
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b571b
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5714
push 0
push dword [edx + 4]
call edi
jmp 0x5b5720
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b5720
mov ecx, edx
call dword [ebp - 0x1c]
mov byte [ebp - 4], 0xd
mov eax, ebx
mov ecx, dword [ebp - 0x68]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5778
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5773
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x1c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b576c
push 0
push dword [edx + 4]
call edi
jmp 0x5b5778
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b5778
mov ecx, edx
call dword [ebp - 0x1c]
mov byte [ebp - 4], 0xc
mov eax, ebx
mov ecx, dword [ebp - 0x6c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b57cd
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b57c8
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b57c1
push 0
push dword [edx + 4]
call edi
jmp 0x5b57cd
mov ecx, edx
call dword [ebp - 0x1c]
jmp 0x5b57cd
mov ecx, edx
call dword [ebp - 0x1c]
push 5
push 0
push 0x60ab98
push dword [ebp - 0x38]
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ecx, dword [ebp - 0x38]
mov eax, ebx
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b583a
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5835
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x6c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b582e
push 0
push dword [edx + 4]
call edi
jmp 0x5b583a
mov ecx, edx
call dword [ebp - 0x6c]
jmp 0x5b583a
mov ecx, edx
call dword [ebp - 0x6c]
mov byte [ebp - 4], 0xa
mov eax, ebx
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5892
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b588d
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x6c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5886
push 0
push dword [edx + 4]
call edi
jmp 0x5b5892
mov ecx, edx
call dword [ebp - 0x6c]
jmp 0x5b5892
mov ecx, edx
call dword [ebp - 0x6c]
mov byte [ebp - 4], 9
mov eax, ebx
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b58ea
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b58e5
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x6c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b58de
push 0
push dword [edx + 4]
call edi
jmp 0x5b58ea
mov ecx, edx
call dword [ebp - 0x6c]
jmp 0x5b58ea
mov ecx, edx
call dword [ebp - 0x6c]
mov byte [ebp - 4], 7
mov eax, ebx
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5942
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b593d
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x6c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5936
push 0
push dword [edx + 4]
call edi
jmp 0x5b5942
mov ecx, edx
call dword [ebp - 0x6c]
jmp 0x5b5942
mov ecx, edx
call dword [ebp - 0x6c]
mov byte [ebp - 4], 6
mov eax, ebx
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b599a
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5995
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x6c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b598e
push 0
push dword [edx + 4]
call edi
jmp 0x5b599a
mov ecx, edx
call dword [ebp - 0x6c]
jmp 0x5b599a
mov ecx, edx
call dword [ebp - 0x6c]
mov byte [ebp - 4], 4
mov eax, ebx
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b59f2
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b59ed
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x6c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b59e6
push 0
push dword [edx + 4]
call edi
jmp 0x5b59f2
mov ecx, edx
call dword [ebp - 0x6c]
jmp 0x5b59f2
mov ecx, edx
call dword [ebp - 0x6c]
mov byte [ebp - 4], 3
mov eax, ebx
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5a4a
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x10]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5a45
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x6c], edi
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5a3e
push 0
push dword [edx + 4]
call edi
jmp 0x5b5a4a
mov ecx, edx
call dword [ebp - 0x6c]
jmp 0x5b5a4a
mov ecx, edx
call dword [ebp - 0x6c]
mov byte [ebp - 4], 2
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x5b5a86
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5a84
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5a84
push 0
push dword [ecx + 4]
call edi
jmp 0x5b5a86
call edx
mov byte [ebp - 4], 1
mov eax, ebx
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5ac7
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5ac3
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5ac3
push 0
push dword [edx + 4]
call edi
jmp 0x5b5ac7
mov ecx, edx
call esi
mov byte [ebp - 4], 0
mov eax, ebx
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5b08
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5b04
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5b04
push 0
push dword [edx + 4]
call edi
jmp 0x5b5b08
mov ecx, edx
call esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x5b5e86
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5b5f
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5b5f
push 0
push dword [edx + 4]
call edi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call esi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x643bf0]
test eax, eax
je 0x5b5b92
push 0x2000000
push dword [ebx + 0x644028]
call eax
jmp 0x5b5b94
xor eax, eax
push eax
mov edx, esi
lea ecx, [ebp - 0x6c]
call fcn.005b5f80
add esp, 4
mov edx, eax
mov dword [ebp - 4], 0x19
lea ecx, [ebp - 0x34]
call fcn.005af020
mov byte [ebp - 4], 0x1b
or ebx, 0xffffffff
mov ecx, dword [ebp - 0x6c]
mov eax, ebx
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
test eax, eax
jg 0x5b5c11
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x68], edi
mov edi, dword [ebp - 0x1c]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5c0c
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x68], edi
mov edi, dword [ebp - 0x1c]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5c05
push 0
push dword [edx + 4]
call esi
jmp 0x5b5c11
mov ecx, edx
call dword [ebp - 0x68]
jmp 0x5b5c11
mov ecx, edx
call dword [ebp - 0x68]
push str.SOFTWARECanonEasy_Guide_Viewer
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], 0
call fcn.00403280
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0x1c
push eax
lea eax, [ebp - 0x68]
push 0x60fc08
push eax
call fcn.004086f0
add esp, 0xc
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x20]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00403780
mov byte [ebp - 4], 0x1c
mov eax, ebx
mov ecx, dword [ebp - 0x68]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5ca8
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
mov dword [ebp - 0x64], edi
mov edi, dword [ebp - 0x1c]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5ca3
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
mov dword [ebp - 0x64], esi
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5c9c
push 0
push dword [edx + 4]
call esi
jmp 0x5b5ca8
mov ecx, edx
call dword [ebp - 0x64]
jmp 0x5b5ca8
mov ecx, edx
call dword [ebp - 0x64]
lea eax, [ebp - 0x10]
push eax
push 0x20019
push 0
push dword [ebp - 0x20]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp dword [ebp - 0x10], 0
je 0x5b5d66
call fcn.00418413
mov ecx, eax
test ecx, ecx
jne 0x5b5ce0
push 0x80004005
call fcn.00402650
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5cf5
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x5b5cf7
call edx
add eax, 0x10
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x10]
mov edx, str.APP_PATH
push eax
call fcn.005b0e00
mov esi, dword [ebp - 0x24]
add esp, 4
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x5b5d58
lea ecx, [ebp - 0x1c]
call fcn.00402be0
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x10]
mov edx, str.Info_PATH
push eax
call fcn.005b0e00
add esp, 4
push dword [ebp - 0x1c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x5b5db2
lea ecx, [ebp - 0x1c]
call fcn.00402b90
lea ecx, [ebp - 0x24]
call fcn.00402b90
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebp - 4], 0x1b
mov eax, ebx
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5b5ea1
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5e9d
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5e9d
push 0
push dword [edx + 4]
call esi
jmp 0x5b5ea1
lea ecx, [ebp - 0x14]
call fcn.00402be0
add edi, 0xfffff1d1
mov byte [ebp - 4], 0x20
cmp edi, 0x3f
ja case.0x5b5dd0.3631
movzx eax, byte [edi + 0x5b5f3c]
jmp dword [eax*4 + 0x5b5f28]
mov edx, str.SU_PAGE2
jmp 0x5b5df1
mov edx, str.SU_PAGE3
jmp 0x5b5df1
mov edx, str.SU_PAGE4
jmp 0x5b5df1
mov edx, str.SU_PAGE1
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x14]
push eax
call fcn.005b0e00
add esp, 4
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x60e348
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x10], 0
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004087e0
add esp, 0xc
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x21
push ecx
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.004030d0
add esp, 0xc
push 5
push 0
push dword [eax]
push esi
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 0x68]
call fcn.00402b90
lea ecx, [ebp - 0x64]
call fcn.00402b90
lea ecx, [ebp - 0x14]
call fcn.00402b90
lea ecx, [ebp - 0x1c]
call fcn.00402b90
lea ecx, [ebp - 0x24]
call fcn.00402b90
lea ecx, [ebp - 0x20]
call fcn.00402b90
lea ecx, [ebp - 0x34]
call fcn.00402b90
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call edi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x5b5ef5
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5b5ef1
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov edi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5b5ef1
push 0
push dword [edx + 4]
call esi
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call edi
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret