Function at 0x40c320
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43dc56
mov eax, dword fs:[0]
push eax
sub esp, 0x360
mov eax, dword [0x44e018]
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 eax, dword [ebp + 8]
mov ecx, dword [eax + 0x178]
mov dword [ebp - 0x2a8], eax
xor edi, edi
mov dword [ebp - 0x2c4], edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x78]
lea edx, [ebp - 0x2c4]
push edx
call eax
cmp eax, edi
je 0x40c3ac
push str.GetISDIDeviceManager2___Failed.
push str.RunEnumDeviceCommand.cpp
push 0x4519f8
mov ecx, 0x44f9d4
call dword [sym.imp.MSVCR100.dll_public:_char_const____thiscall_type_info::_name_internal_method_struct___type_info_node__const]
push eax
lea edx, [edi + 0x6c]
lea ecx, [edi + 5]
mov eax, 0x451ef0
call fcn.0041f340
add esp, 0xc
xor al, al
jmp 0x40cfbe
mov esi, 7
xor ecx, ecx
mov dword [ebp - method.CSDIResultString.virtual_0], vtable.CSDIResultString.0
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x108], edi
mov word [ebp - 0x118], cx
mov dword [ebp - 4], edi
mov ecx, dword [ebp - 0x2c4]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
lea eax, [ebp - 0x11c]
push eax
call edx
lea eax, [ebp - 0x29e]
push eax
lea ecx, [ebp - 0x2f4]
push ecx
call fcn.00405790
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x118]
mov ebx, 8
cmp dword [ebp - 0x104], ebx
jae 0x40c417
lea eax, [ebp - 0x118]
xor edx, edx
mov ecx, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], edi
mov word [ebp - 0x30], dx
lea esi, [ecx + 2]
jmp 0x40c430
mov dx, word [ecx]
add ecx, 2
cmp dx, di
jne 0x40c430
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [ebp - 0x30]
call fcn.00404c70
lea ecx, [ebp - 0x2f4]
mov edx, esi
mov byte [ebp - 4], 2
call fcn.00421f90
mov byte [ebp - 4], 1
mov esi, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
cmp dword [ebp - 0x1c], ebx
jb 0x40c471
mov eax, dword [ebp - 0x30]
push eax
call esi
add esp, 4
push 0x73
push str.RunEnumDeviceCommand.cpp
lea ecx, [ebp - 0x2f4]
call fcn.0040d230
add esp, 8
mov dword [ebp - 0x2bc], eax
cmp eax, edi
jne 0x40c51c
push str.parDictInstalledDevices_is_NULL
push str.RunEnumDeviceCommand.cpp
push 0x4519f8
mov ecx, 0x44f9d4
call dword [sym.imp.MSVCR100.dll_public:_char_const____thiscall_type_info::_name_internal_method_struct___type_info_node__const]
mov edx, 0x74
push eax
lea ecx, [edx - 0x6f]
mov eax, 0x451ef0
call fcn.0041f340
mov eax, dword [ebp - 0x2e4]
add esp, 0xc
cmp eax, edi
je 0x40c4d4
push eax
call esi
add esp, 4
lea ecx, [ebp - 0x2f0]
mov dword [ebp - 0x2e4], edi
mov dword [ebp - 0x2e0], edi
mov dword [ebp - 0x2dc], edi
mov dword [ebp - 0x2b8], ecx
mov edx, ecx
push edx
mov byte [ebp - 4], 3
call fcn.004058b0
mov eax, dword [ebp - 0x2f0]
push eax
call esi
add esp, 4
lea ecx, [ebp - 0x11c]
call fcn.00404400
xor al, al
jmp 0x40cfbe
mov edi, dword [ebp - 0x2a8]
add edi, 0x218
mov dword [ebp - 0x2a0], edi
cmp dword [edi + 0x14], ebx
jb 0x40c537
mov eax, dword [edi]
jmp 0x40c539
mov eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x78
sub esp, 0x1c
mov esi, esp
xor ecx, ecx
mov dword [ebp - 0x2b8], esp
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
push ecx
mov eax, 0x4401a0
mov ebx, str.RunEnumDeviceCommand.cpp
mov word [esi], cx
call fcn.00404c70
mov edx, dword [ebp - 0x2a8]
push ecx
mov byte [ebp - 4], 4
mov ecx, esp
mov dword [ebp - 0x2c0], esp
push edx
mov edx, 0x44095c
call fcn.0040b830
lea eax, [ebp - 0x88]
push eax
mov edx, ebx
xor ecx, ecx
mov byte [ebp - 4], 1
call fcn.0040d4a0
add esp, 0x28
push 1
lea ecx, [ebp - 0x2a4]
push ecx
lea edx, [ebp - 0x88]
mov byte [ebp - 4], 5
mov ebx, 0x2e
push edx
xor eax, eax
mov dword [ebp - 0x2a4], ebx
call fcn.00408660
push eax
xor ecx, ecx
lea esi, [ebp - 0xfc]
lea edx, [ebp - 0x88]
call fcn.00408610
push 1
lea eax, [ebp - 0x2a4]
push eax
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 6
push ecx
xor eax, eax
mov dword [ebp - 0x2a4], ebx
call fcn.00408660
push 1
mov esi, eax
lea edx, [ebp - 0x2a4]
push edx
lea eax, [ebp - 0x88]
push eax
xor eax, eax
mov dword [ebp - 0x2a4], ebx
call fcn.00408660
push esi
lea ecx, [eax + 1]
lea esi, [ebp - 0xe0]
lea edx, [ebp - 0x88]
call fcn.00408610
push 0
push 0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 7
call fcn.00404370
add esp, 8
cmp dword [edi + 0x14], 8
jb 0x40c651
mov ecx, dword [edi]
jmp 0x40c653
mov ecx, edi
mov ebx, 8
cmp dword [eax + 0x14], ebx
jb 0x40c65f
mov eax, dword [eax]
mov esi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push ecx
push eax
push str.DeviceCount
push str.Devices
call esi
cmp dword [ebp - 0x38], ebx
jb 0x40c685
mov ecx, dword [ebp - 0x4c]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [edi + 0x14], ebx
jb 0x40c68e
mov eax, dword [edi]
jmp 0x40c690
mov eax, edi
mov ecx, dword [ebp - 0xfc]
cmp dword [ebp - 0xe8], ebx
jae 0x40c6a4
lea ecx, [ebp - 0xfc]
push eax
push ecx
push str.DriverMajor
push str.Devices
call esi
cmp dword [edi + 0x14], ebx
jb 0x40c6b9
mov edi, dword [edi]
mov eax, dword [ebp - 0xe0]
cmp dword [ebp - 0xcc], ebx
jae 0x40c6cd
lea eax, [ebp - 0xe0]
push edi
push eax
push str.DriverMinor
push str.Devices
call esi
mov edx, dword [ebp - 0x2bc]
lea eax, [ebp - 0x2a4]
lea esi, [ebp - 0x300]
mov dword [ebp - 0x2a8], 1
mov dword [ebp - 0x2a4], edx
call fcn.004026f0
lea eax, [ebp - 0x2a4]
lea esi, [ebp - 0x360]
call fcn.00402730
mov eax, dword [ebp - 0x2f8]
xor esi, esi
cmp eax, dword [ebp - 0x358]
je 0x40ced3
lea edx, [ebp - 0x300]
call fcn.00402770
lea ecx, [ebp - 0x29c]
push ecx
mov ebx, eax
call fcn.0040edc0
mov dword [ebp - method.CDVMDeviceInfo.virtual_0], vtable.CDVMDeviceInfo.0
mov byte [ebp - 0x144], 0
lea ecx, [ebp - 0x29c]
mov byte [ebp - 4], 8
call fcn.0040fd40
lea edx, [ebp - 0x29c]
push edx
lea esi, [ebp - 0x50]
call fcn.0040ed40
cmp byte [eax], 0
setne bl
cmp byte [ebp - 0x50], 0
je 0x40c78e
cmp dword [ebp - 0x38], 8
jb 0x40c78e
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
test bl, bl
je 0x40cdc5
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x90], 7
mov dword [ebp - 0x94], ebx
mov word [ebp - 0xa4], cx
lea edx, [ebp - 0x29c]
push edx
lea edi, [ebp - 0x138]
mov byte [ebp - 4], 9
call fcn.0040e330
mov byte [ebp - 4], 0xa
cmp byte [eax], bl
je 0x40ce9c
lea ecx, [eax + 4]
lea eax, [ebp - 0x324]
push eax
call fcn.0040e910
mov byte [ebp - 4], 0xd
cmp byte [ebp - 0x138], bl
je 0x40c815
lea esi, [ebp - 0x134]
call fcn.0040b700
mov ecx, dword [ebp - 0x134]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [ebp - 0x134], ebx
mov byte [ebp - 0x138], bl
lea edx, [ebp - 0x324]
lea eax, [ebp - 0x2a4]
lea esi, [ebp - 0x30c]
mov dword [ebp - 0x2a4], edx
call fcn.004026f0
lea eax, [ebp - 0x2a4]
lea esi, [ebp - 0x36c]
call fcn.00402730
mov edi, dword [ebp - 0x304]
lea esp, [esp]
cmp edi, dword [ebp - 0x364]
je 0x40c8bd
lea edx, [ebp - 0x30c]
call fcn.00402770
mov ecx, eax
lea esi, [ebp - 0x4c]
call fcn.00404c40
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0x94], ebx
je 0x40c88a
lea eax, [ebp - 0xa4]
push eax
mov eax, 0x4407c4
call fcn.0040d0d0
push ebx
lea ecx, [ebp - 0x4c]
push ecx
or eax, 0xffffffff
lea esi, [ebp - 0xa4]
call fcn.0040dff0
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x38], 8
jb 0x40c8b4
mov edx, dword [ebp - 0x4c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
inc edi
mov dword [ebp - 0x304], edi
jmp 0x40c850
lea eax, [ebp - 0x29c]
push eax
lea esi, [ebp - 0xc4]
call fcn.0040ed40
mov edi, eax
mov byte [ebp - 4], 0xf
xor ecx, ecx
push 9
mov eax, str..dispName
lea esi, [ebp - 0x30]
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], ebx
mov word [ebp - 0x30], cx
call fcn.00404c70
mov eax, dword [ebp - 0x2a8]
cdq
push edx
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2b0], edx
call fcn.00404370
add esp, 8
mov ecx, eax
mov eax, esi
lea ebx, [ebp - 0x6c]
mov byte [ebp - 4], 0x11
call fcn.0040d9a0
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x2a0]
mov ebx, 8
cmp dword [edx + 0x14], ebx
jb 0x40c940
mov ecx, edx
mov edx, dword [ecx]
cmp byte [edi], 0
je 0x40ce65
cmp dword [edi + 0x18], ebx
lea ecx, [edi + 4]
jb 0x40c953
mov ecx, dword [ecx]
cmp dword [eax + 0x14], ebx
jb 0x40c95a
mov eax, dword [eax]
push edx
push ecx
push eax
push str.Devices
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [ebp - 0x58], ebx
jb 0x40c97a
mov edx, dword [ebp - 0x6c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor edi, edi
xor eax, eax
mov esi, 7
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x5c], edi
mov word [ebp - 0x6c], ax
cmp dword [ebp - 0x38], ebx
jb 0x40c99f
mov ecx, dword [ebp - 0x4c]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor edx, edx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], edi
mov word [ebp - 0x4c], dx
cmp dword [ebp - 0x1c], ebx
jb 0x40c9bd
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor ecx, ecx
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], edi
mov word [ebp - 0x30], cx
cmp byte [ebp - 0xc4], cl
je 0x40c9ed
cmp dword [ebp - 0xac], ebx
jb 0x40c9ed
mov edx, dword [ebp - 0xc0]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor eax, eax
mov dword [ebp - 0x1c], esi
mov word [ebp - 0x30], ax
push 9
mov eax, str..deviceID
lea esi, [ebp - 0x30]
mov dword [ebp - 0x20], edi
call fcn.00404c70
mov ecx, dword [ebp - 0x2b0]
mov edx, dword [ebp - 0x2b4]
push ecx
push edx
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x14
call fcn.00404370
add esp, 8
mov ecx, eax
mov eax, esi
lea ebx, [ebp - 0x4c]
mov byte [ebp - 4], 0x15
call fcn.0040d9a0
mov ecx, dword [ebp - 0x2a0]
mov esi, 8
cmp dword [ecx + 0x14], esi
jb 0x40ca47
mov ecx, dword [ecx]
mov edx, dword [ebp - 0xa4]
cmp dword [ebp - 0x90], esi
jae 0x40ca5b
lea edx, [ebp - 0xa4]
cmp dword [eax + 0x14], esi
jb 0x40ca62
mov eax, dword [eax]
push ecx
push edx
push eax
push str.Devices
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [ebp - 0x38], esi
jb 0x40ca82
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor ebx, ebx
xor ecx, ecx
mov edi, 7
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x4c], cx
cmp dword [ebp - 0x58], esi
jb 0x40caa7
mov edx, dword [ebp - 0x6c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor eax, eax
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x5c], ebx
mov word [ebp - 0x6c], ax
cmp dword [ebp - 0x1c], esi
jb 0x40cac9
mov ecx, dword [ebp - 0x30]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
lea edx, [ebp - 0x29c]
push edx
lea esi, [ebp - 0xc4]
call fcn.0040df80
mov edi, eax
mov byte [ebp - 4], 0x16
xor eax, eax
mov word [ebp - 0x30], ax
push 0xa
mov eax, str..productID
lea esi, [ebp - 0x30]
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], ebx
call fcn.00404c70
mov ecx, dword [ebp - 0x2b0]
mov edx, dword [ebp - 0x2b4]
push ecx
push edx
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x17
call fcn.00404370
add esp, 8
mov ecx, eax
mov eax, esi
lea ebx, [ebp - 0x4c]
mov byte [ebp - 4], 0x18
call fcn.0040d9a0
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x2a0]
mov esi, 8
mov edx, ecx
cmp dword [ecx + 0x14], esi
jb 0x40cb45
mov edx, dword [edx]
cmp byte [edi], 0
je 0x40ce2e
cmp dword [edi + 0x18], esi
lea ecx, [edi + 4]
jb 0x40cb58
mov ecx, dword [ecx]
cmp dword [eax + 0x14], esi
jb 0x40cb5f
mov eax, dword [eax]
push edx
push ecx
push eax
push str.Devices
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [ebp - 0x38], esi
jb 0x40cb7f
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor edi, edi
xor ecx, ecx
mov ebx, 7
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x3c], edi
mov word [ebp - 0x4c], cx
cmp dword [ebp - 0x58], esi
jb 0x40cba4
mov edx, dword [ebp - 0x6c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor eax, eax
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x5c], edi
mov word [ebp - 0x6c], ax
cmp dword [ebp - 0x1c], esi
jb 0x40cbc2
mov ecx, dword [ebp - 0x30]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor edx, edx
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], edi
mov word [ebp - 0x30], dx
cmp byte [ebp - 0xc4], dl
je 0x40cbf2
cmp dword [ebp - 0xac], esi
jb 0x40cbf2
mov eax, dword [ebp - 0xc0]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
lea ecx, [ebp - 0x29c]
push ecx
lea esi, [ebp - 0xc4]
call fcn.0040df10
mov edi, eax
mov byte [ebp - 4], 0x1b
xor edx, edx
push 0xa
mov eax, str..scannerID
lea esi, [ebp - 0x30]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0
mov word [ebp - 0x30], dx
call fcn.00404c70
mov eax, dword [ebp - 0x2b0]
mov ecx, dword [ebp - 0x2b4]
push eax
push ecx
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x1c
call fcn.00404370
add esp, 8
mov ecx, eax
mov eax, esi
lea ebx, [ebp - 0x4c]
mov byte [ebp - 4], 0x1d
call fcn.0040d9a0
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x2a0]
mov ebx, 8
mov ecx, edx
cmp dword [edx + 0x14], ebx
jb 0x40cc6e
mov ecx, dword [ecx]
cmp byte [edi], 0
je 0x40cdf7
add edi, 4
cmp dword [edi + 0x14], ebx
jb 0x40cc81
mov edi, dword [edi]
cmp dword [eax + 0x14], ebx
jb 0x40cc88
mov eax, dword [eax]
push ecx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push eax
push str.Devices
call edi
cmp dword [ebp - 0x38], ebx
jb 0x40ccaa
mov edx, dword [ebp - 0x4c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor eax, eax
mov esi, 7
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], 0
mov word [ebp - 0x4c], ax
cmp dword [ebp - 0x58], ebx
jb 0x40ccd1
mov ecx, dword [ebp - 0x6c]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor edx, edx
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x5c], 0
mov word [ebp - 0x6c], dx
cmp dword [ebp - 0x1c], ebx
jb 0x40ccf3
mov eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
xor ecx, ecx
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], 0
mov word [ebp - 0x30], cx
cmp byte [ebp - 0xc4], cl
je 0x40cd27
cmp dword [ebp - 0xac], ebx
jb 0x40cd27
mov edx, dword [ebp - 0xc0]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [ebp - 0x2b0]
mov ecx, dword [ebp - 0x2b4]
push eax
push ecx
lea ecx, [ebp - 0x4c]
call fcn.00404370
mov ecx, dword [ebp - 0x2a0]
add esp, 8
cmp dword [ecx + 0x14], ebx
jb 0x40cd4d
mov ecx, dword [ecx]
cmp dword [eax + 0x14], ebx
jb 0x40cd54
mov eax, dword [eax]
push ecx
push eax
push str.DeviceCount
push str.Devices
call edi
cmp dword [ebp - 0x38], ebx
jb 0x40cd74
mov edx, dword [ebp - 0x4c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
lea esi, [ebp - 0x324]
mov byte [ebp - 4], 9
call fcn.0040b700
mov ecx, esi
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base12::_Orphan_all_void_]
mov eax, dword [ebp - 0x324]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, esi
mov dword [ebp - 0x324], 0
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base12::destructor_void_]
cmp dword [ebp - 0x90], ebx
jb 0x40cdc5
mov ecx, dword [ebp - 0xa4]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov esi, 1
add dword [ebp - 0x2a8], esi
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x29c]
mov dword [ebp - method.CDVMDeviceInfo.virtual_0], vtable.CDVMDeviceInfo.0
call fcn.0040ee90
add dword [ebp - 0x2f8], esi
lea ebx, [esi + 7]
jmp 0x40c713
lea edx, [ebp - 0x2bc]
push edx
lea ecx, [ebp - 0x348]
mov dword [ebp - 0x2bc], str.Attempted_to_access_the_value_of_an_uninitialized_optional_object.
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
mov dword [ebp - method.boost::bad_function_call.virtual_0], vtable.boost::bad_optional_access.0
lea eax, [ebp - 0x348]
push eax
mov byte [ebp - 4], 0x1f
call fcn.0040fcf0
lea ecx, [ebp - 0x2c8]
push ecx
lea ecx, [ebp - 0x33c]
mov dword [ebp - 0x2c8], str.Attempted_to_access_the_value_of_an_uninitialized_optional_object.
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
mov dword [ebp - method.boost::bad_function_call.virtual_0], vtable.boost::bad_optional_access.0
lea edx, [ebp - 0x33c]
push edx
mov byte [ebp - 4], 0x1a
call fcn.0040fcf0
lea eax, [ebp - 0x2c0]
push eax
lea ecx, [ebp - 0x354]
mov dword [ebp - 0x2c0], str.Attempted_to_access_the_value_of_an_uninitialized_optional_object.
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
mov dword [ebp - method.boost::bad_function_call.virtual_0], vtable.boost::bad_optional_access.0
lea ecx, [ebp - 0x354]
push ecx
mov byte [ebp - 4], 0x13
call fcn.0040fcf0
lea edx, [ebp - 0x2b8]
push edx
lea ecx, [ebp - 0x330]
mov dword [ebp - 0x2b8], str.Attempted_to_access_the_value_of_an_uninitialized_optional_object.
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
mov dword [ebp - method.boost::bad_function_call.virtual_0], vtable.boost::bad_optional_access.0
lea eax, [ebp - 0x330]
push eax
mov byte [ebp - 4], 0xb
call fcn.0040fcf0
mov edi, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
cmp dword [ebp - 0xcc], ebx
jb 0x40ceed
mov ecx, dword [ebp - 0xe0]
push ecx
call edi
add esp, 4
xor edx, edx
mov dword [ebp - 0xcc], 7
mov dword [ebp - 0xd0], esi
mov word [ebp - 0xe0], dx
cmp dword [ebp - 0xe8], ebx
jb 0x40cf1a
mov eax, dword [ebp - 0xfc]
push eax
call edi
add esp, 4
xor ecx, ecx
mov dword [ebp - 0xe8], 7
mov dword [ebp - 0xec], esi
mov word [ebp - 0xfc], cx
cmp dword [ebp - 0x74], ebx
jb 0x40cf44
mov edx, dword [ebp - 0x88]
push edx
call edi
add esp, 4
xor eax, eax
mov dword [ebp - 0x74], 7
mov dword [ebp - 0x78], esi
mov word [ebp - 0x88], ax
mov byte [ebp - 4], 0x20
cmp dword [ebp - 0x2e4], esi
je 0x40cf7b
lea ecx, [ebp - 0x2e4]
call dword [sym.imp.MSVCP100.dll_public:_void___thiscall_std::_Container_base0::_Orphan_all_void_]
mov ecx, dword [ebp - 0x2e4]
push ecx
call edi
add esp, 4
lea edx, [ebp - 0x2f0]
mov dword [ebp - 0x2e4], esi
mov dword [ebp - 0x2e0], esi
mov dword [ebp - 0x2dc], esi
mov dword [ebp - 0x2b8], edx
mov eax, edx
push eax
mov byte [ebp - 4], 0x21
call fcn.004058b0
mov ecx, dword [ebp - 0x2f0]
push ecx
call edi
add esp, 4
lea ecx, [ebp - 0x11c]
call fcn.00404400
mov al, 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.00438de6
mov esp, ebp
pop ebp
ret 4