Function at 0x50a870
Capabilities:
Check if file exists
Copy file
Create directory
Delete file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x58a570
push eax
mov dword fs:[0], esp
sub esp, 0x118
push ebx
push ebp
push esi
push edi
mov ebp, ecx
push 1
call sub.MFC42.DLL_CWnd::UpdateData
test eax, eax
je 0x50bd0c
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x170]
mov dword [eax + 0x198], ecx
mov edx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x174]
mov dword [edx + 0x19c], eax
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x178]
mov dword [ecx + 0x1a0], edx
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x17c]
mov dword [eax + 0x1b4], ecx
mov edx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x180]
mov dword [edx + 0x5074], eax
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x18c]
mov dword [ecx + 0x49a0], edx
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x1d0]
mov dword [eax + 0x184], ecx
mov edx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x1d4]
mov dword [edx + 0x17c], eax
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x1e8]
mov dword [ecx + 0x180], edx
mov eax, dword [ebp + 0x60]
mov edi, dword [ebp + 0x1d8]
lea edx, [eax + 0x56fe]
mov esi, edi
mov eax, edx
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x50a95e
test cl, cl
je 0x50a95a
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x50a95e
add eax, 2
add esi, 2
test cl, cl
jne 0x50a93a
xor eax, eax
jmp 0x50a963
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x50a98b
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 0x6c], 1
mov eax, dword [ebp + 0x60]
mov edi, dword [ebp + 0x1dc]
mov esi, edi
lea edx, [eax + 0x5802]
mov eax, edx
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x50a9c2
test cl, cl
je 0x50a9be
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x50a9c2
add eax, 2
add esi, 2
test cl, cl
jne 0x50a99e
xor eax, eax
jmp 0x50a9c7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x50a9ef
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 0x6c], 1
mov eax, dword [ebp + 0x60]
mov edi, dword [ebp + 0x1e0]
mov esi, edi
lea edx, [eax + 0x5906]
mov eax, edx
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x50aa26
test cl, cl
je 0x50aa22
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x50aa26
add eax, 2
add esi, 2
test cl, cl
jne 0x50aa02
xor eax, eax
jmp 0x50aa2b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x50aa53
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 0x6c], 1
mov eax, dword [ebp + 0x60]
mov edi, dword [ebp + 0x1e4]
mov esi, edi
lea edx, [eax + 0x5a0a]
mov eax, edx
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x50aa8a
test cl, cl
je 0x50aa86
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x50aa8a
add eax, 2
add esi, 2
test cl, cl
jne 0x50aa66
xor eax, eax
jmp 0x50aa8f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x50aab7
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 0x6c], 1
lea ecx, [esp + 0x40]
call sub.MFC42.DLL_CFileFind::CFileFind
mov eax, dword [ebp + 0x188]
lea ebx, [ebp + 0x188]
push 0
push eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x138], 0
call sub.MFC42.DLL_CFileFind::FindFile
xor esi, esi
test eax, eax
je 0x50ab08
lea ecx, [esp + 0x40]
call sub.MFC42.DLL_CFileFind::FindNextFileA
mov edx, dword [esp + 0x40]
push 0x10
lea ecx, [esp + 0x44]
call dword [edx + 0x40]
test eax, eax
je 0x50ab08
mov esi, 1
lea ecx, [esp + 0x40]
call sub.MFC42.DLL_CFileFind::Close
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
test esi, esi
jne 0x50abee
mov eax, dword [ebx]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x50abee
push ebx
lea eax, [esp + 0x34]
push 0x5ec570
push eax
call sub.MFC42.DLL_operator_2
push 0x5ec540
lea ecx, [esp + 0x28]
push eax
push ecx
mov byte [esp + 0x13c], 1
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov edx, dword [ebp + 0x20]
push 0x24
push 0x5e0340
push eax
push edx
call edi
lea ecx, [esp + 0x24]
mov esi, eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x130], 0
call sub.MFC42.DLL_CString::CString
cmp esi, 6
jne 0x50bcf8
mov eax, dword [ebx]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x50abee
push ebx
lea eax, [esp + 0x34]
push 0x5ec530
push eax
call sub.MFC42.DLL_operator_2
push 0x5ec528
lea ecx, [esp + 0x28]
push eax
push ecx
mov byte [esp + 0x13c], 2
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov edx, dword [ebp + 0x20]
push 0x40
push 0x5e0340
push eax
push edx
call edi
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x130], 0
lea ecx, [esp + 0x30]
jmp 0x50bcf3
mov eax, dword [ebp + 0x60]
lea ecx, [esp + 0x3c]
add eax, 0x5488
push eax
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [ebx]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
mov byte [esp + 0x138], 3
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
je 0x50b7a4
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x184]
lea esi, [ebp + 0x184]
add eax, 0x5078
mov bl, byte [ecx]
mov dl, bl
cmp bl, byte [eax]
jne 0x50ac59
test dl, dl
je 0x50ac55
mov bl, byte [ecx + 1]
mov dl, bl
cmp bl, byte [eax + 1]
jne 0x50ac59
add ecx, 2
add eax, 2
test dl, dl
jne 0x50ac35
xor eax, eax
jmp 0x50ac5e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x50b1c3
push 1
push ecx
mov edx, esp
mov dword [esp + 0x20], esp
lea ebx, [ebp + 0x188]
push str._feiq
push ebx
push edx
call sub.MFC42.DLL_operator
call fcn.00443380
mov eax, dword [ebp + 0x60]
add esp, 8
add eax, 0x5078
lea ecx, [esp + 0x30]
push eax
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x38]
push ecx
push edx
mov byte [esp + 0x138], 4
call fcn.004e07e0
add esp, 8
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x134], 5
call fcn.00572d3c
lea ecx, [esp + 0x38]
mov byte [esp + 0x130], 4
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp + 0x60]
lea ecx, [esp + 0x24]
add eax, 0x5078
push eax
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [esp + 0x30]
push 0x5f3788
push ecx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x138], 6
call sub.MFC42.DLL_CString::Replace
push str._feiq
lea edx, [esp + 0x3c]
push ebx
push edx
call sub.MFC42.DLL_operator
lea ecx, [esp + 0x24]
lea edx, [esp + 0x1c]
push ecx
push eax
push edx
mov byte [esp + 0x13c], 7
call sub.MFC42.DLL_operator_1
mov bl, 9
lea ecx, [esp + 0x38]
mov byte [esp + 0x130], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp + 0x60]
lea ecx, [esp + 0x28]
add eax, 0x5488
push eax
call sub.MFC42.DLL_CString::CString_3
push str._feiq
lea ecx, [esp + 0x38]
push eax
push ecx
mov byte [esp + 0x13c], 0xa
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov edx, dword [esp + 0x30]
push eax
mov byte [esp + 0x134], 0xb
push edx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x50ada1
mov eax, dword [esp + 0x1c]
push eax
call fcn.00440560
add esp, 4
mov byte [esp + 0x17], 1
test al, al
sete al
test al, al
jne 0x50ada6
mov byte [esp + 0x17], 0
lea ecx, [esp + 0x34]
mov byte [esp + 0x130], 0xa
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0x130], bl
call sub.MFC42.DLL_CString::CString
mov al, byte [esp + 0x17]
test al, al
je 0x50b190
push esi
lea ecx, [esp + 0x14]
push 0x5ec4fc
push ecx
call sub.MFC42.DLL_operator_2
push 0x5ec4f0
lea edx, [esp + 0x24]
push eax
push edx
mov byte [esp + 0x13c], 0xc
call sub.MFC42.DLL_operator
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x34]
push ecx
push eax
push edx
mov byte [esp + 0x13c], 0xd
call sub.MFC42.DLL_operator_1
push 0x5ec4ec
push eax
lea eax, [esp + 0x30]
mov byte [esp + 0x138], 0xe
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov ecx, dword [ebp + 0x20]
push 0x24
push 0x5e0340
push eax
push ecx
call edi
lea ecx, [esp + 0x28]
mov dword [esp + 0x18], eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x130], 0xd
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], 0xc
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x130], bl
call sub.MFC42.DLL_CString::CString
cmp dword [esp + 0x18], 6
jne 0x50b190
lea edx, [esp + 0x1c]
mov ecx, esi
push edx
call fcn.00572d3c
push esi
lea eax, [esp + 0x2c]
push 0x5ec4cc
push eax
call sub.MFC42.DLL_operator_2
push 0x5ec4b8
lea ecx, [esp + 0x24]
push eax
push ecx
mov byte [esp + 0x13c], 0xf
call sub.MFC42.DLL_operator
lea edx, [esp + 0x1c]
mov byte [esp + 0x130], 0x10
push edx
push eax
lea eax, [esp + 0x18]
push eax
call sub.MFC42.DLL_operator_1
push 0x5ec4ec
lea ecx, [esp + 0x1c]
push eax
push ecx
mov byte [esp + 0x13c], 0x11
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov edx, dword [ebp + 0x20]
push 0x24
push 0x5e0340
push eax
push edx
call edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x34], eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x130], 0x10
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], 0xf
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0x130], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x34]
push 0
cmp eax, 6
jne 0x50b10b
mov ecx, dword [ebp + 0x60]
mov eax, dword [esp + 0x20]
add ecx, 0x5078
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov edx, dword [ebp + 0x60]
test eax, eax
jne 0x50b043
add edx, 0x5078
mov ecx, esi
push edx
call sub.MFC42.DLL_CString::operator_2
mov eax, dword [ebp + 0x60]
lea ecx, [esp + 0x34]
add eax, 0x5078
push eax
call sub.MFC42.DLL_CString::CString_3
push eax
lea ecx, [esp + 0x2c]
push 0x5ec4a4
push ecx
mov byte [esp + 0x13c], 0x12
call sub.MFC42.DLL_operator_2
push 0x5ec49c
lea edx, [esp + 0x24]
push eax
push edx
mov byte [esp + 0x13c], 0x13
call sub.MFC42.DLL_operator
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x10]
push ecx
push eax
push edx
mov byte [esp + 0x13c], 0x14
call sub.MFC42.DLL_operator_1
push 0x5ec494
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x138], 0x15
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov ecx, dword [ebp + 0x20]
push 0x40
push 0x5e0340
push eax
push ecx
call edi
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x130], 0x14
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], 0x13
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0x130], 0x12
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x130], bl
lea ecx, [esp + 0x34]
jmp 0x50b18b
add edx, 0x5078
lea ecx, [esp + 0x20]
push edx
call sub.MFC42.DLL_CString::CString_3
push eax
lea eax, [esp + 0x14]
push 0x5ec474
push eax
mov byte [esp + 0x13c], 0x16
call sub.MFC42.DLL_operator_2
push 0x5ec4ec
lea ecx, [esp + 0x1c]
push eax
push ecx
mov byte [esp + 0x13c], 0x17
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov edx, dword [ebp + 0x20]
push 0x24
push 0x5e0340
push eax
push edx
call edi
lea ecx, [esp + 0x18]
mov esi, eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x130], 0x16
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], bl
call sub.MFC42.DLL_CString::CString
cmp esi, 6
jne 0x50b190
mov eax, dword [ebp + 0x60]
push 0
add eax, 0x5078
mov ecx, ebp
push eax
call fcn.0050c690
test eax, eax
je 0x50b0f6
push 0x40
push 0x5e0340
push 0x5e2b28
mov ecx, ebp
call sub.MFC42.DLL_CWnd::MessageBoxA
jmp 0x50b190
mov ecx, dword [ebp + 0x60]
add ecx, 0x5078
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x50b190
mov edx, dword [esp + 0x20]
push 0x8000080
push 2
push 0
push 0
push 0x40000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
jne 0x50b190
mov eax, dword [ebp + 0x60]
mov ecx, esi
add eax, 0x5078
push eax
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x10]
push ecx
push 0x5ec460
push edx
call sub.MFC42.DLL_operator_2
push 0x5ec458
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x138], 0x18
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov ecx, dword [ebp + 0x20]
push 0x40
push 0x5e0340
push eax
push ecx
call edi
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x130], bl
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x130], 6
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x130], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x130], 3
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp + 0x1ec]
test eax, eax
je 0x50b765
mov eax, dword [ebp + 0x60]
mov edi, dword [ebp + 0x1f0]
lea esi, [ebp + 0x1f0]
add eax, 0x54
mov dl, byte [edi]
mov bl, byte [eax]
mov cl, dl
cmp dl, bl
jne 0x50b20b
test cl, cl
je 0x50b207
mov dl, byte [edi + 1]
mov bl, byte [eax + 1]
mov cl, dl
cmp dl, bl
jne 0x50b20b
add edi, 2
add eax, 2
test cl, cl
jne 0x50b1e3
xor eax, eax
jmp 0x50b210
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x50b765
push 1
push ecx
mov eax, esp
mov dword [esp + 0x20], esp
lea edi, [ebp + 0x188]
push str._feiq
push edi
push eax
call sub.MFC42.DLL_operator
call fcn.00443380
mov ecx, dword [ebp + 0x60]
add esp, 8
add ecx, 0x54
push ecx
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x18]
push edx
push eax
mov byte [esp + 0x138], 0x19
call fcn.004e07e0
add esp, 8
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x134], 0x1a
call fcn.00572d3c
lea ecx, [esp + 0x18]
mov byte [esp + 0x130], 0x19
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp + 0x60]
add ecx, 0x54
push ecx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [esp + 0x30]
push 0x5f3788
push edx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x138], 0x1b
call sub.MFC42.DLL_CString::Replace
push str._feiq
lea eax, [esp + 0x1c]
push edi
push eax
call sub.MFC42.DLL_operator
lea ecx, [esp + 0x24]
lea edx, [esp + 0x1c]
push ecx
push eax
push edx
mov byte [esp + 0x13c], 0x1c
call sub.MFC42.DLL_operator_1
mov bl, 0x1e
lea ecx, [esp + 0x18]
mov byte [esp + 0x130], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp + 0x60]
lea ecx, [esp + 0x20]
add eax, 0x5488
push eax
call sub.MFC42.DLL_CString::CString_3
push str._feiq
lea ecx, [esp + 0x14]
push eax
push ecx
mov byte [esp + 0x13c], 0x1f
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov edx, dword [esp + 0x30]
push eax
mov byte [esp + 0x134], 0x20
push edx
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x50b34f
mov eax, dword [esp + 0x1c]
push eax
call fcn.00440560
add esp, 4
mov byte [esp + 0x17], 1
test al, al
sete al
test al, al
jne 0x50b354
mov byte [esp + 0x17], 0
lea ecx, [esp + 0x10]
mov byte [esp + 0x130], 0x1f
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], bl
call sub.MFC42.DLL_CString::CString
mov al, byte [esp + 0x17]
test al, al
je 0x50b732
push esi
lea ecx, [esp + 0x38]
push 0x5ec424
push ecx
call sub.MFC42.DLL_operator_2
push 0x5ec4f0
lea edx, [esp + 0x2c]
push eax
push edx
mov byte [esp + 0x13c], 0x21
call sub.MFC42.DLL_operator
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x20]
push ecx
push eax
push edx
mov byte [esp + 0x13c], 0x22
call sub.MFC42.DLL_operator_1
push 0x5ec4ec
push eax
lea eax, [esp + 0x18]
mov byte [esp + 0x138], 0x23
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov ecx, dword [ebp + 0x20]
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
push 0x24
push 0x5e0340
push eax
push ecx
call edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x38], eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], 0x22
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0x130], 0x21
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x130], bl
call sub.MFC42.DLL_CString::CString
cmp dword [esp + 0x38], 6
jne 0x50b732
lea edx, [esp + 0x1c]
mov ecx, esi
push edx
call fcn.00572d3c
push esi
lea eax, [esp + 0x38]
push 0x5ec404
push eax
call sub.MFC42.DLL_operator_2
push 0x5ec4b8
lea ecx, [esp + 0x2c]
push eax
push ecx
mov byte [esp + 0x13c], 0x24
call sub.MFC42.DLL_operator
lea edx, [esp + 0x1c]
mov byte [esp + 0x130], 0x25
push edx
push eax
lea eax, [esp + 0x28]
push eax
call sub.MFC42.DLL_operator_1
push 0x5ec4ec
lea ecx, [esp + 0x14]
push eax
push ecx
mov byte [esp + 0x13c], 0x26
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov edx, dword [ebp + 0x20]
push 0x24
push 0x5e0340
push eax
push edx
call edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x38], eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], 0x25
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0x130], 0x24
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x130], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x38]
push 0
cmp eax, 6
jne 0x50b6af
mov ecx, dword [ebp + 0x60]
mov eax, dword [esp + 0x20]
add ecx, 0x54
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov edx, dword [ebp + 0x60]
test eax, eax
jne 0x50b5ef
add edx, 0x54
mov ecx, esi
push edx
call sub.MFC42.DLL_CString::operator_2
mov eax, dword [ebp + 0x60]
lea ecx, [esp + 0x38]
add eax, 0x54
push eax
call sub.MFC42.DLL_CString::CString_3
push eax
lea ecx, [esp + 0x38]
push 0x5ec3f0
push ecx
mov byte [esp + 0x13c], 0x27
call sub.MFC42.DLL_operator_2
push 0x5ec49c
lea edx, [esp + 0x2c]
push eax
push edx
mov byte [esp + 0x13c], 0x28
call sub.MFC42.DLL_operator
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x20]
push ecx
push eax
push edx
mov byte [esp + 0x13c], 0x29
call sub.MFC42.DLL_operator_1
push 0x5ec494
push eax
lea eax, [esp + 0x18]
mov byte [esp + 0x138], 0x2a
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov ecx, dword [ebp + 0x20]
push 0x40
push 0x5e0340
push eax
push ecx
call edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], 0x29
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0x130], 0x28
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x130], 0x27
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x130], bl
lea ecx, [esp + 0x38]
jmp 0x50b72d
add edx, 0x54
lea ecx, [esp + 0x28]
push edx
call sub.MFC42.DLL_CString::CString_3
push eax
lea eax, [esp + 0x24]
push 0x5ec3d0
push eax
mov byte [esp + 0x13c], 0x2b
call sub.MFC42.DLL_operator_2
push 0x5ec4ec
lea ecx, [esp + 0x14]
push eax
push ecx
mov byte [esp + 0x13c], 0x2c
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov edx, dword [ebp + 0x20]
push 0x24
push 0x5e0340
push eax
push edx
call edi
lea ecx, [esp + 0x10]
mov esi, eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x130], 0x2b
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0x130], bl
call sub.MFC42.DLL_CString::CString
cmp esi, 6
jne 0x50b732
mov eax, dword [ebp + 0x60]
push 0
add eax, 0x54
mov ecx, ebp
push eax
call fcn.0050c690
test eax, eax
je 0x50b69d
push 0x40
push 0x5e0340
push 0x5e2b28
mov ecx, ebp
call sub.MFC42.DLL_CWnd::MessageBoxA
jmp 0x50b732
mov ecx, dword [ebp + 0x60]
add ecx, 0x54
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x50b732
mov edx, dword [esp + 0x20]
push 0x8000080
push 2
push 0
push 0
push 0x40000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
jne 0x50b732
mov eax, dword [ebp + 0x60]
mov ecx, esi
add eax, 0x54
push eax
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x20]
push ecx
push 0x5ec460
push edx
call sub.MFC42.DLL_operator_2
push 0x5ec458
push eax
lea eax, [esp + 0x18]
mov byte [esp + 0x138], 0x2d
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov ecx, dword [ebp + 0x20]
push 0x40
push 0x5e0340
push eax
push ecx
call edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x130], bl
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x130], 0x1b
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x130], 0x19
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x130], 3
call sub.MFC42.DLL_CString::CString
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp + 0x188]
lea ebx, [ebp + 0x188]
or ecx, 0xffffffff
xor eax, eax
add edx, 0x5488
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call sub.MFC42.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call fcn.00479070
mov ebx, dword [ebx]
mov edx, dword [ebp + 0x60]
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
add edx, 0x5488
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp + 0x184]
or ecx, 0xffffffff
add edx, 0x5078
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x2e]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x14]
push ecx
push edx
lea ecx, [ebp + 0x190]
call sub.MFC42.DLL_CHotKeyCtrl::GetHotKey
mov eax, dword [ebp + 0x60]
mov cx, word [esp + 0x2e]
mov edi, dword [sym.imp.USER32.dll_RegisterHotKey]
mov esi, dword [sym.imp.USER32.dll_UnregisterHotKey]
cmp cx, word [eax + 0x503e]
jne 0x50b83a
mov dx, word [esp + 0x14]
cmp dx, word [eax + 0x503c]
je 0x50b8b4
mov word [eax + 0x503e], cx
mov eax, dword [ebp + 0x60]
mov cx, word [esp + 0x14]
push 0x2006
mov word [eax + 0x503c], cx
mov edx, dword [ebp + 0x64]
mov eax, dword [edx + 0x80]
mov ecx, dword [eax + 0x20]
push ecx
call esi
mov ecx, dword [ebp + 0x60]
mov ax, word [ecx + 0x503c]
test ax, ax
jne 0x50b87c
cmp word [ecx + 0x503e], ax
je 0x50b8b4
xor edx, edx
test al, 4
je 0x50b887
mov edx, 1
test al, 2
je 0x50b88e
or edx, 2
test al, 1
je 0x50b895
or edx, 4
xor eax, eax
mov ax, word [ecx + 0x503e]
mov ecx, dword [ebp + 0x64]
push eax
push edx
mov edx, dword [ecx + 0x80]
push 0x2006
mov eax, dword [edx + 0x20]
push eax
call edi
lea ecx, [esp + 0x14]
lea edx, [esp + 0x2e]
push ecx
push edx
lea ecx, [ebp + 0xf0]
call sub.MFC42.DLL_CHotKeyCtrl::GetHotKey
mov eax, dword [ebp + 0x60]
mov cx, word [esp + 0x2e]
cmp cx, word [eax + 0x5042]
jne 0x50b8e8
mov dx, word [esp + 0x14]
cmp dx, word [eax + 0x5040]
je 0x50b962
mov word [eax + 0x5042], cx
mov eax, dword [ebp + 0x60]
mov cx, word [esp + 0x14]
push 0x2005
mov word [eax + 0x5040], cx
mov edx, dword [ebp + 0x64]
mov eax, dword [edx + 0x80]
mov ecx, dword [eax + 0x20]
push ecx
call esi
mov ecx, dword [ebp + 0x60]
mov ax, word [ecx + 0x5040]
test ax, ax
jne 0x50b92a
cmp word [ecx + 0x5042], ax
je 0x50b962
xor edx, edx
test al, 4
je 0x50b935
mov edx, 1
test al, 2
je 0x50b93c
or edx, 2
test al, 1
je 0x50b943
or edx, 4
xor eax, eax
mov ax, word [ecx + 0x5042]
mov ecx, dword [ebp + 0x64]
push eax
push edx
mov edx, dword [ecx + 0x80]
push 0x2005
mov eax, dword [edx + 0x20]
push eax
call edi
lea ecx, [esp + 0x14]
lea edx, [esp + 0x2e]
push ecx
push edx
lea ecx, [ebp + 0xb0]
call sub.MFC42.DLL_CHotKeyCtrl::GetHotKey
mov eax, dword [ebp + 0x60]
mov cx, word [esp + 0x2e]
cmp cx, word [eax + 0x5046]
jne 0x50b996
mov dx, word [esp + 0x14]
cmp dx, word [eax + 0x5044]
je 0x50ba10
mov word [eax + 0x5046], cx
mov eax, dword [ebp + 0x60]
mov cx, word [esp + 0x14]
push 0x2004
mov word [eax + 0x5044], cx
mov edx, dword [ebp + 0x64]
mov eax, dword [edx + 0x80]
mov ecx, dword [eax + 0x20]
push ecx
call esi
mov ecx, dword [ebp + 0x60]
mov ax, word [ecx + 0x5044]
test ax, ax
jne 0x50b9d8
cmp word [ecx + 0x5046], ax
je 0x50ba10
xor edx, edx
test al, 4
je 0x50b9e3
mov edx, 1
test al, 2
je 0x50b9ea
or edx, 2
test al, 1
je 0x50b9f1
or edx, 4
xor eax, eax
mov ax, word [ecx + 0x5046]
mov ecx, dword [ebp + 0x64]
push eax
push edx
mov edx, dword [ecx + 0x80]
push 0x2004
mov eax, dword [edx + 0x20]
push eax
call edi
lea ecx, [esp + 0x14]
lea edx, [esp + 0x2e]
push ecx
push edx
lea ecx, [ebp + 0x70]
call sub.MFC42.DLL_CHotKeyCtrl::GetHotKey
mov eax, dword [ebp + 0x60]
mov cx, word [esp + 0x2e]
cmp cx, word [eax + 0x504a]
jne 0x50ba41
mov dx, word [esp + 0x14]
cmp dx, word [eax + 0x5048]
je 0x50babb
mov word [eax + 0x504a], cx
mov eax, dword [ebp + 0x60]
mov cx, word [esp + 0x14]
push 0x2003
mov word [eax + 0x5048], cx
mov edx, dword [ebp + 0x64]
mov eax, dword [edx + 0x80]
mov ecx, dword [eax + 0x20]
push ecx
call esi
mov ecx, dword [ebp + 0x60]
mov ax, word [ecx + 0x5048]
test ax, ax
jne 0x50ba83
cmp word [ecx + 0x504a], ax
je 0x50babb
xor edx, edx
test al, 4
je 0x50ba8e
mov edx, 1
test al, 2
je 0x50ba95
or edx, 2
test al, 1
je 0x50ba9c
or edx, 4
xor eax, eax
mov ax, word [ecx + 0x504a]
mov ecx, dword [ebp + 0x64]
push eax
push edx
mov edx, dword [ecx + 0x80]
push 0x2003
mov eax, dword [edx + 0x20]
push eax
call edi
mov eax, dword [ebp + 0x1ec]
test eax, eax
je 0x50bc0c
lea esi, [ebp + 0x1f0]
mov ecx, esi
call sub.MFC42.DLL_CString::TrimRight
mov eax, dword [esi]
push 0x5f3788
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x50bb2d
mov ecx, dword [ebp + 0x20]
push 0x40
push 0x5e0340
push 0x5ec3b4
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x3c]
mov byte [esp + 0x130], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov dword [esp + 0x130], 0xffffffff
call fcn.00572f64
xor eax, eax
jmp 0x50be18
mov eax, dword [esi]
lea edx, [esp + 0x24]
push eax
push edx
call fcn.004e07e0
add esp, 8
push 0
push ecx
lea eax, [esp + 0x2c]
mov bl, 0x2e
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
mov byte [esp + 0x13c], bl
call sub.MFC42.DLL_CString::CString_4
call fcn.00443380
add esp, 8
test eax, eax
jne 0x50bbfb
push esi
lea ecx, [esp + 0x14]
push 0x5ec39c
push ecx
call sub.MFC42.DLL_operator_2
push 0x5ec37c
lea edx, [esp + 0x1c]
push eax
push edx
mov byte [esp + 0x13c], 0x2f
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0x40
push 0x5e0340
push eax
mov eax, dword [ebp + 0x20]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x130], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x130], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x3c]
mov byte [esp + 0x130], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov dword [esp + 0x130], 0xffffffff
call fcn.00572f64
xor eax, eax
jmp 0x50be18
lea ecx, [esp + 0x24]
mov byte [esp + 0x130], 3
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x1ec]
cmp dword [eax + 0x50], ecx
je 0x50bdd3
test ecx, ecx
je 0x50bdbe
mov eax, dword [ebp + 0x1f0]
lea ebx, [ebp + 0x1f0]
push eax
call fcn.00440560
add esp, 4
test al, al
je 0x50bccc
push ebx
lea ecx, [esp + 0x14]
push 0x5ec344
push ecx
call sub.MFC42.DLL_operator_2
push 0x5ec30c
lea edx, [esp + 0x1c]
push eax
push edx
mov byte [esp + 0x13c], 0x30
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0x21
push 0x5e0340
push eax
mov eax, dword [ebp + 0x20]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x18]
mov esi, eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov byte [esp + 0x130], 3
call sub.MFC42.DLL_CString::CString
cmp esi, 2
jne 0x50bccc
lea ecx, [esp + 0x3c]
mov byte [esp + 0x130], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov dword [esp + 0x130], 0xffffffff
call fcn.00572f64
xor eax, eax
jmp 0x50be18
mov ecx, dword [ebp + 0x20]
push 0x23
push 0x5e0340
push 0x5ec26c
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 2
jne 0x50bd13
mov byte [esp + 0x130], 0
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov dword [esp + 0x130], 0xffffffff
call fcn.00572f64
xor eax, eax
jmp 0x50be18
cmp eax, 6
jne 0x50bd95
mov edi, 0x5e1604
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x5c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x5f3788
call sub.MFC42.DLL_CString::CString_3
push 0
push str.LUBENTAO
lea ecx, [esp + 0x6c]
call fcn.0051e900
push 0
push 0
lea ecx, [esp + 0x64]
mov byte [esp + 0x138], 0x31
call fcn.0051ec30
push str.LUBENTAO
lea ecx, [esp + 0x60]
call fcn.0051f8b0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x130], 3
call fcn.0051ead0
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x1ec]
push 0x104
mov dword [ecx + 0x50], edx
mov eax, dword [ebp + 0x60]
mov ebx, dword [ebx]
add eax, 0x54
push ebx
push eax
call fcn.0043bab0
add esp, 0xc
push 0
push 1
jmp 0x50bdc9
push 1
mov dword [eax + 0x50], 0
push 0
mov ecx, dword [ebp + 0x60]
push 0xffffffffffffffff
call fcn.0040da70
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x1f0]
push 0x104
add ecx, 0x54
push eax
push ecx
call fcn.0043bab0
add esp, 0xc
lea ecx, [esp + 0x3c]
mov byte [esp + 0x130], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov dword [esp + 0x130], 0xffffffff
call fcn.00572f64
mov eax, 1
mov ecx, dword [esp + 0x128]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x124
ret