Function at 0x409bd0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4bb88b
mov eax, dword fs:[0]
push eax
sub esp, 0x130
mov eax, dword [0x4ed310]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push esi
push edi
mov eax, dword [0x4ed310]
xor eax, esp
push eax
lea eax, [esp + 0x140]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x38], edx
xor edx, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x148], ecx
mov esi, dword [eax + 4]
mov eax, dword [eax + 8]
cmp esi, eax
je 0x409efb
mov ecx, dword [esi]
test byte [ecx + 0x50], 1
je 0x409cf0
mov ebx, ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], 3
cmp ecx, edx
jae 0x409cc4
mov eax, dword [esp + 0x14]
cmp eax, ecx
ja 0x409cc4
mov ebx, ecx
sub ebx, eax
sar ebx, 3
cmp edx, dword [esp + 0x1c]
jne 0x409ca8
lea ecx, [esp + 0x14]
call fcn.004154e0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
test edx, edx
je 0x409cb8
mov ecx, dword [eax + ebx*8]
mov dword [edx], ecx
mov eax, dword [eax + ebx*8 + 4]
mov dword [edx + 4], eax
add edx, 8
mov dword [esp + 0x18], edx
jmp 0x409ee5
cmp edx, dword [esp + 0x1c]
jne 0x409cd7
lea ecx, [esp + 0x14]
call fcn.004154e0
mov edx, dword [esp + 0x18]
test edx, edx
je 0x409ce4
mov dword [edx], ebx
mov dword [edx + 4], 3
add edx, 8
mov dword [esp + 0x18], edx
jmp 0x409ee5
cmp dword [ecx + 0x5c], 0
ja 0x409d03
cmp dword [ecx + 0x58], 0xfffff800
jbe 0x409dff
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 4]
cmp dword [eax + 8], 2
je 0x409dff
cmp dword [eax], 4
mov eax, dword [eax]
setne dl
cmp eax, 2
je 0x409d34
cmp eax, 3
je 0x409d34
cmp eax, 4
je 0x409d34
cmp eax, 5
je 0x409d34
xor al, al
jmp 0x409d36
mov al, 1
test dl, dl
je 0x409dff
add ecx, 0x60
mov ebx, 8
test al, al
jne 0x409da7
cmp dword [ecx + 0x14], ebx
jb 0x409d51
mov ecx, dword [ecx]
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov edx, dword [eax]
push ecx
push str.__Warning:_Skipping___s___the_file_is_larger_than_4_GiB.
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esi]
add esp, 0xc
cmp dword [eax + 0x74], ebx
jb 0x409d74
mov ebx, dword [eax + 0x60]
jmp 0x409d77
lea ebx, [eax + 0x60]
mov dword [esp + 0x24], 2
call fcn.0040f830
lea edx, [esp + 0x24]
call fcn.0040f940
mov eax, dword [eax]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
push ebx
push eax
mov eax, dword [edx + 0x10]
push 1
push ecx
call eax
add esp, 0x10
jmp 0x409ee1
cmp dword [ecx + 0x14], ebx
jb 0x409dae
mov ecx, dword [ecx]
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov edx, dword [eax]
push ecx
push str.__Warning:_The_file___s__is_larger_than_4_GiB._It_will_not_be_visible_in_the_ISO9660_Joliet_file_system.
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esi]
add esp, 0xc
cmp dword [eax + 0x74], ebx
jb 0x409dd1
mov ebx, dword [eax + 0x60]
jmp 0x409dd4
lea ebx, [eax + 0x60]
mov dword [esp + 0x24], 3
call fcn.0040f830
lea edx, [esp + 0x24]
call fcn.0040f940
mov eax, dword [eax]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
push ebx
push eax
mov eax, dword [edx + 0x10]
push 1
push ecx
call eax
add esp, 0x10
mov eax, dword [esi]
test byte [eax + 0x50], 2
je 0x409e5e
mov ecx, dword [eax + 0x114]
xor edx, edx
cmp ecx, edx
je 0x409f66
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xe0], ebx
mov dword [eax + 0xe4], edx
mov ebx, dword [ecx + 0xc]
mov eax, dword [esi]
mov dword [eax + 0xe8], ebx
mov dword [eax + 0xec], edx
mov ebx, dword [ecx + 8]
mov eax, dword [esi]
mov dword [eax + 0xd0], ebx
mov dword [eax + 0xd4], edx
mov ecx, dword [ecx + 8]
mov eax, dword [esi]
mov dword [eax + 0xd8], ecx
mov dword [eax + 0xdc], edx
jmp 0x409ee1
mov edx, dword [eax + 0x58]
mov dword [eax + 0xe0], edx
mov ecx, dword [eax + 0x5c]
mov dword [eax + 0xe4], ecx
mov eax, dword [esi]
mov edx, dword [eax + 0x58]
mov dword [eax + 0xe8], edx
mov ecx, dword [eax + 0x5c]
mov dword [eax + 0xec], ecx
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
mov dword [eax + 0xd0], edi
mov dword [eax + 0xd4], ecx
mov eax, dword [esi]
mov dword [eax + 0xd8], edi
mov dword [eax + 0xdc], ecx
mov edx, dword [esi]
mov eax, dword [edx + 0xe0]
mov ecx, dword [edx + 0xe4]
mov ebx, eax
shrd ebx, ecx, 0xb
shr ecx, 0xb
add edi, ebx
mov ebx, dword [esp + 0x38]
adc ebx, ecx
and eax, 0x7ff
xor ecx, ecx
or eax, ecx
je 0x409ed3
add edi, 1
adc ebx, ecx
mov edx, dword [edx + 0xf0]
add edi, edx
adc ebx, ecx
mov dword [esp + 0x38], ebx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
add esi, 4
cmp esi, dword [eax + 8]
jne 0x409c60
mov dword [esp + 0x34], edi
xor ecx, ecx
mov eax, edx
sub eax, dword [esp + 0x14]
sar eax, 3
cmp eax, ecx
jbe 0x40a39f
lea esp, [esp]
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + eax*8 - 8]
mov eax, dword [ecx + eax*8 - 4]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x24], eax
cmp ecx, edx
je 0x409f2f
sub edx, 8
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + 4]
cmp ebx, dword [eax + 8]
je 0x40a38c
nop
mov esi, dword [ebx]
test byte [esi + 0x50], 1
je 0x40a110
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 4]
add eax, 4
cmp byte [eax], 0
je 0x409fe5
or al, 0xff
jmp 0x409ff2
lea ecx, [esp + 0x4c]
push ecx
mov dword [esp + 0x38], edi
call fcn.0040c2c0
push str.__does_not_contain_imported_session_data_like_advertised.
mov byte [esp + 0x14c], 1
mov edx, dword [esi]
push ecx
add edx, 0x60
push edx
push ecx
lea eax, [esp + 0x6c]
push str.The_file__
push eax
call fcn.0040d6c0
add esp, 0xc
push eax
call fcn.0040d980
add esp, 0xc
push eax
call fcn.0040d6c0
add esp, 8
lea ecx, [esp + 0x11c]
lea eax, [esp + 0x4c]
call fcn.0040c360
push eax
lea ecx, [esp + 0xf8]
push ecx
mov byte [esp + 0x150], 2
call fcn.00403180
push 0x4e2d94
lea edx, [esp + 0xf8]
push edx
call fcn.00499164
cmp dword [eax + 4], 3
sete al
dec al
and al, 9
dec al
movzx eax, al
cmp dword [esp + 0x24], eax
jg 0x40a37c
mov ecx, dword [esp + 0x24]
inc ecx
lea eax, [esp + 0x40]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ecx
cmp eax, edx
jae 0x40a0a0
mov ecx, eax
mov eax, dword [esp + 0x14]
cmp eax, ecx
ja 0x40a0a0
mov esi, ecx
sub esi, eax
sar esi, 3
cmp edx, dword [esp + 0x1c]
jne 0x40a080
mov eax, edx
sub eax, dword [esp + 0x14]
sar eax, 3
cmp eax, 0x1ffffffe
ja 0x40a3e5
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x14]
inc eax
sar ecx, 3
cmp eax, ecx
jbe 0x40a07c
mov edx, ecx
shr edx, 1
mov edi, 0x1fffffff
sub edi, edx
cmp edi, ecx
jae 0x40a066
xor ecx, ecx
jmp 0x40a068
add ecx, edx
cmp ecx, eax
jae 0x40a06e
mov ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00415600
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
test edx, edx
je 0x40a094
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + esi*8]
mov dword [edx], ecx
mov eax, dword [eax + esi*8 + 4]
mov dword [edx + 4], eax
add edx, 8
mov dword [esp + 0x18], edx
jmp 0x40a37c
cmp edx, dword [esp + 0x1c]
jne 0x40a0f7
mov eax, edx
sub eax, dword [esp + 0x14]
sar eax, 3
cmp eax, 0x1ffffffe
ja 0x40a3e5
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x14]
inc eax
sar ecx, 3
cmp eax, ecx
jbe 0x40a0f3
mov edx, ecx
shr edx, 1
mov edi, 0x1fffffff
sub edi, edx
cmp edi, ecx
jae 0x40a0dd
xor ecx, ecx
jmp 0x40a0df
add ecx, edx
cmp ecx, eax
jae 0x40a0e5
mov ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00415600
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
test edx, edx
je 0x40a104
mov ecx, dword [esp + 0x44]
mov dword [edx], esi
mov dword [edx + 4], ecx
add edx, 8
mov dword [esp + 0x18], edx
jmp 0x40a37c
cmp dword [esi + 0x5c], 0
ja 0x40a123
cmp dword [esi + 0x58], 0xfffff800
jbe 0x40a28a
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
cmp dword [eax + 8], 2
je 0x40a28a
cmp dword [eax], 4
mov eax, dword [eax]
setne cl
cmp eax, 2
je 0x40a154
cmp eax, 3
je 0x40a154
cmp eax, 4
je 0x40a154
cmp eax, 5
je 0x40a154
xor al, al
jmp 0x40a156
mov al, 1
test cl, cl
je 0x40a28a
lea ecx, [esi + 0x60]
test al, al
jne 0x40a1fa
cmp dword [ecx + 0x14], 8
jb 0x40a171
mov ecx, dword [ecx]
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov edx, dword [eax]
push ecx
push str.__Warning:_Skipping___s___the_file_is_larger_than_4_GiB.
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [ebx]
add esp, 0xc
cmp dword [eax + 0x74], 8
jb 0x40a195
mov esi, dword [eax + 0x60]
jmp 0x40a198
lea esi, [eax + 0x60]
test byte [0x4f1188], 1
jne 0x40a1ca
or dword [0x4f1188], 1
mov byte [esp + 0x148], 3
call fcn.0040f610
push 0x4bc480
call fcn.004997fc
add esp, 4
mov byte [esp + 0x148], 0
lea edx, [esp + 0x2c]
mov eax, 0x4f113c
mov dword [esp + 0x2c], 2
call fcn.0040f940
mov eax, dword [eax]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
push esi
push eax
mov eax, dword [edx + 0x10]
push 1
push ecx
call eax
add esp, 0x10
jmp 0x40a378
cmp dword [ecx + 0x14], 8
jb 0x40a202
mov ecx, dword [ecx]
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov edx, dword [eax]
push ecx
push str.__Warning:_The_file___s__is_larger_than_4_GiB._It_will_not_be_visible_in_the_ISO9660_Joliet_file_system.
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [ebx]
add esp, 0xc
cmp dword [eax + 0x74], 8
jb 0x40a226
mov esi, dword [eax + 0x60]
jmp 0x40a229
lea esi, [eax + 0x60]
test byte [0x4f1188], 1
jne 0x40a25b
or dword [0x4f1188], 1
mov byte [esp + 0x148], 4
call fcn.0040f610
push 0x4bc480
call fcn.004997fc
add esp, 4
mov byte [esp + 0x148], 0
lea edx, [esp + 0x2c]
mov eax, 0x4f113c
mov dword [esp + 0x2c], 3
call fcn.0040f940
mov eax, dword [eax]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
push esi
push eax
mov eax, dword [edx + 0x10]
push 1
push ecx
call eax
mov edx, dword [esp + 0x28]
add esp, 0x10
mov eax, dword [ebx]
test byte [eax + 0x50], 2
je 0x40a2f1
mov ecx, dword [eax + 0x114]
test ecx, ecx
je 0x40a3ef
mov esi, dword [ecx + 0xc]
mov dword [eax + 0xe0], esi
mov dword [eax + 0xe4], 0
mov esi, dword [ecx + 0xc]
mov eax, dword [ebx]
mov dword [eax + 0xe8], esi
mov dword [eax + 0xec], 0
mov esi, dword [ecx + 8]
mov eax, dword [ebx]
mov dword [eax + 0xd0], esi
xor esi, esi
mov dword [eax + 0xd4], esi
mov ecx, dword [ecx + 8]
mov eax, dword [ebx]
mov dword [eax + 0xd8], ecx
mov dword [eax + 0xdc], esi
jmp 0x40a37c
mov edx, dword [eax + 0x58]
mov dword [eax + 0xe0], edx
mov ecx, dword [eax + 0x5c]
mov dword [eax + 0xe4], ecx
mov eax, dword [ebx]
mov edx, dword [eax + 0x58]
mov dword [eax + 0xe8], edx
mov ecx, dword [eax + 0x5c]
mov dword [eax + 0xec], ecx
mov eax, dword [ebx]
mov ecx, dword [esp + 0x38]
mov dword [eax + 0xd0], edi
mov dword [eax + 0xd4], ecx
mov eax, dword [ebx]
mov dword [eax + 0xd8], edi
mov dword [eax + 0xdc], ecx
mov edx, dword [ebx]
mov eax, dword [edx + 0xe0]
mov ecx, dword [edx + 0xe4]
mov esi, eax
shrd esi, ecx, 0xb
shr ecx, 0xb
add edi, esi
mov esi, dword [esp + 0x38]
adc esi, ecx
and eax, 0x7ff
xor ecx, ecx
or eax, ecx
je 0x40a366
add edi, 1
adc esi, ecx
mov edx, dword [edx + 0xf0]
add edi, edx
adc esi, ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], esi
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
add ebx, 4
ret
add al, 0x3b
pop eax
or byte [edi], cl
invalid
mov ah, 0xfb
invalid
invalid
mov eax, edx
sub eax, dword [esp + 0x14]
sar eax, 3
test eax, eax
jne 0x409f10
xor ecx, ecx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
mov dword [eax], edi
mov dword [eax + 4], edx
cmp dword [esp + 0x14], ecx
je 0x40a3bf
mov eax, dword [esp + 0x14]
push eax
call fcn.0049855c
add esp, 4
mov ecx, dword [esp + 0x140]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.00499155
mov esp, ebp
pop ebp
ret 0x10
push str.vector_T__too_long
call fcn.00497968
mov dword [esp + 0x4c], 0x4cd510
mov dword [esp + 0x5c], 0x4cd518
mov byte [esp + 0x148], 5
xor edi, edi
lea esi, [esp + 0xac]
mov dword [esp + 0x2c], 1
mov dword [esp + 0xac], vtable.std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__.0
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
call fcn.00409700
lea ecx, [esp + 0x64]
mov dword [esp + 0xe8], edi
lea edi, [esp + 0x24]
mov eax, esi
mov dword [esp + 0xe4], ecx
call fcn.004096c0
mov edi, eax
mov dword [esp + 0x148], 8
call fcn.0040d580
mov byte [esp + 0x148], 7
mov edi, dword [esp + 0x24]
mov dword [esp + 0x30], eax
test edi, edi
je 0x40a4ae
push 0
lea ecx, [esp + 0x40]
call fcn.00498022
mov eax, dword [edi + 4]
test eax, eax
je 0x40a48e
cmp eax, 0xffffffff
jae 0x40a48e
dec eax
mov dword [edi + 4], eax
mov esi, dword [edi + 4]
neg esi
sbb esi, esi
lea ecx, [esp + 0x3c]
not esi
call fcn.0049804a
and esi, edi
je 0x40a4ae
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
push 0x20
call eax
xor esi, esi
mov word [esp + 0xec], ax
cmp dword [esp + 0xe4], esi
jne 0x40a4e5
mov eax, dword [esp + 0xb8]
or eax, 4
push esi
lea ecx, [esp + 0xb0]
call fcn.004095c0
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx + 4]
mov dword [esp + edx + 0x5c], vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 4]
mov dword [esp + ecx + 0x4c], vtable.std::basic_iostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov dword [esp + 0x148], 0xb
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + 4]
lea ecx, [esp + 0x64]
push ecx
mov dword [esp + eax + 0x50], vtable.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
call fcn.0040d190
mov dword [esp + 0x64], vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], esi
push str.__does_not_contain_imported_session_data_like_advertised.
mov byte [esp + 0x14c], 0xd
mov edx, dword [ebx]
push ecx
add edx, 0x60
push edx
push ecx
lea eax, [esp + 0x6c]
push str.The_file__
push eax
call fcn.0040d6c0
add esp, 0xc
push eax
call fcn.0040d980
add esp, 0xc
push eax
call fcn.0040d6c0
add esp, 8
lea ecx, [esp + 0x11c]
lea eax, [esp + 0x4c]
call fcn.0040c360
push eax
lea ecx, [esp + 0xf8]
push ecx
mov byte [esp + 0x150], 0xe
call fcn.00403180
push 0x4e2d94
lea edx, [esp + 0xf8]
push edx
call fcn.00499164
int3