Function at 0x4099f0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push 0xffffffffffffffff
push 0x4a6f8e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x420
push ebx
push ebp
mov ebp, ecx
push esi
push edi
push str.DLLAmUfdHlp.dll
lea eax, [ebp + 0x3dc4]
lea ecx, [esp + 0x14]
push eax
push ecx
mov ebx, 1
call sub.MFC42.DLL_operator_1
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
lea ecx, [esp + 0x10]
mov dword [esp + 0x24], esi
call sub.MFC42.DLL_CString::CString
xor edi, edi
cmp esi, edi
jne 0x409a64
push edi
push edi
push str.Fail
call sub.MFC42.DLL_AfxMessageBox
push edi
call dword [sym.imp.USER32.dll_PostQuitMessage]
xor eax, eax
jmp 0x409f5c
push str.AR_Initialize
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call esi
mov edx, dword [esp + 0x24]
push str.AR_WriteExtra1M
push edx
mov dword [ebp + 0x3d74], eax
call esi
mov dword [ebp + 0x3d78], eax
mov eax, dword [esp + 0x24]
push str.AR_ReadExtra1M
push eax
call esi
mov ecx, dword [esp + 0x24]
push str.AR_GetFlashDiskDrive2K
push ecx
mov dword [ebp + 0x3d7c], eax
call esi
push edi
mov dword [ebp + 0x3d80], eax
call dword [sym.imp.MSVCRT.dll_time]
push eax
call dword [sym.imp.MSVCRT.dll_srand]
add esp, 8
lea ecx, [esp + 0x28]
mov byte [esp + 0x18], 0x61
mov byte [esp + 0x19], 0x6c
mov byte [esp + 0x1a], 0x63
mov byte [esp + 0x1b], 0x6f
mov byte [esp + 0x1c], 0x72
mov byte [esp + 0x1d], 0x73
mov byte [esp + 0x1e], 0x7a
mov byte [esp + 0x1f], 0x33
mov byte [esp + 0x20], 0x31
mov byte [esp + 0x21], 0x35
mov byte [esp + 0x22], 0x32
mov dword [esp + 0x10], edi
call sub.MFC42.DLL_CString::CString_1
push str.alcorsz3152
push 0xb
mov dword [esp + 0x440], edi
call dword [ebp + 0x3d74]
test eax, eax
jne 0x409b67
lea edx, [esp + 0x10]
push str.IDS_ERR_VIRTUAL_NO_DISK
push edx
call fcn.00410750
add esp, 8
lea esi, [ebp + 0x3cc0]
push eax
mov ecx, esi
mov byte [esp + 0x43c], 1
call fcn.004a5776
lea ecx, [esp + 0x10]
mov byte [esp + 0x438], 0
call sub.MFC42.DLL_CString::CString
mov esi, dword [esi]
push edi
push edi
push esi
mov ecx, ebp
call sub.MFC42.DLL_CWnd::MessageBoxA
xor ebx, ebx
jmp 0x409f3b
lea eax, [esp + 0x17]
push eax
push str.8.07
push str.flash_disk
push str.generic
call dword [ebp + 0x3d80]
movsx ecx, byte [esp + 0x17]
push ecx
lea edx, [esp + 0x2c]
push str.._c:
push edx
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x34]
add esp, 0xc
push edi
push 0x80
push 3
push edi
push 3
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
je 0x409ed2
lea ecx, [esp + 0x30]
push ecx
push 1
push 0x82
push eax
call fcn.00482380
add esp, 0x10
test eax, eax
jne 0x409c22
lea edx, [esp + 0x10]
push str.IDS_ERR_VIRTUAL_NO_DISK
push edx
call fcn.00410750
add esp, 8
lea esi, [ebp + 0x3cc0]
push eax
mov ecx, esi
mov byte [esp + 0x43c], 2
call fcn.004a5776
lea ecx, [esp + 0x10]
mov byte [esp + 0x438], 0
call sub.MFC42.DLL_CString::CString
mov esi, dword [esi]
push edi
push edi
push esi
mov ecx, ebp
call sub.MFC42.DLL_CWnd::MessageBoxA
xor ebx, ebx
jmp 0x409f3b
mov ecx, 5
lea edi, [esp + 0x18]
lea esi, [esp + 0x130]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x409c71
lea ecx, [esp + 0x10]
push str.IDS_ERR_VIRTUAL_NO_DISK
push ecx
call fcn.00410750
add esp, 8
lea esi, [ebp + 0x3cc0]
push eax
mov ecx, esi
mov byte [esp + 0x43c], 3
call fcn.004a5776
mov byte [esp + 0x438], 0
lea ecx, [esp + 0x10]
jmp 0x409ebf
lea edx, [esp + 0x30]
push edx
push 1
push 1
call dword [ebp + 0x3d7c]
test eax, eax
jne 0x409cbd
lea eax, [esp + 0x10]
push str.IDS_ERR_VIRTUAL_NO_DISK
push eax
call fcn.00410750
add esp, 8
lea esi, [ebp + 0x3cc0]
push eax
mov ecx, esi
mov byte [esp + 0x43c], 4
call fcn.004a5776
mov byte [esp + 0x438], 0
lea ecx, [esp + 0x10]
jmp 0x409ebf
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x10]
cmp edx, 0xb
jl 0x409cd2
mov dword [esp + 0x10], eax
xor esi, esi
jmp 0x409cd9
mov esi, edx
inc edx
mov dword [esp + 0x10], edx
mov dl, byte [esp + esi + 0x18]
xor byte [esp + ecx + 0x30], dl
inc ecx
cmp ecx, 0x200
jl 0x409cc1
mov ecx, 5
lea edi, [esp + 0x18]
lea esi, [esp + 0x30]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x409d36
lea eax, [esp + 0x10]
push str.IDS_ERR_VIRTUAL_NO_DISK
push eax
call fcn.00410750
add esp, 8
lea esi, [ebp + 0x3cc0]
push eax
mov ecx, esi
mov byte [esp + 0x43c], 5
call fcn.004a5776
mov byte [esp + 0x438], 0
lea ecx, [esp + 0x10]
jmp 0x409ebf
mov edx, dword [esp + 0x35]
mov ecx, dword [esp + 0x36]
and edx, 0xff
and ecx, 0xff
shl edx, 8
add edx, ecx
cmp edx, 0x3e8
ja 0x409ed6
cmp edx, eax
jbe 0x409ed6
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x30]
dec edx
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.MSVCRT.dll_rand]
mov eax, edx
shr eax, 8
mov byte [esp + 0x30], 0x61
mov byte [esp + 0x31], 0x6c
mov byte [esp + 0x32], 0x63
mov byte [esp + 0x33], 0x6f
mov byte [esp + 0x34], 0x72
mov byte [esp + 0x35], al
mov byte [esp + 0x36], dl
mov esi, 7
call edi
mov byte [esp + esi + 0x30], al
inc esi
cmp esi, 0x200
jl 0x409da2
xor edi, edi
xor eax, eax
cmp edi, 0xb
jl 0x409dc0
xor edi, edi
xor esi, esi
jmp 0x409dc3
mov esi, edi
inc edi
mov cl, byte [esp + esi + 0x18]
mov dl, byte [esp + eax + 0x30]
xor dl, cl
mov byte [esp + eax + 0x30], dl
inc eax
cmp eax, 0x200
jl 0x409db5
lea edx, [esp + 0x30]
push edx
push 1
push 1
call dword [ebp + 0x3d78]
test eax, eax
jne 0x409e25
lea eax, [esp + 0x10]
push str.IDS_ERR_VIRTUAL_NO_DISK
push eax
call fcn.00410750
add esp, 8
lea esi, [ebp + 0x3cc0]
push eax
mov ecx, esi
mov byte [esp + 0x43c], 7
call fcn.004a5776
mov byte [esp + 0x438], 0
lea ecx, [esp + 0x10]
jmp 0x409ebf
lea ecx, [esp + 0x230]
push ecx
push 1
push 1
call dword [ebp + 0x3d7c]
test eax, eax
jne 0x409e71
lea edx, [esp + 0x10]
push str.IDS_ERR_VIRTUAL_NO_DISK
push edx
call fcn.00410750
add esp, 8
lea esi, [ebp + 0x3cc0]
push eax
mov ecx, esi
mov byte [esp + 0x43c], 8
call fcn.004a5776
mov byte [esp + 0x438], 0
lea ecx, [esp + 0x10]
jmp 0x409ebf
mov ecx, 0x80
lea edi, [esp + 0x230]
lea esi, [esp + 0x30]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
je 0x409f3b
lea ecx, [esp + 0x2c]
push str.IDS_ERR_VIRTUAL_NO_DISK
push ecx
call fcn.00410750
add esp, 8
lea esi, [ebp + 0x3cc0]
push eax
mov ecx, esi
mov byte [esp + 0x43c], 9
call fcn.004a5776
mov byte [esp + 0x438], 0
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString
mov esi, dword [esi]
push 0
push 0
push esi
mov ecx, ebp
call sub.MFC42.DLL_CWnd::MessageBoxA
xor ebx, ebx
jmp 0x409f3b
lea edx, [esp + 0x2c]
push str.IDS_ERR_VIRTUAL_NUM_OVERFLOW
push edx
call fcn.00410750
add esp, 8
lea esi, [ebp + 0x3cc0]
push eax
mov ecx, esi
mov byte [esp + 0x43c], 6
call fcn.004a5776
lea ecx, [esp + 0x2c]
mov byte [esp + 0x438], 0
call sub.MFC42.DLL_CString::CString
mov esi, dword [esi]
push 0
push 0
push esi
mov ecx, ebp
call sub.MFC42.DLL_CWnd::MessageBoxA
mov ecx, 0x80
xor eax, eax
lea edi, [esp + 0x30]
xor ebx, ebx
rep stosd dword es:[edi], eax
lea eax, [esp + 0x30]
push eax
push 1
push 1
call dword [ebp + 0x3d78]
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [esp + 0x28]
mov dword [esp + 0x438], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, ebx
mov ecx, dword [esp + 0x430]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x42c
ret