Function at 0x567980
Capabilities:
Accept command line arguments
Check if file exists
Delete directory
Delete file
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57a40e
mov eax, dword fs:[0]
push eax
sub esp, 0x810
mov eax, dword [0x5d52e0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x5679c8
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x794], eax
mov dword [ebp - 4], 0
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x5679fb
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x754], eax
mov byte [ebp - 4], 1
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567a2b
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7bc], eax
mov byte [ebp - 4], 2
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567a5b
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x760], eax
mov byte [ebp - 4], 3
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567a8b
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x798], eax
mov byte [ebp - 4], 4
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567abb
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7b0], eax
mov byte [ebp - 4], 5
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567aeb
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7c4], eax
mov byte [ebp - 4], 6
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567b1b
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7d0], eax
mov byte [ebp - 4], 7
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567b4b
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x76c], edi
mov byte [ebp - 4], 8
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567b7b
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x79c], eax
mov byte [ebp - 4], 9
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567bab
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7b8], eax
mov byte [ebp - 4], 0xa
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567bdb
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7c8], eax
mov byte [ebp - 4], 0xb
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567c0b
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7c0], eax
mov byte [ebp - 4], 0xc
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567c3b
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x790], eax
mov byte [ebp - 4], 0xd
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567c6b
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7cc], eax
mov byte [ebp - 4], 0xe
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x567c9b
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x774], ebx
xor eax, eax
mov dword [ebp - 0x7ac], eax
mov dword [ebp - 0x7a8], eax
mov dword [ebp - 0x7a4], eax
push 0x20
lea esi, [ebp - 0x7ac]
mov byte [ebp - 4], 0x10
call fcn.00407040
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea ecx, [ebp - 0x800]
push ecx
xor esi, esi
push eax
mov dword [ebp - 0x800], esi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x764], eax
cmp dword [ebp - 0x800], esi
jle 0x56833c
mov edx, dword [ebp - 0x764]
mov eax, dword [edx + esi*4]
push eax
lea ecx, [ebp - 0x748]
call fcn.00401210
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x748]
mov eax, dword [ecx - 0xc]
test eax, eax
jne 0x567d32
mov byte [ebp - 4], 0x10
lea eax, [ecx - 0x10]
jmp 0x56830a
js 0x568349
movzx edx, word [ecx]
cmp edx, 0x2d
je 0x567d59
test eax, eax
js 0x568349
cmp edx, 0x2f
je 0x567d59
mov byte [ebp - 4], 0x10
lea eax, [ecx - 0x10]
jmp 0x56830a
mov ebx, 1
cmp eax, ebx
jge 0x567d68
mov ebx, eax
test eax, eax
jle 0x567dda
mov edi, eax
sub edi, ebx
cmp dword [ecx - 4], 1
jle 0x567d84
push eax
lea ecx, [ebp - 0x748]
call fcn.00401af0
mov ecx, dword [ebp - 0x748]
lea eax, [edi + edi + 2]
push eax
lea edx, [ecx + ebx*2]
push edx
push eax
push ecx
call fcn.004ff58b
add esp, 0x10
cmp eax, 0x50
ja case.0x567da7.1
movzx eax, byte [eax + 0x56a278]
jmp dword [eax*4 + 0x56a268]
test edi, edi
js 0x568349
mov eax, dword [ebp - 0x748]
cmp edi, dword [eax - 8]
jg 0x568349
mov dword [eax - 0xc], edi
mov edx, dword [ebp - 0x748]
xor ecx, ecx
mov word [edx + edi*2], cx
mov ecx, dword [ebp - 0x748]
cmp dword [ecx - 0xc], 0
jl 0x568349
push str.StiDevice:
push ecx
call fcn.004fffd1
mov ecx, dword [ebp - 0x748]
add esp, 8
test eax, eax
je 0x567e74
sub eax, ecx
sar eax, 1
jne 0x567e74
push str.StiDevice:
lea ecx, [ebp - 0x778]
call fcn.00401210
mov edx, dword [eax]
mov ecx, dword [ebp - 0x748]
mov edi, dword [ecx - 0xc]
mov eax, dword [ebp - 0x778]
sub edi, dword [edx - 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x567e42
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
lea ecx, [ebp - 0x750]
push ecx
lea ecx, [ebp - 0x748]
call fcn.00406d20
push eax
lea ecx, [ebp - 0x79c]
mov byte [ebp - 4], 0x12
call fcn.004015b0
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x750]
jmp 0x5680df
cmp dword [ecx - 0xc], 0
jl 0x568349
push str.StiEvent:
push ecx
call fcn.004fffd1
mov ecx, dword [ebp - 0x748]
add esp, 8
test eax, eax
je 0x567f0e
sub eax, ecx
sar eax, 1
jne 0x567f0e
push str.StiEvent:
lea ecx, [ebp - 0x74c]
call fcn.00401210
mov edx, dword [eax]
mov ecx, dword [ebp - 0x748]
mov edi, dword [ecx - 0xc]
mov eax, dword [ebp - 0x74c]
sub edi, dword [edx - 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x567edc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
lea ecx, [ebp - 0x768]
push ecx
lea ecx, [ebp - 0x748]
call fcn.00406d20
push eax
lea ecx, [ebp - 0x7b8]
mov byte [ebp - 4], 0x13
call fcn.004015b0
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x768]
jmp 0x5680df
cmp dword [ecx - 0xc], 0
jl 0x568349
push str.NetDevice:
push ecx
call fcn.004fffd1
mov ecx, dword [ebp - 0x748]
add esp, 8
test eax, eax
je 0x567fa8
sub eax, ecx
sar eax, 1
jne 0x567fa8
push str.NetDevice:
lea ecx, [ebp - 0x7b4]
call fcn.00401210
mov edx, dword [eax]
mov ecx, dword [ebp - 0x748]
mov edi, dword [ecx - 0xc]
mov eax, dword [ebp - 0x7b4]
sub edi, dword [edx - 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x567f76
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
lea ecx, [ebp - 0x78c]
push ecx
lea ecx, [ebp - 0x748]
call fcn.00406d20
push eax
lea ecx, [ebp - 0x7c8]
mov byte [ebp - 4], 0x14
call fcn.004015b0
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x78c]
jmp 0x5680df
cmp dword [ecx - 0xc], 0
jl 0x568349
push str.NetEvent:
push ecx
call fcn.004fffd1
mov ecx, dword [ebp - 0x748]
add esp, 8
test eax, eax
je 0x568042
sub eax, ecx
sar eax, 1
jne 0x568042
push str.NetEvent:
lea ecx, [ebp - 0x75c]
call fcn.00401210
mov edx, dword [eax]
mov ecx, dword [ebp - 0x748]
mov edi, dword [ecx - 0xc]
mov eax, dword [ebp - 0x75c]
sub edi, dword [edx - 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568010
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
lea ecx, [ebp - 0x808]
push ecx
lea ecx, [ebp - 0x748]
call fcn.00406d20
push eax
lea ecx, [ebp - 0x7c0]
mov byte [ebp - 4], 0x15
call fcn.004015b0
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x808]
jmp 0x5680df
cmp dword [ecx - 0xc], 0
jl 0x568349
push str.NetDSName:
push ecx
call fcn.004fffd1
mov ecx, dword [ebp - 0x748]
add esp, 8
test eax, eax
je 0x568104
sub eax, ecx
sar eax, 1
jne 0x568104
push str.NetDSName:
lea ecx, [ebp - 0x810]
call fcn.00401210
mov edx, dword [eax]
mov ecx, dword [ebp - 0x748]
mov edi, dword [ecx - 0xc]
mov eax, dword [ebp - 0x810]
sub edi, dword [edx - 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5680b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
lea ecx, [ebp - 0x818]
push ecx
lea ecx, [ebp - 0x748]
call fcn.00406d20
push eax
lea ecx, [ebp - 0x790]
mov byte [ebp - 4], 0x16
call fcn.004015b0
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x818]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg case.0x568252.101
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp case.0x568252.101
cmp dword [ecx - 0xc], 0
jl 0x568349
push str.NetAddress:
push ecx
call fcn.004fffd1
mov ecx, dword [ebp - 0x748]
add esp, 8
test eax, eax
je 0x568188
sub eax, ecx
sar eax, 1
jne 0x568188
push str.NetAddress:
lea ecx, [ebp - 0x814]
call fcn.00401210
mov ecx, dword [ebp - 0x748]
mov edi, dword [ecx - 0xc]
mov edx, dword [eax]
sub edi, dword [edx - 0xc]
lea ecx, [ebp - 0x814]
call fcn.00404b10
push edi
lea eax, [ebp - 0x80c]
push eax
lea ecx, [ebp - 0x748]
call fcn.00406d20
push eax
lea ecx, [ebp - 0x7cc]
mov byte [ebp - 4], 0x17
call fcn.004015b0
lea ecx, [ebp - 0x80c]
call fcn.00404b10
jmp case.0x568252.101
cmp dword [ecx - 0xc], 0
jl 0x568349
push str.NetINTData:
push ecx
call fcn.004fffd1
mov ecx, dword [ebp - 0x748]
add esp, 8
test eax, eax
je 0x56820c
sub eax, ecx
sar eax, 1
jne 0x56820c
push str.NetINTData:
lea ecx, [ebp - 0x804]
call fcn.00401210
mov ecx, dword [ebp - 0x748]
mov edi, dword [ecx - 0xc]
mov edx, dword [eax]
sub edi, dword [edx - 0xc]
lea ecx, [ebp - 0x804]
call fcn.00404b10
push edi
lea eax, [ebp - 0x758]
push eax
lea ecx, [ebp - 0x748]
call fcn.00406d20
push eax
lea ecx, [ebp - 0x774]
mov byte [ebp - 4], 0x18
call fcn.004015b0
lea ecx, [ebp - 0x758]
call fcn.00404b10
jmp case.0x568252.101
cmp dword [ecx - 0xc], 0
jl 0x568349
movzx edi, word [ecx]
push 1
push 0
lea ecx, [ebp - 0x748]
call fcn.00406aa0
lea ebx, [ebp - 0x748]
call fcn.00406c70
push edi
call fcn.00500697
movzx eax, ax
add eax, 0xffffff9c
add esp, 4
cmp eax, 0x16
ja case.0x568252.101
movzx ecx, byte [eax + 0x56a2f8]
jmp dword [ecx*4 + 0x56a2cc]
lea edx, [ebp - 0x748]
push edx
lea ecx, [ebp - 0x794]
jmp 0x5682f8
lea ecx, [ebp - 0x754]
jmp 0x5682f1
push 0
lea edi, [ebp - 0x748]
call fcn.0052c070
mov ecx, dword [ebp - 0x748]
add esp, 4
push ecx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je case.0x568252.101
mov edx, edi
push edx
lea ecx, [ebp - 0x7bc]
jmp 0x5682f8
lea ecx, [ebp - 0x760]
jmp 0x5682f1
lea ecx, [ebp - 0x748]
push ecx
lea ecx, [ebp - 0x760]
jmp 0x5682f8
lea edx, [ebp - 0x748]
push edx
lea ecx, [ebp - 0x798]
jmp 0x5682f8
lea ecx, [ebp - 0x7b0]
jmp 0x5682f1
lea ecx, [ebp - 0x748]
push ecx
lea ecx, [ebp - 0x7c4]
jmp 0x5682f8
lea edx, [ebp - 0x748]
push edx
lea ecx, [ebp - 0x7d0]
jmp 0x5682f8
lea ecx, [ebp - 0x76c]
lea eax, [ebp - 0x748]
push eax
call fcn.004015b0
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x748]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568323
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, dword [ebp - 0x800]
jl 0x567d00
mov edi, dword [ebp - 0x76c]
mov ebx, dword [ebp - 0x774]
mov esi, dword [edi - 0xc]
test esi, esi
je 0x568967
jns 0x56835d
push 0x80070057
call fcn.004010a0
call fcn.0040d074
call fcn.0040d0ac
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, esi
or eax, ecx
jge 0x568380
push esi
lea ecx, [ebp - 0x76c]
call fcn.004019b0
mov edi, dword [ebp - 0x76c]
lea ecx, [esi + 1]
push ecx
push edi
call fcn.0050084d
add esp, 8
cmp esi, dword [edi - 8]
jg 0x568349
xor edx, edx
mov dword [edi - 0xc], esi
mov word [edi + esi*2], dx
mov ecx, str.uninstall
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x5683c8
test dx, dx
je 0x5683c4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x5683c8
add eax, 4
add ecx, 4
test dx, dx
jne 0x5683a2
xor eax, eax
jmp 0x5683cd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x56864c
mov esi, dword [ebp - 0x794]
mov eax, dword [esi - 0xc]
mov edi, 0x9fbf1
test eax, eax
je 0x56840f
xor ecx, ecx
cmp dword [ebp + 8], edi
jne 0x5683f3
mov ecx, 1
mov edx, dword [0x5dd53c]
test edx, edx
je 0x56840f
inc eax
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push esi
push 0x20001
push eax
call edx
xor eax, eax
cmp dword [ebp + 8], edi
jne 0x56841b
mov eax, 1
mov ecx, dword [0x5dd558]
test ecx, ecx
je 0x568438
mov edx, dword [ebp - 0x754]
mov eax, dword [eax*4 + 0x5dd9a0]
push 0
push edx
push eax
call ecx
mov ecx, dword [ebp - 0x754]
cmp dword [ecx - 0xc], 0
jne 0x5686ea
call fcn.0040c84f
xor ecx, ecx
xor edi, edi
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x568464
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x750], esi
mov byte [ebp - 4], 0x19
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x5684a4
push 0x104
lea ecx, [ebp - 0x750]
call fcn.004019b0
mov esi, dword [ebp - 0x750]
mov ebx, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push 0x104
push esi
push str._APPDATA_CanonIJ_Scan_Utility
call ebx
mov eax, dword [esi - 8]
push eax
push esi
call fcn.004ff818
add esp, 8
cmp eax, edi
jl 0x568349
cmp eax, dword [esi - 8]
jg 0x568349
push esi
lea edx, [ebp - 0x22c]
xor ecx, ecx
push 0x105
mov dword [esi - 0xc], eax
push edx
mov word [esi + eax*2], cx
call fcn.00500277
mov eax, dword [esi - 0xc]
xor ecx, ecx
mov word [ebp + eax*2 - 0x22a], cx
xor eax, eax
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], eax
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x23c], eax
add esp, 0xc
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], eax
mov word [ebp - 0x230], ax
lea ecx, [ebp - 0x24c]
lea edx, [ebp - 0x22c]
mov eax, 0x414
push ecx
mov dword [ebp - 0x24c], edi
mov dword [ebp - 0x248], 3
mov dword [ebp - 0x244], edx
mov dword [ebp - 0x240], edi
mov word [ebp - 0x23c], ax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
call fcn.0040c84f
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x568588
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x74c], edi
mov byte [ebp - 4], 0x1a
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 0x104
or eax, ecx
jge 0x5685c8
push 0x104
lea ecx, [ebp - 0x74c]
call fcn.004019b0
mov edi, dword [ebp - 0x74c]
push 0x104
push edi
push str._APPDATA_Canon
call ebx
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x568349
cmp eax, dword [edi - 8]
jg 0x568349
xor ecx, ecx
mov dword [edi - 0xc], eax
push edi
mov word [edi + eax*2], cx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
add edi, 0xfffffff0
mov byte [ebp - 4], 0x19
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x568623
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0xfffffff0
mov byte [ebp - 4], 0x10
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5686ea
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
jmp 0x5686ea
mov ecx, str.install
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x568679
test dx, dx
je 0x568675
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x568679
add eax, 4
add ecx, 4
test dx, dx
jne 0x568653
xor eax, eax
jmp 0x56867e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x5686ea
mov eax, dword [ebp - 0x76c]
mov ecx, str.update
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x5686b6
test dx, dx
je 0x5686b2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x5686b6
add eax, 4
add ecx, 4
test dx, dx
jne 0x568690
xor eax, eax
jmp 0x5686bb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x5686ea
cmp dword [ebp + 8], 0x9fbf1
jne 0x5686cd
mov eax, 1
mov ecx, dword [0x5dd558]
test ecx, ecx
je 0x5686ea
mov edx, dword [ebp - 0x754]
mov eax, dword [eax*4 + 0x5dd9a0]
push 1
push edx
push eax
call ecx
mov eax, dword [ebp - 0x7ac]
test eax, eax
je 0x5686fd
push eax
call fcn.0040c6ec
add esp, 4
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x774]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568723
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x7cc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568749
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x790]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56876f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x7c0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568795
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x7c8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5687bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x7b8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5687e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x79c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568807
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x76c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56882d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x7d0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568853
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x7c4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568879
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x7b0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56889f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x798]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5688c5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x760]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5688eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x7bc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568911
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x754]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568937
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x794]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568960
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x56a23f
mov ecx, dword [ebp - 0x79c]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x568f3f
mov edx, dword [ebp - 0x7b8]
cmp dword [edx - 0xc], 0
je 0x568f3f
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x5689a2
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x750], eax
mov byte [ebp - 4], 0x1b
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x5689d2
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x78c], eax
push 0x10
push 0
push 0
mov ebx, 0x1c
push 0x5a9394
mov byte [ebp - 4], bl
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
xor ecx, ecx
mov dword [ebp - 0x24c], ecx
mov dword [ebp - 0x248], ecx
mov dword [ebp - 0x244], ecx
mov dword [ebp - 0x240], ecx
mov dword [ebp - 0x23c], ecx
mov dword [ebp - 0x238], ecx
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x778], ecx
lea ecx, [ebp - 0x24c]
push ecx
push 0
push eax
mov dword [ebp - 0x7b4], eax
mov dword [ebp - 0x24c], ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x568c1b
lea edx, [ebp - 0x7b4]
push edx
lea esi, [ebp - 0x78c]
mov edi, 9
lea ebx, [ebp - 0x24c]
call fcn.0052bdf0
add esp, 4
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x5679be
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x74c], esi
lea ecx, [ebp - 0x78c]
push ecx
lea edx, [ebp - 0x768]
push str.SYSTEMCurrentControlSetControlClass_
push edx
mov byte [ebp - 4], 0x1d
call fcn.00406f00
add esp, 0xc
lea eax, [ebp - 0x75c]
push eax
push 0x20019
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x768]
push 0
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x75c], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ecx, dword [ebp - 0x75c]
test ecx, ecx
je 0x568b0c
lea esi, [ebp - 0x74c]
mov ebx, str.DeviceID
call fcn.0052c1f0
mov ecx, dword [ebp - 0x75c]
mov esi, dword [ebp - 0x74c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
test esi, esi
setne al
mov dword [ebp - 0x75c], 0
test eax, eax
je 0x5679be
mov edx, dword [ebp - 0x79c]
push esi
push edx
call fcn.0050056c
add esp, 8
test eax, eax
je 0x568bb2
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x768]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568b66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0x1c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568b86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x778]
mov edx, dword [ebp - 0x7b4]
lea ecx, [ebp - 0x24c]
inc eax
push ecx
push eax
push edx
mov dword [ebp - 0x778], eax
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x568a53
jmp 0x568c1b
lea eax, [ebp - 0x7b4]
push eax
lea esi, [ebp - 0x750]
xor edi, edi
lea ebx, [ebp - 0x24c]
call fcn.0052bdf0
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x768]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568bf5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x74c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568c1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x750]
mov esi, dword [ebp - 0x754]
add edi, 0xfffffff0
add esi, 0xfffffff0
mov dword [ebp - 0x768], edi
cmp edi, esi
je 0x568c90
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x568c7a
mov ecx, dword [edi]
cmp ecx, dword [esi]
jne 0x568c7a
mov edx, edi
push edx
call fcn.00401a10
mov edi, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x568c69
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add edi, 0x10
mov dword [ebp - 0x754], edi
mov edi, dword [ebp - 0x768]
jmp 0x568c90
mov ecx, dword [ebp - 0x750]
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x754]
call fcn.00401900
lea ecx, [ebp - 0x78c]
push ecx
lea edx, [ebp - 0x758]
push str.SYSTEMCurrentControlSetControlClass_
push edx
call fcn.00406f00
add esp, 0xc
push str.DeviceData
push eax
lea eax, [ebp - 0x764]
push eax
mov byte [ebp - 4], 0x1f
call fcn.00406e20
add esp, 0xc
mov byte [ebp - 4], 0x21
mov eax, dword [ebp - 0x758]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568cea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x764]
lea ecx, [ebp - 0x748]
push ecx
push 0x20019
push 0
push edx
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x748], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov eax, dword [ebp - 0x748]
test eax, eax
je 0x568eb0
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea ecx, [ebp - 0x74c]
push ecx
push 0
push 0
push 0
push str.PushEventDataMFP
push eax
mov dword [ebp - 0x804], eax
mov dword [ebp - 0x74c], 0
call edi
test eax, eax
jne 0x568e3f
mov esi, dword [ebp - 0x7a8]
mov edx, dword [ebp - 0x74c]
mov ecx, esi
sub ecx, dword [ebp - 0x7ac]
mov ebx, edx
cmp ecx, edx
jbe 0x568d95
mov ebx, dword [ebp - 0x7ac]
add ebx, edx
cmp ebx, esi
je 0x568e1b
push eax
push esi
push ebx
call fcn.004ffc70
add esp, 0xc
mov dword [ebp - 0x7a8], ebx
jmp 0x568e1b
jae 0x568e1b
mov eax, dword [ebp - 0x7ac]
sub eax, esi
add eax, edx
or edx, 0xffffffff
sub edx, eax
cmp edx, ecx
jae 0x568db8
push str.vector_T__too_long
call fcn.0051b7f8
add ecx, eax
mov eax, dword [ebp - 0x7a4]
sub eax, dword [ebp - 0x7ac]
cmp ecx, eax
jbe 0x568df5
mov edx, eax
shr edx, 1
or esi, 0xffffffff
sub esi, edx
cmp esi, eax
jae 0x568ddb
xor eax, eax
jmp 0x568ddd
add eax, edx
cmp eax, ecx
jae 0x568de3
mov eax, ecx
push eax
lea esi, [ebp - 0x7ac]
call fcn.00407040
mov esi, dword [ebp - 0x7a8]
mov eax, dword [ebp - 0x7ac]
sub eax, esi
add eax, ebx
je 0x568e0d
push eax
push 0
push esi
call fcn.00503ac0
add esp, 0xc
mov eax, dword [ebp - 0x7ac]
add eax, ebx
mov dword [ebp - 0x7a8], eax
mov edx, dword [ebp - 0x7ac]
mov eax, dword [ebp - 0x804]
lea ecx, [ebp - 0x74c]
push ecx
push edx
push 0
push 0
push str.PushEventDataMFP
push eax
call edi
test eax, eax
je 0x568e93
mov ebx, dword [ebp - 0x748]
lea ecx, [ebp - 0x74c]
push ecx
push 0
push 0
push 0
push str.PushEventDataSFS
push ebx
mov dword [ebp - 0x74c], 0
call edi
test eax, eax
jne 0x568e93
mov eax, dword [ebp - 0x74c]
lea esi, [ebp - 0x7ac]
call fcn.0040bb30
mov eax, dword [ebp - 0x7ac]
lea edx, [ebp - 0x74c]
push edx
push eax
push 0
push 0
push str.PushEventDataSFS
push ebx
call edi
mov ecx, dword [ebp - 0x748]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [ebp - 0x768]
mov dword [ebp - 0x748], 0
lea ebx, [ebp - 0x7ac]
call fcn.0052d210
push 8
push str.pushscan
lea ecx, [ebp - 0x760]
call fcn.00401900
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x764]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x568ef3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x78c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568f19
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x10
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56907b
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
jmp 0x56907b
mov eax, dword [ebp - 0x7c8]
cmp dword [eax - 0xc], 0
je 0x56907b
mov ecx, dword [ebp - 0x7c0]
cmp dword [ecx - 0xc], 0
je 0x56907b
mov edx, dword [ebp - 0x790]
cmp dword [edx - 0xc], 0
je 0x56907b
mov eax, dword [ebp - 0x7cc]
cmp dword [eax - 0xc], 0
je 0x56907b
cmp dword [ebx - 0xc], 0
je 0x56907b
lea ecx, [ebp - 0x790]
push ecx
lea ecx, [ebp - 0x754]
call fcn.004015b0
mov eax, dword [ebx - 0xc]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x764], 0
mov dword [ebp - 0x758], eax
test eax, eax
jle 0x56905e
mov ecx, dword [ebp - 0x774]
xor edi, edi
mov ebx, ecx
jmp 0x568fd6
mov ecx, dword [ebp - 0x774]
xor eax, eax
mov dword [ebp - 0x1c], eax
mov word [ebp - 0x18], ax
test edi, edi
js 0x568349
cmp edi, dword [ecx - 0xc]
jg 0x568349
mov dx, word [ebx]
lea eax, [edi + 1]
mov word [ebp - 0x1c], dx
test eax, eax
js 0x568349
cmp eax, dword [ecx - 0xc]
jg 0x568349
mov ax, word [ebx + 2]
xor ecx, ecx
push 0x10
push ecx
lea edx, [ebp - 0x1c]
push edx
mov word [ebp - 0x1a], ax
mov word [ebp - 0x18], cx
call fcn.00500a26
mov byte [ebp - 0x76d], al
add esp, 0xc
lea eax, [ebp - 0x76d]
lea esi, [ebp - 0x7ac]
call fcn.004070b0
mov eax, dword [ebp - 0x764]
inc eax
add edi, 2
add ebx, 4
mov dword [ebp - 0x764], eax
cmp eax, dword [ebp - 0x758]
jl 0x568fd0
lea ebx, [ebp - 0x7ac]
call fcn.0052d210
push 8
push str.pushscan
lea ecx, [ebp - 0x760]
call fcn.00401900
xor edi, edi
mov dword [ebp - 0x788], edi
mov dword [ebp - 0x784], edi
mov dword [ebp - 0x780], edi
push 0x10
lea esi, [ebp - 0x788]
mov byte [ebp - 4], 0x22
call fcn.00403cd0
mov esi, dword [ebp - 0x760]
mov eax, dword [esi - 0xc]
cmp eax, edi
je 0x569823
jl 0x569489
push str.error
push esi
call fcn.004fffd1
add esp, 8
cmp eax, edi
je 0x569489
sub eax, esi
sar eax, 1
js 0x569489
push 8
lea eax, [ebp - 0x758]
push eax
lea ecx, [ebp - 0x760]
call fcn.00406d20
mov eax, dword [eax]
push 0x10
push edi
push eax
call fcn.00500a26
mov ebx, eax
mov eax, dword [ebp - 0x758]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56911d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, 0xff0000
jne 0x5691e4
push edi
lea ecx, [ebp - 0x744]
push ecx
call fcn.0055faa0
lea eax, [ebx - 0xff01]
mov byte [ebp - 4], 0x23
cmp eax, 0xb
ja case.default.0x569145
jmp dword [eax*4 + 0x56a310]
mov edi, 0x1fa8
jmp 0x56919e
mov edi, 0x1fa9
jmp 0x56919e
mov edi, 0x1fa6
jmp 0x56919e
mov edi, 0x1fa7
jmp 0x56919e
mov edi, 0x1fb5
jmp 0x56919e
mov edi, 0x1fb6
jmp 0x56919e
mov edi, 0x1fb7
jmp 0x56919e
mov edi, 0x1fb8
jmp 0x56919e
mov edi, 0x1fb9
jmp 0x56919e
mov edi, 0x1fba
jmp 0x56919e
mov edi, 0x1fbb
jmp 0x56919e
mov edi, 0x1fbc
lea esi, [ebp - 0x744]
call fcn.005588d0
mov edx, 0xff04
cmp edx, ebx
sbb eax, eax
and eax, 0xe
add eax, 0x23b3
lea ecx, [ebp - 0x744]
mov dword [ebp - 0x584], eax
call fcn.00558ee0
lea ecx, [ebp - 0x744]
mov byte [ebp - 4], 0x22
call fcn.0055f8c0
mov esi, dword [ebp - 0x760]
xor edi, edi
jmp 0x5691fb
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call fcn.004126d5
push eax
mov ecx, ebx
call fcn.00564a20
add esp, 4
mov eax, dword [ebp - 0x788]
cmp eax, edi
je 0x56920e
push eax
call fcn.0040c6ec
add esp, 4
mov eax, dword [ebp - 0x7ac]
cmp eax, edi
je 0x569221
push eax
call fcn.0040c6ec
add esp, 4
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x774]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569247
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x7cc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56926d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x790]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569293
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x7c0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5692b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x7c8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5692df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x7b8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569305
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x79c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56932b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x76c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569351
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x7d0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569377
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x7c4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56939d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x7b0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5693c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x798]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5693e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569409
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x7bc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56942f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x754]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569455
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x794]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x568960
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x56a23f
mov dword [ebp - method.CMap_class_CWnd___class_CWnd___class_CHwndRenderTarget___class_CHwndRenderTarget__.virtual_0], vtable.CMap_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____wchar_t_const___int__int_.0
mov dword [ebp - 0x7f8], edi
mov dword [ebp - 0x7f4], 0x11
mov dword [ebp - 0x7f0], edi
mov dword [ebp - 0x7ec], edi
mov dword [ebp - 0x7e8], edi
mov dword [ebp - 0x7e4], 0xa
push str.preferences
lea ecx, [ebp - 0x7fc]
mov byte [ebp - 4], 0x24
call fcn.00407460
push str.mainoneclick
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xcfc
call fcn.00407460
push str.auto
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xce4
call fcn.00407460
push str.photo
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xce5
call fcn.00407460
push str.document
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xce6
call fcn.00407460
push str.copy
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xce7
call fcn.00407460
push str.custom
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xce8
call fcn.00407460
push str.stitch
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xceb
call fcn.00407460
push str.scangear
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xcea
call fcn.00407460
push 0x5aa6dc
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xce9
call fcn.00407460
push 0x5aa6e4
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xd0a
call fcn.00407460
push str.mail
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xd08
call fcn.00407460
push str.settings
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xd09
call fcn.00407460
push str.pushscan
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xcfb
call fcn.00407460
push str.mainoneclick
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xcec
call fcn.00407460
push str.pushscansettings
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xce4
call fcn.00407460
push str.silent
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xcfb
call fcn.00407460
push str.autopower
lea ecx, [ebp - 0x7fc]
mov dword [eax], 0xd03
call fcn.00407460
mov dword [eax], 0xd04
push str.none
lea ecx, [ebp - 0x7fc]
call fcn.00407460
mov dword [eax], 0xd07
call fcn.0040c84f
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x56967f
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x748], eax
push 0x2c
push edi
push esi
lea ecx, [ebp - 0x748]
mov byte [ebp - 4], 0x25
push ecx
mov dword [ebp - 0x74c], edi
call fcn.0040c775
mov edi, dword [ebp - 0x784]
mov ebx, dword [ebp - 0x788]
test eax, eax
je 0x5697e2
nop
mov edx, dword [ebp - 0x748]
mov esi, dword [edx - 0xc]
inc dword [ebp - 0x74c]
test esi, esi
js 0x568349
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x5696fa
push esi
lea ecx, [ebp - 0x748]
call fcn.004019b0
mov edx, dword [ebp - 0x748]
lea eax, [esi + 1]
push eax
push edx
call fcn.0050084d
mov eax, dword [ebp - 0x748]
add esp, 8
cmp esi, dword [eax - 8]
jg 0x568349
mov dword [eax - 0xc], esi
mov edx, dword [ebp - 0x748]
xor ecx, ecx
mov word [edx + esi*2], cx
mov edx, dword [ebp - 0x748]
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x758]
push ecx
push edx
lea ecx, [ebp - 0x7fc]
call fcn.00407580
test eax, eax
je 0x5697be
mov esi, dword [eax + 4]
lea eax, [ebp - 0x750]
mov dword [ebp - 0x750], esi
cmp eax, edi
jae 0x569790
mov ecx, eax
cmp ebx, ecx
ja 0x569790
mov esi, eax
sub esi, ebx
sar esi, 2
cmp edi, dword [ebp - 0x780]
jne 0x569785
lea eax, [ebp - 0x788]
call fcn.00403af0
mov edi, dword [ebp - 0x784]
mov ebx, dword [ebp - 0x788]
test edi, edi
je 0x5697b5
mov edx, dword [ebx + esi*4]
mov dword [edi], edx
jmp 0x5697b5
cmp edi, dword [ebp - 0x780]
jne 0x5697af
lea eax, [ebp - 0x788]
call fcn.00403af0
mov edi, dword [ebp - 0x784]
mov ebx, dword [ebp - 0x788]
test edi, edi
je 0x5697b5
mov dword [edi], esi
add edi, 4
mov dword [ebp - 0x784], edi
mov eax, dword [ebp - 0x74c]
mov ecx, dword [ebp - 0x760]
push 0x2c
push eax
push ecx
lea edx, [ebp - 0x748]
push edx
call fcn.0040c775
test eax, eax
jne 0x5696c0
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x748]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569808
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x7fc]
mov dword [ebp - method.CMap_class_CWnd___class_CWnd___class_CHwndRenderTarget___class_CHwndRenderTarget__.virtual_0], vtable.CMap_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____wchar_t_const___int__int_.0
call fcn.00407500
jmp 0x56982f
mov edi, dword [ebp - 0x784]
mov ebx, dword [ebp - 0x788]
mov ecx, edi
sub ecx, ebx
test ecx, 0xfffffffc
jne 0x56986c
cmp ebx, edi
je 0x569851
push 0
push edi
push ebx
call fcn.004ffc70
add esp, 0xc
mov dword [ebp - 0x784], ebx
lea eax, [ebp - 0x758]
lea edi, [ebp - 0x788]
mov dword [ebp - 0x758], 0xce4
call fcn.00403640
mov esi, dword [ebp - 0x794]
mov eax, dword [esi - 0xc]
mov edi, 0x9fbf1
test eax, eax
je 0x5698a6
xor ecx, ecx
cmp dword [ebp + 8], edi
jne 0x56988a
mov ecx, 1
mov edx, dword [0x5dd53c]
test edx, edx
je 0x5698a6
inc eax
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push esi
push 0x20001
push eax
call edx
mov ecx, dword [ebp - 0x754]
cmp dword [ecx - 0xc], 0
je 0x569a3c
push 0
push ecx
mov ebx, ecx
lea esi, [ebx - 0x10]
mov dword [ebp - 0x1c], esp
mov edi, esp
push esi
call fcn.00401a10
lea edx, [ebp - 0x778]
add esp, 4
add eax, 0x10
push edx
mov dword [edi], eax
call fcn.0052e330
add esp, 0xc
push 1
push ecx
mov byte [ebp - 4], 0x26
mov dword [ebp - 0x1c], esp
mov edi, esp
push esi
call fcn.00401a10
add eax, 0x10
mov dword [edi], eax
lea eax, [ebp - 0x764]
add esp, 4
push eax
call fcn.0052e330
add esp, 0xc
mov byte [ebp - 4], 0x27
mov ecx, dword [ebp - 0x778]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push ecx
call esi
test eax, eax
je 0x5699c0
mov edx, dword [ebp - 0x764]
push edx
call esi
test eax, eax
je 0x5699c0
mov esi, dword [ebp + 8]
xor ecx, ecx
cmp esi, 0x9fbf1
jne 0x569947
mov ecx, 1
mov edx, dword [0x5dd53c]
test edx, edx
je 0x569966
mov eax, dword [ebx - 0xc]
inc eax
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push ebx
push 0x2000001
push eax
call edx
xor eax, eax
cmp esi, 0x9fbf1
jne 0x569975
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x569999
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x2000001
push 0x2000000
push edx
call ecx
mov ecx, dword [0x5dd534]
xor eax, eax
cmp esi, 0x9fbf1
jne 0x5699a8
mov eax, 1
test ecx, ecx
je 0x5699ee
mov eax, dword [eax*4 + 0x5dd9a0]
push 0x132e
push 0x10016
push eax
jmp 0x5699ec
xor eax, eax
cmp dword [ebp + 8], 0x9fbf1
jne 0x5699d0
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x5699ee
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x132f
push 0x10016
push edx
call ecx
mov byte [ebp - 4], 0x26
mov eax, dword [ebp - 0x764]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569a14
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x22
mov eax, dword [ebp - 0x778]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569a66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x569a66
xor eax, eax
cmp dword [ebp + 8], edi
jne 0x569a48
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x569a66
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x132f
push 0x10016
push edx
call ecx
mov edx, dword [ebp - 0x7d0]
mov eax, dword [edx - 0xc]
xor ebx, ebx
cmp eax, ebx
je 0x569adb
xor ecx, ecx
cmp dword [ebp + 8], 0x9fbf1
jne 0x569a83
lea ecx, [ebx + 1]
mov esi, dword [0x5dd53c]
cmp esi, ebx
je 0x569a9f
inc eax
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push edx
push 0x20006
push eax
call esi
mov esi, dword [ebp - 0x788]
mov eax, dword [ebp - 0x784]
cmp esi, eax
je 0x569ac0
push ebx
push eax
push esi
call fcn.004ffc70
add esp, 0xc
mov dword [ebp - 0x784], esi
lea eax, [ebp - 0x758]
lea edi, [ebp - 0x788]
mov dword [ebp - 0x758], 0x1faa
call fcn.00403640
mov edx, dword [ebp - 0x7bc]
mov eax, dword [edx - 0xc]
cmp eax, ebx
je 0x569b14
xor ecx, ecx
cmp dword [ebp + 8], 0x9fbf1
jne 0x569af8
mov ecx, 1
mov esi, dword [0x5dd53c]
cmp esi, ebx
je 0x569b14
mov ecx, dword [ecx*4 + 0x5dd9a0]
inc eax
push eax
push edx
push 0x6020001
push ecx
call esi
mov edi, dword [ebp - 0x798]
cmp dword [edi - 0xc], ebx
je 0x569e4c
mov dword [ebp - method.CMap_class_CWnd___class_CWnd___class_CHwndRenderTarget___class_CHwndRenderTarget__.virtual_0], vtable.CMap_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____wchar_t_const___int__int_.0
mov dword [ebp - 0x248], ebx
mov dword [ebp - 0x244], 0x11
mov dword [ebp - 0x240], ebx
mov dword [ebp - 0x23c], ebx
mov dword [ebp - 0x238], ebx
mov dword [ebp - 0x234], 0xa
push str.auto
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 0x28
call fcn.00407460
push str.jpeg
lea ecx, [ebp - 0x24c]
mov dword [eax], 0x10eb
call fcn.00407460
push 0x5aa76c
lea ecx, [ebp - 0x24c]
mov dword [eax], 0x10e0
call fcn.00407460
push 0x5aa774
lea ecx, [ebp - 0x24c]
mov dword [eax], 0x10e1
call fcn.00407460
push 0x5aa77c
lea ecx, [ebp - 0x24c]
mov dword [eax], 0x10e2
call fcn.00407460
push 0x5aa6dc
lea ecx, [ebp - 0x24c]
mov dword [eax], 0x10e3
call fcn.00407460
push str.mpdf
lea ecx, [ebp - 0x24c]
mov dword [eax], 0x10e5
call fcn.00407460
mov dword [eax], 0x10e6
mov dword [ebp - 0x7e0], ebx
mov dword [ebp - 0x7dc], ebx
mov dword [ebp - 0x7d8], ebx
push 8
lea esi, [ebp - 0x7e0]
mov byte [ebp - 4], 0x29
call fcn.00403cd0
call fcn.0040c84f
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x569c34
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x75c], eax
push 0x2c
push ebx
push edi
lea ecx, [ebp - 0x75c]
mov byte [ebp - 4], 0x2a
push ecx
mov dword [ebp - 0x74c], ebx
call fcn.0040c775
mov esi, dword [ebp - 0x7dc]
test eax, eax
je 0x569d42
mov ebx, dword [ebp - 0x7e0]
inc dword [ebp - 0x74c]
lea ecx, [ebp - 0x75c]
call fcn.00406c10
mov ecx, dword [ebp - 0x75c]
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp - 0x758]
push eax
push ecx
lea ecx, [ebp - 0x24c]
call fcn.00407580
test eax, eax
je 0x569d1e
mov edi, dword [eax + 4]
lea edx, [ebp - 0x750]
mov dword [ebp - 0x750], edi
cmp edx, esi
jae 0x569cf0
mov eax, edx
cmp ebx, eax
ja 0x569cf0
mov edi, edx
sub edi, ebx
sar edi, 2
cmp esi, dword [ebp - 0x7d8]
jne 0x569ce5
lea eax, [ebp - 0x7e0]
call fcn.00403af0
mov esi, dword [ebp - 0x7dc]
mov ebx, dword [ebp - 0x7e0]
test esi, esi
je 0x569d15
mov ecx, dword [ebx + edi*4]
mov dword [esi], ecx
jmp 0x569d15
cmp esi, dword [ebp - 0x7d8]
jne 0x569d0f
lea eax, [ebp - 0x7e0]
call fcn.00403af0
mov esi, dword [ebp - 0x7dc]
mov ebx, dword [ebp - 0x7e0]
test esi, esi
je 0x569d15
mov dword [esi], edi
add esi, 4
mov dword [ebp - 0x7dc], esi
mov edx, dword [ebp - 0x74c]
mov eax, dword [ebp - 0x798]
push 0x2c
push edx
push eax
lea ecx, [ebp - 0x75c]
push ecx
call fcn.0040c775
test eax, eax
jne 0x569c74
sub esi, dword [ebp - 0x7e0]
mov ebx, dword [ebp + 8]
sar esi, 2
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x569d5d
mov eax, 1
mov edx, dword [0x5dd534]
test edx, edx
je 0x569d7d
mov eax, dword [eax*4 + 0x5dd9a0]
push esi
push 0x100ffff
push eax
call edx
mov edx, dword [0x5dd534]
xor edi, edi
test esi, esi
jle 0x569dc6
cmp esi, edi
jbe 0x56a25b
mov ecx, dword [ebp - 0x7e0]
mov ecx, dword [ecx + edi*4]
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x569da3
mov eax, 1
test edx, edx
je 0x569dbf
mov eax, dword [eax*4 + 0x5dd9a0]
push ecx
lea ecx, [edi + 0x1000001]
push ecx
push eax
call edx
mov edx, dword [0x5dd534]
inc edi
cmp esi, edi
jg 0x569d85
test esi, esi
je 0x569df3
mov ecx, dword [ebp - 0x7e0]
mov ecx, dword [ecx]
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x569ddf
mov eax, 1
test edx, edx
je 0x569df3
mov eax, dword [eax*4 + 0x5dd9a0]
push ecx
push 0x1000000
push eax
call edx
mov byte [ebp - 4], 0x29
mov eax, dword [ebp - 0x75c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569e19
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp - 0x7e0], 0
je 0x569e31
mov ecx, dword [ebp - 0x7e0]
push ecx
call fcn.0040c6ec
add esp, 4
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x24c]
mov dword [ebp - method.CMap_class_CWnd___class_CWnd___class_CHwndRenderTarget___class_CHwndRenderTarget__.virtual_0], vtable.CMap_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____wchar_t_const___int__int_.0
call fcn.00407500
xor ebx, ebx
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx - 0xc]
cmp eax, ebx
je 0x569e85
xor ecx, ecx
cmp dword [ebp + 8], 0x9fbf1
jne 0x569e69
mov ecx, 1
mov esi, dword [0x5dd53c]
cmp esi, ebx
je 0x569e85
inc eax
push eax
push edx
mov edx, dword [ecx*4 + 0x5dd9a0]
push 0x20004
push edx
call esi
mov edx, dword [ebp - 0x7c4]
mov eax, dword [edx - 0xc]
cmp eax, ebx
je 0x569ebe
xor ecx, ecx
cmp dword [ebp + 8], 0x9fbf1
jne 0x569ea2
mov ecx, 1
mov esi, dword [0x5dd53c]
cmp esi, ebx
je 0x569ebe
inc eax
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push edx
push 0x20005
push eax
call esi
mov edi, dword [ebp - 0x784]
mov eax, dword [ebp - 0x788]
sub edi, eax
sar edi, 2
cmp edi, ebx
jbe 0x569eff
mov ecx, dword [eax]
xor eax, eax
cmp dword [ebp + 8], 0x9fbf1
jne 0x569ee5
mov eax, 1
mov edx, dword [0x5dd534]
cmp edx, ebx
je 0x569eff
push ecx
mov ecx, dword [eax*4 + 0x5dd9a0]
push 0x10002
push ecx
call edx
cmp edi, 1
jbe 0x569f81
xor eax, eax
cmp dword [ebp + 8], 0x9fbf1
lea ecx, [edi - 1]
jne 0x569f17
mov eax, 1
mov edx, dword [0x5dd534]
cmp edx, ebx
je 0x569f31
mov eax, dword [eax*4 + 0x5dd9a0]
push ecx
push 0x102ffff
push eax
call edx
mov esi, 1
cmp edi, esi
jle 0x569f81
mov ebx, dword [ebp - 0x788]
cmp edi, esi
jbe 0x56a25b
mov ecx, dword [ebx + esi*4]
xor eax, eax
cmp dword [ebp + 8], 0x9fbf1
jne 0x569f5b
mov eax, 1
cmp dword [0x5dd534], 0
je 0x569f7a
mov edx, dword [eax*4 + 0x5dd9a0]
push ecx
lea ecx, [esi + 0x1020000]
push ecx
push edx
call dword [0x5dd534]
inc esi
cmp edi, esi
jg 0x569f42
xor ebx, ebx
mov edx, dword [ebp - 0x7a8]
mov esi, dword [ebp - 0x7ac]
sub edx, esi
je 0x569fb7
xor eax, eax
cmp dword [ebp + 8], 0x9fbf1
jne 0x569fa1
mov eax, 1
mov ecx, dword [0x5dd550]
cmp ecx, ebx
je 0x569fb7
mov eax, dword [eax*4 + 0x5dd9a0]
push edx
push esi
push eax
call ecx
mov eax, dword [ebp - 0x788]
cmp eax, ebx
je 0x569fca
push eax
call fcn.0040c6ec
add esp, 4
cmp esi, ebx
je 0x569fd7
push esi
call fcn.0040c6ec
add esp, 4
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x774]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x569ffd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x7cc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a023
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x790]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a049
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x7c0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a06f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x7c8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a095
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x7b8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a0bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x79c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a0e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x76c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a107
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x7d0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a12d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x7c4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a153
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x7b0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a179
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x798]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a19f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x760]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a1c5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x7bc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a1eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x754]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a211
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x794]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a23a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004ff57c
mov esp, ebp
pop ebp
ret
push str.invalid_vector_T__subscript
call fcn.0051b845
lea ecx, [ecx]
scasb al, byte es:[edi]
jge 5677761
add byte [ebx - 0x7d], dl
push esi
add byte [eax - 0x7d], bl
push esi
add byte [eax - 0x7d], bl
push esi
add byte [eax], al
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ecx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [edx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [edx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [eax]
lea ecx, [ecx]
imul eax, dword [edx - 0x7da6ffaa], 0x56
add bl, ch
adc byte [esi], 0xc5
adc byte [esi], 0x9f
adc byte [esi], 0x73
adc byte [esi], 0xa7
adc byte [esi], 0xb6
adc byte [esi], 0xcd
adc byte [esi], 0xdc
adc byte [esi], 0xfd
adc byte [esi], 0
or al, byte [ecx]
or cl, byte [edx]
add cl, byte [edx]
or al, byte [ebx]
or cl, byte [edx]
add al, 5
or cl, byte [edx]
push es
or cl, byte [edx]
or cl, byte [edx]
pop es
or byte [ecx], cl
nop
dec esp
xchg ecx, eax
push esi
add byte [ebx - 0x6f], dl
push esi
add byte [edx - 0x6f], bl
push esi
add byte [ecx - 0x6f], ah
push esi
add byte [eax - 0x6f], ch
push esi
add byte [edi - 0x6f], ch
push esi
add byte [esi - 0x6f], dh
push esi
add byte [ebp - 0x6f], bh
push esi
add byte [ecx + edx*4 - 0x6e74ffaa], al
push esi
add byte [edx - 0x66ffa96f], dl
xchg ecx, eax
push esi
add byte [ebp - 0x75], dl
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57ab6d
mov eax, dword fs:[0]
push eax
sub esp, 0x308
mov eax, dword [0x5d52e0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x248], eax
push 0x5a95c8
lea ecx, [ebp - 0x240]
mov dword [ebp - 4], 0
xor esi, esi
call fcn.00401210
mov byte [ebp - 4], 1
mov eax, dword [ebp + 0x10]
cmp dword [eax - 0xc], esi
jge 0x56a3a9
push 0x80070057
call fcn.004010a0
cmp word [eax], 0x40
jne 0x56a73a
lea ecx, [ebp + 0x10]
push str._None
push ecx
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a3cf
xor esi, esi
jmp 0x56a763
lea edx, [ebp + 0x10]
push str._Filer
push edx
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a3ee
mov esi, 1
jmp 0x56a763
lea eax, [ebp + 0x10]
push str._Manual
push eax
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a40d
mov esi, 1
jmp 0x56a763
lea ecx, [ebp + 0x10]
push str._ManualSend
push ecx
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a42c
mov esi, 1
jmp 0x56a763
lea edx, [ebp + 0x10]
push str._Mailer
push edx
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a548
lea ecx, [ebp - 0x23c]
call fcn.004011e0
mov bl, 2
push str._Mailer
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], bl
call fcn.00401210
lea eax, [ebp - 0x23c]
push 0
push eax
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 3
call fcn.00532f00
add esp, 8
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], bl
call fcn.00404b10
mov ecx, dword [ebp - 0x23c]
cmp dword [ecx - 0xc], 0
jne 0x56a4b3
lea ecx, [ebp - 0x23c]
mov esi, 1
mov byte [ebp - 4], 1
call fcn.00404b10
jmp 0x56a763
mov esi, 4
call fcn.0040da38
mov eax, dword [eax + 4]
add eax, 0xc4
push eax
lea ecx, [ebp + 0x10]
call fcn.004015b0
mov edx, dword [ebp + 0x10]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
mov edi, edx
jge 0x56a4f7
push 0x104
lea ecx, [ebp + 0x10]
call fcn.004019b0
mov edx, dword [ebp + 0x10]
push str.MAPI.exe
push edi
push edx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.004ff818
add esp, 8
test eax, eax
js 0x56a39f
mov ecx, dword [ebp + 0x10]
cmp eax, dword [ecx - 8]
jg 0x56a39f
mov dword [ecx - 0xc], eax
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov word [ecx + eax*2], dx
lea ecx, [ebp - 0x23c]
mov byte [ebp - 4], 1
call fcn.00404b10
jmp 0x56a763
lea edx, [ebp + 0x10]
push str._OCR
push edx
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a57d
push edi
lea eax, [ebp - 0x240]
push eax
lea ecx, [ebp + 0x10]
push ecx
push 0
mov esi, 4
call fcn.00532d80
add esp, 0x10
jmp 0x56a763
lea edx, [ebp + 0x10]
push str._SUOCR
push edx
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a59c
mov esi, 0xa
jmp 0x56a763
lea eax, [ebp + 0x10]
push str._NewApp
push eax
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a5b5
push 0
jmp 0x56a5cc
lea eax, [ebp + 0x10]
push str._NewAppOCR
push eax
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a5ec
push 4
push edi
lea ecx, [ebp - 0x240]
push ecx
lea edx, [ebp + 0x10]
push edx
xor ecx, ecx
mov esi, 9
call fcn.00532b80
add esp, 0x10
jmp 0x56a763
lea eax, [ebp + 0x10]
push 0x5aa9d4
push eax
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a60b
mov esi, 2
jmp 0x56a763
lea ecx, [ebp + 0x10]
push str._Viewer
push ecx
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a62a
mov esi, 7
jmp 0x56a763
lea edx, [ebp + 0x10]
push str._Evernote
push edx
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a6ae
lea ecx, [ebp - 0x23c]
call fcn.004011e0
lea eax, [ebp - 0x23c]
push 0
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 4
call fcn.00532f00
mov ecx, dword [ebp - 0x23c]
add esp, 8
cmp dword [ecx - 0xc], 0
jne 0x56a691
lea ecx, [ebp - 0x23c]
call fcn.00404b10
lea ecx, [ebp - 0x240]
call fcn.00404b10
lea ecx, [ebp + 0x10]
call fcn.00404b10
jmp 0x56ab16
lea edx, [ebp - 0x244]
push edx
lea edi, [ebp + 0x10]
mov esi, 4
call fcn.0052c5e0
add esp, 4
mov byte [ebp - 4], 5
jmp 0x56a715
lea eax, [ebp + 0x10]
push str._DropBox
push eax
call fcn.00406fe0
add esp, 8
test al, al
je 0x56a763
lea ecx, [ebp - 0x23c]
call fcn.004011e0
lea ecx, [ebp - 0x23c]
push 0
push ecx
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 6
call fcn.00532f00
mov edx, dword [ebp - 0x23c]
add esp, 8
cmp dword [edx - 0xc], 0
je 0x56a66e
lea eax, [ebp - 0x244]
push eax
lea edi, [ebp + 0x10]
mov esi, 6
call fcn.0052c5e0
add esp, 4
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp + 0x10]
call fcn.004015b0
lea ecx, [ebp - 0x244]
call fcn.00404b10
lea ecx, [ebp - 0x23c]
mov byte [ebp - 4], 1
call fcn.00404b10
jmp 0x56a763
push eax
call dword [sym.imp.SHELL32.dll_PathIsExe]
test eax, eax
je 0x56a74c
mov esi, 4
jmp 0x56a763
mov ecx, dword [ebp + 0x10]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x56aaca
mov esi, 6
mov edi, dword [0x5dd9c4]
mov ebx, dword [0x5dd9c0]
mov ecx, edi
sub ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x56aaca
lea eax, [esi - 1]
cmp eax, 9
ja case.0x56a798.3
jmp dword [eax*4 + 0x56ab34]
push 1
push 0x5dd9c0
lea ecx, [ebp + 0x10]
push ecx
call fcn.00566750
add esp, 0xc
cmp eax, 0x20
jge case.0x56a798.3
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x56aae4
push 0
push 0x5dd9c0
lea edx, [ebp + 0x10]
push edx
jmp 0x56a7aa
push 0
lea eax, [ebp + 0x10]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, 0x5dd9c0
lea ebx, [ebp - 0x240]
call fcn.00565f00
add esp, 8
jmp 0x56a7b2
push 1
lea ecx, [ebp + 0x10]
push ecx
jmp 0x56a7ed
push 0xa
lea ecx, [ebp - 0x238]
call fcn.00416c67
mov byte [ebp - 4], 8
mov esi, dword [0x5dd9c0]
cmp esi, dword [0x5dd9c4]
je 0x56a847
lea esp, [esp]
push esi
lea ecx, [ebp - 0x238]
call fcn.00416ef7
add esi, 0x1c
cmp esi, dword [0x5dd9c4]
jne 0x56a830
mov edi, dword [ebp + 0xc]
xor eax, eax
cmp edi, 0x9fbf1
jne 0x56a859
mov eax, 1
mov ecx, dword [0x5dd530]
test ecx, ecx
jne 0x56a867
xor esi, esi
jmp 0x56a87e
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x10008
push edx
call ecx
mov ecx, dword [0x5dd530]
mov esi, eax
xor eax, eax
cmp edi, 0x9fbf1
jne 0x56a88d
mov eax, 1
test ecx, ecx
jne 0x56a895
xor eax, eax
jmp 0x56a8a4
mov eax, dword [eax*4 + 0x5dd9a0]
push 0x10019
push eax
call ecx
push eax
push esi
lea ecx, [ebp - 0x238]
push ecx
mov ecx, edi
call fcn.0054b7c0
mov esi, dword [0x5dd9c0]
cmp esi, dword [0x5dd9c4]
je 0x56a8d8
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [esi]
push eax
call edi
add esi, 0x1c
cmp esi, dword [0x5dd9c4]
jne 0x56a8c8
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 1
call fcn.00416d95
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a90d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56a933
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
jmp 0x56ab18
mov esi, ebx
cmp esi, edi
je case.0x56a798.3
mov edi, dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [esi]
push 5
push 0
push 0
push eax
push str.open
push 0
call edi
add esi, 0x1c
cmp esi, dword [0x5dd9c4]
jne 0x56a946
jmp case.0x56a798.3
push 0x208
xor ebx, ebx
lea edx, [ebp - 0x21c]
push ebx
push edx
call fcn.00503ac0
add esp, 0xc
xor edi, edi
mov eax, 0x5dd9c0
call fcn.00403330
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x21c]
push 0x104
push eax
call fcn.00500277
add esp, 0xc
push str..txt
lea ecx, [ebp - 0x21c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRenameExtensionW]
mov dword [ebp - 0x258], ebx
mov dword [ebp - 0x254], ebx
mov dword [ebp - 0x250], ebx
push 0x5a95c8
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 9
call fcn.00401210
mov edx, 0x128e
mov dword [ebp - 0x234], ebx
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x22c], ebx
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x224], ebx
mov word [ebp - 0x220], dx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x238]
mov byte [ebp - 4], 0xa
call fcn.004012d0
lea ecx, [ebp - 0x238]
lea edi, [ebp - 0x258]
call fcn.00403370
lea esi, [ebp - 0x314]
call fcn.00558140
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x27c], ecx
mov edx, edi
mov ecx, esi
mov dword [ebp - 0x278], 0x1fbf
mov dword [ebp - 0x274], 0x1fb2
mov dword [ebp - 0x270], 0x23c1
mov dword [ebp - 0x26c], edx
call fcn.005583c0
cmp eax, 1
jne 0x56aa8b
push 5
push ebx
push ebx
lea eax, [ebp - 0x21c]
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
jmp 0x56aaa0
mov ecx, dword [ebp - 0x248]
push ecx
mov ecx, dword [ebp - 0x264]
call fcn.00564a20
add esp, 4
lea ecx, [ebp - 0x314]
mov byte [ebp - 4], 0xa
call fcn.005580c0
lea eax, [ebp - 0x238]
call fcn.00404180
lea ebx, [ebp - 0x258]
call fcn.00403a00
jmp case.0x56a798.3
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56aaf0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56ab16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004ff57c
mov esp, ebp
pop ebp
ret