Function at 0x408c7f
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f247f
mov eax, dword fs:[0]
push eax
mov eax, 0x10cb8
call fcn.004c5100
mov eax, dword [0x533840]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0x10a18], eax
mov dword [ebp - 0x109c4], eax
call fcn.0041e8e0
push str.Russian
push 0
call fcn.004d11f1
mov eax, dword [ebp + 8]
add esp, 8
cmp eax, 1
jne 0x407d37
mov edx, str.No_HL_demo_file_or_demo_dir_selected.
mov ecx, 0x58abb0
call fcn.0040b890
push eax
call fcn.0040bb30
mov edx, str.Just_drop_one_.dem_file_to_this_.exe_to_parse_a_single_file
mov ecx, 0x58abb0
call fcn.0040b890
push eax
call fcn.0040bb30
mov edx, str.Or_drop_several_files_to_parse_all_.dem_files_in_that_directory.
mov ecx, 0x58abb0
call fcn.0040b890
push eax
call fcn.0040bb30
push str.PAUSE
call fcn.004cfc23
add esp, 0x10
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c43a7
mov esp, ebp
pop ebp
ret
mov esi, dword [esi + 4]
mov dword [ebp - 0x10a00], esi
cmp eax, 2
jne 0x407d84
test esi, esi
je 0x407d84
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407d50
sub ecx, edx
lea eax, [esi - 1]
add eax, ecx
cmp eax, esi
je 0x407d6d
cmp byte [eax - 1], 0x2e
je 0x407dbc
dec eax
cmp eax, esi
jne 0x407d62
lea edx, [ebp - 0x258]
mov ecx, esi
sub edx, esi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x407d77
lea edi, [ebp - 0x258]
lea ecx, [edi + 1]
nop dword [eax]
mov al, byte [edi]
inc edi
test al, al
jne 0x407d90
sub edi, ecx
mov dword [ebp - 0x109dc], edi
cmp byte [0x58b97b], al
jne 0x407f27
cmp edi, 0x103
je 0x409a21
jmp 0x407f27
mov al, byte [eax]
cmp al, 0x5c
je 0x407d6d
cmp al, 0x2f
je 0x407d6d
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407dd0
sub ecx, edx
lea eax, [esi - 1]
add eax, ecx
cmp eax, esi
je 0x407dff
cmp byte [eax - 1], 0x2e
lea ecx, [eax - 1]
je 0x407df3
mov eax, ecx
cmp eax, esi
jne 0x407de2
jmp 0x407dff
mov cl, byte [eax]
cmp cl, 0x5c
je 0x407dff
cmp cl, 0x2f
jne 0x407e01
xor eax, eax
push 0x52b55c
push eax
call fcn.004d285e
add esp, 8
test eax, eax
je 0x407e4f
mov edx, 0x52b578
mov ecx, 0x58abb0
call fcn.0040b890
mov edx, esi
mov ecx, eax
call fcn.0040b890
mov edx, str.__is_not_a_.dem_file.
mov ecx, eax
call fcn.0040b890
push eax
call fcn.0040bb30
push str.PAUSE
call fcn.004cfc23
add esp, 8
jmp 0x407d1a
push ecx
lea edx, [ebp - 0x35c]
mov byte [0x58b97b], 1
mov ecx, esi
call fcn.0041ea10
lea ecx, [ebp - 0x35c]
add esp, 4
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407e70
sub ecx, edx
lea eax, [ebp - 0x35c]
lea ecx, [ebp + ecx - 0x35d]
cmp ecx, eax
jbe 0x407ea6
nop word [eax + eax]
mov al, byte [ecx - 1]
cmp al, 0x5c
je 0x407ea6
cmp al, 0x2f
je 0x407ea6
dec ecx
lea eax, [ebp - 0x35c]
cmp ecx, eax
ja 0x407e90
mov edx, 0x597c50
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x407eb0
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407ec2
sub ecx, edx
lea eax, [ecx - 1]
neg ecx
sbb ecx, ecx
and ecx, eax
add ecx, esi
cmp ecx, esi
je 0x407ef2
nop word [eax + eax]
mov dl, byte [ecx - 1]
cmp dl, 0x5c
je 0x407ef2
cmp dl, 0x2f
je 0x407ef2
dec ecx
cmp ecx, esi
jne 0x407ee0
sub ecx, esi
lea eax, [ebp - 0x258]
mov esi, 0x102
cmp ecx, esi
cmovl esi, ecx
push esi
push dword [ebp - 0x10a00]
push eax
call fcn.004c6400
mov byte [ebp + esi - 0x258], 0
add esp, 0xc
mov esi, dword [ebp - 0x10a00]
jmp 0x407d84
lea eax, [edi + 1]
mov byte [ebp + edi - 0x258], 0x2a
cmp eax, 0x104
jae 0x409a3d
mov byte [ebp + eax - 0x258], 0
lea eax, [ebp - 0x105b8]
push eax
lea eax, [ebp - 0x258]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x10a1c], eax
cmp edi, 0x104
jae 0x409a3d
mov cl, byte [0x58b97b]
mov byte [ebp + edi - 0x258], 0
test cl, cl
jne 0x407faa
cmp eax, 0xffffffff
jne 0x407faa
lea eax, [ebp - 0x258]
push eax
push str.Unable_to_open_dir___s__n_n
call fcn.00405870
push str.PAUSE
call fcn.004cfc23
add esp, 0xc
mov eax, 1
jmp 0x407d1c
lea eax, [ebp - 0x10460]
mov dword [ebp - 0x109e0], 0
mov dword [0x5993e8], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov dword [ebp - 0x10a28], eax
mov eax, dword fs:[0x2c]
mov dword [ebp - 0x109fc], 0
mov dword [0x5993ec], 0xffff
mov dword [ebp - 0x10a24], 0x5c
mov dword [ebp - 0x10a20], eax
test cl, cl
jne 0x40823f
lea ecx, [ebp - 0x1058c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408005
sub ecx, edx
lea eax, [ebp - 0x1058d]
add eax, ecx
lea edx, [ebp - 0x1058c]
mov ecx, eax
cmp ecx, edx
je 0x409934
cmp byte [ecx - 1], 0x2e
je 0x40803c
dec ecx
lea edx, [ebp - 0x1058c]
cmp ecx, edx
jne 0x408026
jmp 0x409934
mov cl, byte [ecx]
cmp cl, 0x5c
je 0x409934
cmp cl, 0x2f
je 0x409934
cmp byte [eax - 1], 0x2e
je 0x408063
dec eax
lea ecx, [ebp - 0x1058c]
cmp eax, ecx
jne 0x408050
jmp 0x40806f
mov cl, byte [eax]
cmp cl, 0x5c
je 0x40806f
cmp cl, 0x2f
jne 0x408071
xor eax, eax
push 0x52b55c
push eax
call fcn.004d285e
add esp, 8
test eax, eax
jne 0x409934
lea ecx, [ebp - 0x1058c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408090
sub ecx, edx
lea eax, [ecx + edi]
cmp eax, 0x104
lea eax, [ebp - 0x258]
jb 0x4080d4
push eax
push str.Path___s__is_too_long_nMake_it_shorter_n
call fcn.00405870
lea eax, [ebp - 0x1058c]
push eax
lea eax, [ebp - 0x258]
push eax
push str.ERROR:_Unable_to_open___s_s__n_n
call fcn.00405870
add esp, 0x14
jmp 0x409934
push 0x103
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.004d5bb0
lea esi, [ebp - 0x114]
mov byte [ebp - 0x12], 0
add esp, 0xc
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4080f6
sub esi, ecx
test esi, esi
jle 0x40813a
mov al, byte [ebp + esi - 0x115]
cmp al, 0x5c
je 0x40813a
cmp al, 0x2f
je 0x40813a
lea eax, [esi + 1]
cmp eax, 0x103
jl 0x408130
lea eax, [ebp - 0x114]
push eax
push str.V_AppendSlash:_ran_out_of_space_on__s.
call fcn.0041d270
add esp, 8
mov word [ebp + esi - 0x114], 0x5c
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408143
sub ecx, edx
lea edx, [ebp - 0x1058c]
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x408155
sub edx, esi
mov esi, 0x102
sub esi, ecx
lea eax, [ecx + edx]
cmp eax, 0x103
cmovb esi, edx
test esi, esi
je 0x408192
push esi
lea eax, [ebp - 0x1058c]
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.004d26f0
add esp, 0xc
mov byte [eax + 0x102], 0
mov al, byte [ebp - 0x114]
lea ecx, [ebp - 0x114]
test al, al
je 0x4081b5
cmp al, 0x2f
je 0x4081aa
cmp al, 0x5c
jne 0x4081ad
mov byte [ecx], 0x5c
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4081a2
lea eax, [ebp - 0x114]
push 0x514834
push eax
call fcn.004c9665
add esp, 4
lea edx, [ebp - 0x35c]
mov edi, eax
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x109d8], edi
call fcn.0041ea10
lea ecx, [ebp - 0x35c]
add esp, 4
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4081f0
sub ecx, edx
lea eax, [ebp - 0x35c]
lea ecx, [ebp + ecx - 0x35d]
cmp ecx, eax
jbe 0x408226
nop word [eax + eax]
mov al, byte [ecx - 1]
cmp al, 0x5c
je 0x408226
cmp al, 0x2f
je 0x408226
dec ecx
lea eax, [ebp - 0x35c]
cmp ecx, eax
ja 0x408210
mov edx, 0x597c50
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x408230
jmp 0x40826e
push 0x514834
push esi
call fcn.004c9665
mov edi, eax
lea ecx, [ebp - 0x114]
mov edx, esi
mov dword [ebp - 0x109d8], edi
mov eax, ecx
add esp, 8
sub edx, eax
mov al, byte [edx + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
test al, al
jne 0x408261
lea eax, [ebp - 0x114]
push eax
test edi, edi
jne 0x408298
push str.Unable_to_open___s__n_n
call fcn.00405870
add esp, 8
cmp byte [0x58b97b], 0
jne 0x409a0f
jmp 0x40992e
lea eax, [ebp - 0x460]
push str._s.nav
push eax
call fcn.00405940
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x460]
push str._s.test
push eax
call fcn.00405940
add esp, 0x18
mov dword [ebp - 0x10b10], 0x52be38
lea ecx, [ebp - 0x10aa8]
call fcn.0040b380
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x10a18]
or eax, 1
mov dword [ebp - 0x10a18], eax
mov dword [ebp - 0x109c4], eax
mov eax, dword [ebp - 0x10b10]
push 0
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x10b10]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x10b14], eax
lea eax, [ebp - 0x10b0c]
push eax
mov eax, dword [ebp - 0x10b10]
lea ecx, [ebp - 0x10b10]
add ecx, dword [eax + 4]
call fcn.0040b570
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x10b10]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ofstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x10b10]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x10b14], eax
lea ecx, [ebp - 0x10b0c]
call fcn.0040b200
mov byte [ebp - 4], 3
cmp dword [ebp - 0x10ac0], 0
jne 0x4083f0
push 0x40
lea eax, [ebp - 0x460]
push 2
push eax
call fcn.004b75c7
add esp, 0xc
test eax, eax
je 0x4083f0
push 1
push eax
lea ecx, [ebp - 0x10b0c]
call fcn.0040b010
mov eax, dword [ebp - 0x10ad8]
mov esi, dword [eax + 4]
mov ecx, esi
mov dword [ebp - 0x10a5c], esi
mov eax, dword [esi]
call dword [eax + 4]
lea eax, [ebp - 0x10a60]
mov byte [ebp - 4], 4
push eax
call fcn.0040bbe0
add esp, 4
lea ecx, [ebp - 0x10b0c]
push eax
call fcn.0040aeb0
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x408419
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
jmp 0x408419
mov eax, dword [ebp - 0x10b10]
lea ecx, [ebp - 0x10b10]
push 0
add ecx, dword [eax + 4]
xor eax, eax
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push eax
call fcn.0040d250
mov ecx, 0x538854
mov dword [ebp - 4], 5
call fcn.0040b100
mov eax, dword [ebp - 0x10b10]
lea edx, [ebp - 0x10b10]
add edx, dword [eax + 4]
mov eax, dword [0x538850]
mov dword [ebp - 0x109d4], edx
mov esi, dword [eax + 4]
add esi, 0x538850
mov dword [ebp - 0x109cc], esi
cmp esi, edx
je 0x4084f9
mov ecx, dword [esi + 0xc]
mov eax, dword [edx + 0xc]
mov edi, dword [ebp - 0x109cc]
mov dword [esi + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [edx + 0xc], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x14], eax
mov dword [edx + 0x14], ecx
mov edx, dword [esi + 0x18]
mov ecx, dword [ebp - 0x109d4]
mov esi, dword [esi + 0x1c]
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [edi + 0x18], eax
mov eax, edi
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x109d4]
mov dword [ecx + 0x18], edx
mov dword [ecx + 0x1c], esi
mov edx, dword [eax + 0x20]
mov esi, dword [eax + 0x24]
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [edi + 0x20], eax
mov eax, edi
mov edi, dword [ebp - 0x109d8]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp - 0x109d4]
mov dword [ecx + 0x20], edx
mov edx, ecx
mov dword [edx + 0x24], esi
mov esi, eax
mov eax, dword [edx + 0x28]
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x28], eax
mov eax, dword [edx + 0x2c]
mov dword [edx + 0x28], ecx
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x2c], eax
mov eax, dword [edx + 0x30]
mov dword [edx + 0x2c], ecx
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x30], eax
mov dword [edx + 0x30], ecx
mov al, byte [edx + 0x40]
mov cl, byte [esi + 0x40]
mov byte [esi + 0x40], al
mov eax, dword [edx + 0x3c]
mov byte [edx + 0x40], cl
mov ecx, dword [esi + 0x3c]
mov dword [esi + 0x3c], eax
lea eax, [ebp - 0x10b0c]
mov dword [edx + 0x3c], ecx
mov ecx, 0x538854
push eax
call fcn.0040b6a0
mov eax, dword [ebp - 0x10b10]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ofstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x10b10]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x10b14], eax
lea ecx, [ebp - 0x10b0c]
call fcn.0040a740
mov eax, dword [ebp - 0x10b10]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x10b10]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0x10b14], eax
lea eax, [ebp - 0x10aa8]
mov dword [ebp - 4], 6
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.004b748f
lea eax, [ebp - 0x114]
mov dword [ebp - 4], 0xffffffff
push eax
push str.Start_reading___s__n
call fcn.00402020
push 2
push 0
push edi
call fcn.004c9bdb
push edi
call fcn.004ca2ff
push 0
mov esi, eax
push 0
push edi
mov dword [ebp - 0x109d4], esi
call fcn.004c9bdb
push edi
push 1
lea eax, [ebp - 0x107d8]
push 0x220
push eax
call fcn.004ca508
add esp, 0x38
lea eax, [ebp - 0x107d8]
mov ecx, str.HLDEMO
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x408614
test dl, dl
je 0x408610
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x408614
add eax, 2
add ecx, 2
test dl, dl
jne 0x4085f4
xor eax, eax
jmp 0x408619
sbb eax, eax
or eax, 1
test eax, eax
je 0x40865a
push str.ERROR:_Invalid_demo_file_n
mov byte [ebp - 0x107d2], 0
call fcn.00405870
lea eax, [ebp - 0x107d8]
push eax
push str.FileStamp_should_be__HLDEMO___not___s__n_n
call fcn.00405870
push edi
call fcn.004c9888
add esp, 0x10
cmp byte [0x58b97b], 0
jne 0x409a0f
jmp 0x40992e
push esi
push str.DemoSize___0x_x__n
call fcn.00405870
push dword [ebp - 0x107cc]
lea eax, [ebp - 0x107d8]
push dword [ebp - 0x107d0]
push eax
push str.DemoHeader:_n_tFilestamp____s__n_tDemoProtocol____i__n_tNetworkProtocol____i__n
call fcn.00405870
push dword [ebp - 0x105bc]
lea eax, [ebp - 0x106c4]
push dword [ebp - 0x105c0]
push eax
lea eax, [ebp - 0x107c8]
push eax
push str._tMap_Name____s__n_tGame_Directory____s__n_tMap_Checksum___0x_x__n_tDirectoryOffset___0x_x__n
call fcn.00405870
mov eax, dword [ebp - 0x107d0]
add esp, 0x2c
cmp eax, 5
je 0x4086da
push eax
push str.Error:_Unknown_demo_protocol___i__n_n
call fcn.00405870
push edi
call fcn.004c9888
add esp, 0xc
cmp byte [0x58b97b], 0
jne 0x409a0f
jmp 0x40992e
mov eax, dword [ebp - 0x107cc]
cmp eax, 0x30
je 0x4086ed
push eax
push str.Error:_Unable_to_read__i_network_protocol._n_n
jmp 0x4086ba
mov ecx, dword [ebp - 0x105bc]
test ecx, ecx
je 0x4088ef
cmp ecx, esi
jle 0x408714
push str.Error:_DirectoryOffset_DemoSize_n_n
call fcn.00405870
push edi
call fcn.004c9888
jmp 0x408283
mov eax, esi
xor edx, edx
sub eax, ecx
mov esi, 0x5c
sub eax, 4
div esi
mov esi, eax
test edx, edx
je 0x40876e
push str.ERROR:__DemoFileSize_sizeof_int__DirectoryOffset___sizeof_demoentry_t__should_be_0_n
call fcn.00405870
mov esi, dword [ebp - 0x109d4]
xor edx, edx
mov ecx, dword [ebp - 0x105bc]
mov eax, esi
sub eax, ecx
sub eax, 4
div dword [ebp - 0x10a24]
push edx
push 0x5c
push ecx
push 4
push esi
push str.But_you_have___i__i__i____i_i_n_n
call fcn.00405870
push edi
call fcn.004c9888
add esp, 0x20
jmp 0x408286
push 0
push ecx
push edi
call fcn.004c9bdb
push edi
push 1
lea eax, [ebp - 0x109e0]
push 4
push eax
call fcn.004ca508
mov edx, dword [ebp - 0x109e0]
add esp, 0x1c
cmp edx, esi
je 0x4087aa
push esi
push edx
push str.Warning:_DirectoryEntries___i._Expected__i_n
call fcn.00405870
mov edx, dword [ebp - 0x109e0]
add esp, 0xc
cmp edx, 0x400
jl 0x4087cb
push edx
push str.Error:_Too_many_Directory_Entries___i__n_n
call fcn.00405870
push edi
call fcn.004c9888
add esp, 0xc
jmp 0x408286
mov eax, dword [ebp - 0x105bc]
imul ecx, edx, 0x5c
add eax, 4
add eax, ecx
cmp eax, dword [ebp - 0x109d4]
jbe 0x408805
push esi
push edx
push str.Error_:Indescribable_error._So__debug_info_only:_n_tnDirectoryEntries_i_n_tnDirectoryEntriesExpexted_i_n
call fcn.00405870
push str.This_error_happens__when_n__DemoHeader.DirectoryOffsetsizeof_int_sizeof_demoentry_t_nDirectoryEntries__DemoSize__nHope__it_told_you_something._n_n
call fcn.00405870
push edi
call fcn.004c9888
add esp, 0x14
jmp 0x408286
xor ecx, ecx
mov eax, edx
mov edx, 0x5c
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004c43b5
push edi
push dword [ebp - 0x109e0]
mov esi, eax
push 0x5c
push esi
mov dword [ebp - 0x109cc], esi
call fcn.004ca508
push str.DirectoryEntries:_n
call fcn.00405870
add esp, 0x18
mov dword [ebp - 0x109c4], 0
cmp dword [ebp - 0x109e0], 0
jle 0x408910
mov edi, dword [ebp - 0x109c4]
add esi, 0x44
inc edi
push edi
push str.__i__n
call fcn.00405870
lea eax, [esi - 0x40]
push eax
push str._t_Title____s__n
call fcn.00405870
push dword [esi]
push str._t_Flags____i__n
call fcn.00405870
push dword [esi + 4]
push str._t_CdTrack____i__n
call fcn.00405870
movss xmm0, dword [esi + 8]
add esp, 0x18
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str._t_EntryTime____.5f__n
call fcn.00405870
push dword [esi + 0xc]
push str._t_Frames____i__n
call fcn.00405870
push dword [esi + 0x10]
push str._t_Offset____i__n
call fcn.00405870
push dword [esi + 0x14]
push str._t_Lenght____i__n
call fcn.00405870
add esp, 0x24
lea esi, [esi + 0x5c]
cmp edi, dword [ebp - 0x109e0]
jl 0x408861
mov edi, dword [ebp - 0x109d8]
jmp 0x408910
push str.WARNING:_Offset_of_Entry_Directory_sholdnt_be_NULL._Probably__demo_corrupted._n_n
call fcn.00405870
add esp, 4
mov dword [ebp - 0x109cc], 0
mov dword [ebp - 0x109e0], 0x400
push 0xc
call fcn.004d23ef
mov esi, eax
push str.clientdata_t
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [0x597b44]
mov dword [esi], ecx
mov dword [0x597b44], esi
call fcn.004d2528
push 0xc
mov dword [esi + 4], eax
mov dword [esi + 8], 0
call fcn.004d23ef
mov esi, eax
push str.entity_state_t
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [0x597b44]
mov dword [esi], ecx
mov dword [0x597b44], esi
call fcn.004d2528
push 0xc
mov dword [esi + 4], eax
mov dword [esi + 8], 0
call fcn.004d23ef
mov esi, eax
push str.entity_state_player_t
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [0x597b44]
mov dword [esi], ecx
mov dword [0x597b44], esi
call fcn.004d2528
push 0xc
mov dword [esi + 4], eax
mov dword [esi + 8], 0
call fcn.004d23ef
mov esi, eax
push str.custom_entity_state_t
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [0x597b44]
mov dword [esi], ecx
mov dword [0x597b44], esi
call fcn.004d2528
push 0xc
mov dword [esi + 4], eax
mov dword [esi + 8], 0
call fcn.004d23ef
mov esi, eax
push str.usercmd_t
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [0x597b44]
mov dword [esi], ecx
mov dword [0x597b44], esi
call fcn.004d2528
push 0xc
mov dword [esi + 4], eax
mov dword [esi + 8], 0
call fcn.004d23ef
mov esi, eax
push str.weapon_data_t
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [0x597b44]
mov dword [esi], ecx
mov dword [0x597b44], esi
call fcn.004d2528
push 0xc
mov dword [esi + 4], eax
mov dword [esi + 8], 0
call fcn.004d23ef
mov esi, eax
push str.event_t
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [0x597b44]
mov dword [esi], ecx
mov dword [0x597b44], esi
call fcn.004d2528
mov dword [esi + 4], eax
xorps xmm0, xmm0
mov dword [esi + 8], 0
push 8
movsd qword [0x5979a8], xmm0
mov dword [0x5934f0], 0
mov dword [0x597b40], 0
mov dword [0x597b3c], 0
mov dword [ebp - 0x109f8], 0
mov dword [ebp - 0x109f4], 0
mov dword [ebp - 0x109f0], 0
mov dword [ebp - 0x109ec], 0
mov dword [ebp - 0x109e8], 0
call fcn.004c45ce
lea ecx, [ebp - 0x109f8]
mov dword [eax + 4], 0
mov dword [ebp - 0x109f8], eax
mov dword [eax], ecx
mov dword [ebp - 4], 7
push 8
mov dword [ebp - 0x10a3c], 0
mov dword [ebp - 0x10a38], 0
mov dword [ebp - 0x10a34], 0
mov dword [ebp - 0x10a30], 0
mov dword [ebp - 0x10a2c], 0
call fcn.004c45ce
lea ecx, [ebp - 0x10a3c]
add esp, 0x40
mov dword [eax + 4], 0
mov dword [ebp - 0x10a3c], eax
mov dword [eax], ecx
mov byte [ebp - 4], 8
cmp dword [ebp - 0x109e0], 0
mov dword [ebp - 0x10a04], 0
jle 0x409690
mov eax, dword [ebp - 0x109cc]
lea esi, [eax + 0x54]
mov dword [ebp - 0x109d0], esi
nop dword [eax + eax]
cmp dword [ebp - 0x105bc], 0
je 0x408bd3
push 0
push dword [esi]
push edi
call fcn.004c9bdb
push str._________________________________n
call fcn.00405870
lea eax, [esi - 0x50]
push eax
push dword [esi - 0x54]
push str.Current_Demo_Entry:___i___Title____s__n
call fcn.00405870
add esp, 0x1c
jmp 0x408bf0
push str._________________________________n
call fcn.00405870
push dword [ebp - 0x10a04]
push str.Current_Demo_Entry:___i___Title___NO_INFORMATION__n
call fcn.00405870
add esp, 0xc
or al, 0xff
mov dword [ebp - 0x10a08], esi
mov byte [ebp - 0x109bb], al
mov byte [ebp - 0x109bc], al
xor eax, eax
mov dword [ebp - 0x10a0c], eax
mov byte [ebp - 0x109ba], al
xor al, al
push 0x1b4
mov byte [ebp - 0x109b9], al
lea eax, [ebp - 0x10cc4]
push 0
push eax
call fcn.004c62a0
add esp, 0xc
inc dword [ebp - 0x10a0c]
lea eax, [ebp - 0x109bc]
push edi
push 1
push 1
push eax
call fcn.004ca508
push edi
push 1
push 4
push 0x5934fc
call fcn.004ca508
push edi
push 1
push 4
push 0x597a34
call fcn.004ca508
movzx eax, byte [ebp - 0x109bc]
add esp, 0x30
cmp eax, 9
ja case.default.0x408c78
jmp dword [eax*4 + 0x409a4c]
push edi
push 1
lea eax, [ebp - 0x154]
push 0x40
push eax
call fcn.004ca508
lea eax, [ebp - 0x154]
push eax
push str._CONSOLE_CMD___s
push str.TechData
call fcn.00405930
mov ecx, eax
mov dword [ebp - 0x10468], 0
xorps xmm0, xmm0
mov dword [ebp - 0x10464], 0
add esp, 0x1c
movups xmmword [ebp - 0x10478], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408cd0
sub ecx, edx
lea eax, [ebp - 0x154]
push ecx
push eax
lea ecx, [ebp - 0x10478]
call fcn.0040d440
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x10478]
cmp dword [ebp - 0x10464], 0xf
mov eax, dword [ebp - 0x10478]
seta byte [ebp - 0x109bb]
mov dword [ebp - 0x109e4], eax
cmova ecx, eax
cmp dword [ebp - 0x10468], 5
jne 0x408db9
mov eax, dword [ecx]
mov edx, str.jump
mov dword [ebp - 0x109c0], 1
cmp eax, dword [edx]
jne 0x408d45
add ecx, 4
mov dword [ebp - 0x109c0], 0xfffffffd
add edx, 4
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x408d70
cmp dword [ebp - 0x109c0], 0xfffffffd
je 0x408d6c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x408d70
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x408d70
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x408d70
xor eax, eax
jmp 0x408d75
sbb eax, eax
or eax, 1
test eax, eax
jne 0x408db9
mov eax, dword [0x59a838]
mov dword [ebp - 0x109c4], 1
cmp eax, dword [0x59a83c]
je 0x408da7
mov dword [eax], 1
mov edx, dword [0x59a838]
add edx, 4
mov dword [0x59a838], edx
jmp 0x408dbf
lea ecx, [ebp - 0x109c4]
push ecx
push eax
mov ecx, 0x59a834
call fcn.00405390
mov edx, dword [0x59a838]
cmp byte [ebp - 0x109bb], 0
lea ecx, [ebp - 0x10478]
cmovne ecx, dword [ebp - 0x109e4]
cmp dword [ebp - 0x10468], 5
jne 0x408ea3
mov eax, dword [ecx]
mov dword [ebp - 0x109c0], str._jump
mov dword [ebp - 0x109c4], 1
cmp eax, dword [str._jump]
jne 0x408e12
add ecx, 4
mov dword [ebp - 0x109c4], 0xfffffffd
add dword [ebp - 0x109c0], 4
mov esi, dword [ebp - 0x109c0]
mov al, byte [ecx]
cmp al, byte [esi]
mov esi, dword [ebp - 0x109d0]
jne 0x408e67
cmp dword [ebp - 0x109c4], 0xfffffffd
je 0x408e63
mov edi, dword [ebp - 0x109c0]
mov al, byte [ecx + 1]
cmp al, byte [edi + 1]
mov edi, dword [ebp - 0x109d8]
jne 0x408e67
mov edi, dword [ebp - 0x109c0]
mov al, byte [ecx + 2]
cmp al, byte [edi + 2]
mov edi, dword [ebp - 0x109d8]
jne 0x408e67
mov al, byte [ecx + 3]
mov ecx, dword [ebp - 0x109c0]
cmp al, byte [ecx + 3]
jne 0x408e67
xor eax, eax
jmp 0x408e6c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x408ea3
mov dword [ebp - 0x109c4], 0xffffffff
cmp edx, dword [0x59a83c]
je 0x408e91
mov dword [edx], 0xffffffff
add dword [0x59a838], 4
jmp 0x408ea3
lea eax, [ebp - 0x109c4]
mov ecx, 0x59a834
push eax
push edx
call fcn.00405390
cmp byte [ebp - 0x109bb], 0
lea ecx, [ebp - 0x10478]
cmovne ecx, dword [ebp - 0x109e4]
cmp dword [ebp - 0x10468], 5
jne 0x408f5d
mov eax, dword [ecx]
mov edx, str.duck
mov dword [ebp - 0x109c4], 1
cmp eax, dword [edx]
jne 0x408ee9
add ecx, 4
mov dword [ebp - 0x109c4], 0xfffffffd
add edx, 4
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x408f14
cmp dword [ebp - 0x109c4], 0xfffffffd
je 0x408f10
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x408f14
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x408f14
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x408f14
xor eax, eax
jmp 0x408f19
sbb eax, eax
or eax, 1
test eax, eax
jne 0x408f5d
mov eax, dword [0x59a844]
mov dword [ebp - 0x109c4], 1
cmp eax, dword [0x59a848]
je 0x408f4b
mov dword [eax], 1
mov edx, dword [0x59a844]
add edx, 4
mov dword [0x59a844], edx
jmp 0x408f63
lea ecx, [ebp - 0x109c4]
push ecx
push eax
mov ecx, 0x59a840
call fcn.00405390
mov edx, dword [0x59a844]
cmp byte [ebp - 0x109bb], 0
lea ecx, [ebp - 0x10478]
cmovne ecx, dword [ebp - 0x109e4]
cmp dword [ebp - 0x10468], 5
jne 0x409047
mov eax, dword [ecx]
mov dword [ebp - 0x109c0], str._duck
mov dword [ebp - 0x109c4], 1
cmp eax, dword [str._duck]
jne 0x408fb6
add ecx, 4
mov dword [ebp - 0x109c4], 0xfffffffd
add dword [ebp - 0x109c0], 4
mov esi, dword [ebp - 0x109c0]
mov al, byte [ecx]
cmp al, byte [esi]
mov esi, dword [ebp - 0x109d0]
jne 0x40900b
cmp dword [ebp - 0x109c4], 0xfffffffd
je 0x409007
mov edi, dword [ebp - 0x109c0]
mov al, byte [ecx + 1]
cmp al, byte [edi + 1]
mov edi, dword [ebp - 0x109d8]
jne 0x40900b
mov esi, dword [ebp - 0x109c0]
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
mov esi, dword [ebp - 0x109d0]
jne 0x40900b
mov al, byte [ecx + 3]
mov ecx, dword [ebp - 0x109c0]
cmp al, byte [ecx + 3]
jne 0x40900b
xor eax, eax
jmp 0x409010
sbb eax, eax
or eax, 1
test eax, eax
jne 0x409047
mov dword [ebp - 0x109c4], 0xffffffff
cmp edx, dword [0x59a848]
je 0x409035
mov dword [edx], 0xffffffff
add dword [0x59a844], 4
jmp 0x409047
lea eax, [ebp - 0x109c4]
mov ecx, 0x59a840
push eax
push edx
call fcn.00405390
cmp byte [ebp - 0x109bb], 0
mov byte [ebp - 4], 8
je 0x40957e
mov ecx, dword [ebp - 0x10464]
mov edx, dword [ebp - 0x109e4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x409083
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409a47
push ecx
push edx
call fcn.004c45c0
add esp, 8
jmp 0x40957e
push 1
push 0xfffffffffffffff7
push edi
call fcn.004c9bdb
push edi
push 1
lea eax, [ebp - 0x10804]
push 0x29
push eax
call fcn.004ca508
add esp, 0x1c
jmp 0x40957e
push edi
call fcn.004ca2ff
mov ecx, dword [ebp - 0x109d4]
sub ecx, eax
push ecx
push str.END_OF_SEGMENT__i_bytes_left__n______________________________n
call fcn.00405870
mov al, 1
add esp, 0xc
mov byte [ebp - 0x109b9], al
jmp 0x409584
push 1
push 0x54
push edi
call fcn.004c9bdb
add esp, 0xc
jmp 0x40957e
push edi
push 1
lea eax, [ebp - 0x10a40]
push 4
push eax
call fcn.004ca508
push edi
push 1
lea eax, [ebp - 0x10a44]
push 4
push eax
call fcn.004ca508
add esp, 0x20
jmp 0x40957e
push edi
push 1
lea eax, [ebp - 0x10a48]
push 4
push eax
call fcn.004ca508
push edi
push 1
lea eax, [ebp - 0x10a10]
push 4
push eax
call fcn.004ca508
mov eax, dword [ebp - 0x10a10]
inc eax
push eax
call fcn.004c43b5
push edi
push 1
push dword [ebp - 0x10a10]
mov esi, eax
push esi
call fcn.004ca508
mov ecx, dword [ebp - 0x10a10]
lea eax, [ebp - 0x10a4c]
push edi
push 1
push 4
push eax
mov byte [esi + ecx], 0
call fcn.004ca508
add esp, 0x44
lea eax, [ebp - 0x10a50]
push edi
push 1
push 4
push eax
call fcn.004ca508
push edi
push 1
lea eax, [ebp - 0x10a54]
push 4
push eax
call fcn.004ca508
push edi
push 1
lea eax, [ebp - 0x10a58]
push 4
push eax
call fcn.004ca508
push esi
call fcn.004c43be
mov esi, dword [ebp - 0x109d0]
add esp, 0x34
jmp 0x40957e
push edi
push 1
lea eax, [ebp - 0x109fc]
push 4
push eax
call fcn.004ca508
push 1
push dword [ebp - 0x109fc]
push edi
call fcn.004c9bdb
add esp, 0x1c
jmp 0x40957e
push edi
push 1
lea eax, [ebp - 0x109b8]
push 0x1b4
push eax
call fcn.004ca508
mov eax, dword [ebp - 0x10be0]
add esp, 0x10
mov ecx, dword [ebp - 0x108d4]
cmp eax, ecx
je 0x40921c
push ecx
push eax
push str.nextview_from__i_to__i_n
call fcn.00405870
add esp, 0xc
mov eax, dword [ebp - 0x10a20]
mov ecx, dword [eax]
mov eax, dword [0x59b5fc]
cmp eax, dword [ecx + 4]
jle 0x40926d
push 0x59b5fc
call fcn.004c48ee
add esp, 4
cmp dword [0x59b5fc], 0xffffffff
jne 0x40926d
movss xmm0, dword [0x5979c8]
mulss xmm0, dword [0x52d8e0]
push 0x59b5fc
cvttss2si eax, xmm0
mov dword [0x59b600], eax
call fcn.004c489d
add esp, 4
movss xmm0, dword [0x5979c8]
lea esi, [ebp - 0x109b8]
mulss xmm0, dword [0x52d8e0]
lea edi, [ebp - 0x10cc4]
mov ecx, 0x6d
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x109d8]
cvttss2si eax, xmm0
push esi
push 1
push 4
push 0x593540
mov dword [0x59b600], eax
call fcn.004ca508
push esi
push 1
push 4
push 0x593544
call fcn.004ca508
push esi
push 1
push 4
push 0x593548
call fcn.004ca508
push esi
push 1
push 4
push 0x59354c
call fcn.004ca508
add esp, 0x40
push esi
push 1
push 4
push 0x593550
call fcn.004ca508
push esi
push 1
push 4
push 0x593554
call fcn.004ca508
push esi
push 1
push 4
push 0x593558
call fcn.004ca508
mov eax, dword [0x593540]
mov dword [0x5979d8], eax
and eax, 0x3f
push esi
push 1
mov dword [0x5979dc], eax
lea eax, [ebp - 0x109fc]
push 4
push eax
call fcn.004ca508
mov eax, dword [ebp - 0x109fc]
add esp, 0x40
mov dword [0x5993f0], eax
push esi
push 1
push eax
push dword [0x5993e8]
call fcn.004ca508
mov eax, dword [0x5993e8]
add esp, 0x10
mov dword [0x538940], eax
mov eax, dword [0x5993f0]
mov dword [0x538944], eax
shl eax, 3
mov dword [0x538948], eax
mov dword [0x53894c], 0
mov byte [0x538950], 0
call fcn.00402050
cmp byte [0x58b979], 0
je 0x40939d
push str.ParseError:_Stopped_parsing_due_to_previous_errors_n_n
mov byte [ebp - 0x109ba], 1
call fcn.00405870
add esp, 4
movss xmm0, dword [0x59336c]
lea eax, [ebp - 0x109c8]
movss xmm3, dword [ebp - 0x108bc]
lea edx, [ebp - 0x108c8]
push eax
sub esp, 8
mov ecx, 0x59331c
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x108b8]
movss dword [esp], xmm0
push dword [ebp - 0x108ae]
call fcn.00407740
add esp, 4
mov eax, esp
mov dword [ebp - 0x109e4], esp
mov dword [ebp - 0x109c4], eax
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov esi, dword [0x59a844]
sub esi, dword [0x59a840]
sar esi, 2
test esi, esi
je 0x409465
cmp esi, 0x3fffffff
ja 0x409a42
push esi
call fcn.004054b0
mov edi, eax
mov eax, dword [ebp - 0x109c4]
mov dword [eax], edi
lea ecx, [edi + esi*4]
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov ecx, dword [0x59a840]
mov esi, dword [0x59a844]
sub esi, ecx
push esi
push ecx
push edi
call fcn.004c6400
mov ecx, dword [ebp - 0x109c4]
add esp, 0xc
sar esi, 2
lea eax, [edi + esi*4]
mov dword [ecx + 4], eax
sub esp, 0xc
mov byte [ebp - 4], 0xa
mov eax, esp
mov dword [ebp - 0x109c4], eax
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov esi, dword [0x59a838]
sub esi, dword [0x59a834]
sar esi, 2
test esi, esi
je 0x4094e8
cmp esi, 0x3fffffff
ja 0x409a42
push esi
call fcn.004054b0
mov edi, eax
mov eax, dword [ebp - 0x109c4]
mov dword [eax], edi
lea ecx, [edi + esi*4]
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov ecx, dword [0x59a834]
mov esi, dword [0x59a838]
sub esi, ecx
push esi
push ecx
push edi
call fcn.004c6400
mov ecx, dword [ebp - 0x109c4]
add esp, 0xc
sar esi, 2
lea eax, [edi + esi*4]
mov dword [ecx + 4], eax
lea eax, [ebp - 0x109b4]
mov byte [ebp - 4], 8
push eax
mov edx, 0x593310
lea ecx, [ebp - 0x108cc]
call fcn.00412870
mov eax, dword [0x59a834]
add esp, 0x1c
cmp eax, dword [0x59a838]
je 0x409518
mov dword [0x59a838], eax
mov eax, dword [0x59a840]
mov edi, dword [ebp - 0x109d8]
mov esi, dword [ebp - 0x109d0]
cmp eax, dword [0x59a844]
je 0x40957e
mov dword [0x59a844], eax
jmp 0x40957e
push edi
mov byte [ebp - 0x109ba], 1
call fcn.004ca2ff
mov edx, 4
mov ecx, esi
mov ecx, dword [ecx + edx]
add ecx, dword [esi]
sub ecx, eax
mov eax, dword [ebp - 0x10a0c]
push ecx
push eax
movzx eax, byte [ebp - 0x109bb]
push eax
movzx eax, byte [ebp - 0x109bc]
push eax
push str.ParseError:_Unknown_frame_type___i__nPrevFrameType___i_nFragment___i_nBytesLeft___i_n_n
mov dword [ebp - 0x10a14], ecx
call fcn.00405870
add esp, 0x18
mov al, byte [ebp - 0x109b9]
cmp dword [ebp - 0x109cc], 0
je 0x40961e
push edi
call fcn.004ca2ff
mov ecx, dword [ebp - 0x10a08]
mov edx, 4
add esp, 4
mov esi, dword [ecx + edx]
mov ecx, dword [ebp - 0x109d0]
add esi, dword [ecx]
sub esi, eax
cmp byte [ebp - 0x109b9], 0
mov dword [ebp - 0x10a14], esi
jne 0x4095f1
push edi
call fcn.004ca2ff
mov ecx, dword [ebp - 0x10a08]
mov edx, 4
mov esi, dword [ebp - 0x109d0]
add esp, 4
mov ecx, dword [ecx + edx]
add ecx, dword [esi]
cmp eax, ecx
jl case.0x408c78.2
push str.WARNING:No_END_OF_SEGMENT_mark_catched__but_the_last_byte_of_segment_was_readed._n
call fcn.00405870
add esp, 4
mov cl, byte [ebp - 0x109ba]
mov eax, dword [ebp - 0x10a14]
test eax, eax
je 0x40964e
test cl, cl
jne 0x40964e
cmp dword [ebp - 0x109cc], 0
je 0x409657
push eax
push str.ParseError:__i_bytes_left_after_END_OF_SEGMENT_n_n
call fcn.00405870
add esp, 8
jmp 0x409668
test al, al
jne 0x4095f1
mov cl, byte [ebp - 0x109ba]
test cl, cl
jne 0x4095f7
push edi
call fcn.004ca2ff
add esp, 4
cmp eax, dword [ebp - 0x109d4]
jge 0x4095f1
mov al, byte [ebp - 0x109bc]
mov byte [ebp - 0x109bb], al
jmp 0x408c30
cmp dword [ebp - 0x109cc], 0
jne 0x409668
push edi
call fcn.004ca2ff
add esp, 4
cmp eax, dword [ebp - 0x109d4]
jge 0x409690
mov ecx, dword [ebp - 0x10a04]
mov esi, dword [ebp - 0x109d0]
inc ecx
add esi, 0x5c
mov dword [ebp - 0x10a04], ecx
mov dword [ebp - 0x109d0], esi
cmp ecx, dword [ebp - 0x109e0]
jl 0x408ba0
call fcn.004136b0
mov ecx, 0x538854
call fcn.0040b100
test eax, eax
jne 0x4096cb
mov eax, dword [0x538850]
push 0
mov ecx, dword [eax + 4]
xor eax, eax
add ecx, 0x538850
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push eax
call fcn.0040d250
push edi
call fcn.004c9888
mov edi, dword [0x597c4c]
add esp, 4
test edi, edi
je 0x4096f9
nop
push dword [edi + 4]
mov esi, dword [edi]
call fcn.004d0f81
push edi
call fcn.004d0f81
add esp, 8
mov edi, esi
test esi, esi
jne 0x4096e0
mov edi, dword [0x597d54]
mov dword [0x597c4c], 0
test edi, edi
je 0x409729
nop dword [eax]
push dword [edi + 4]
mov esi, dword [edi]
call fcn.004d0f81
push edi
call fcn.004d0f81
add esp, 8
mov edi, esi
test esi, esi
jne 0x409710
mov edi, dword [0x597b44]
mov dword [0x597d54], 0
test edi, edi
je 0x40978b
nop dword [eax]
mov eax, dword [edi]
mov esi, dword [edi + 8]
mov dword [ebp - 0x109c4], eax
lea eax, [edi + 8]
test esi, esi
je 0x409776
test eax, eax
je 0x409776
cmp dword [esi], 0
je 0x409766
push dword [esi + 0x2c]
call fcn.004d0f81
add esp, 4
push esi
call fcn.004d0f81
add esp, 4
mov dword [edi + 8], 0
push edi
call fcn.004d0f81
mov eax, dword [ebp - 0x109c4]
add esp, 4
mov edi, eax
test eax, eax
jne 0x409740
mov eax, dword [ebp - 0x109cc]
mov dword [0x597b44], 0
test eax, eax
je 0x4097a8
push eax
call fcn.004c43be
add esp, 4
mov eax, dword [0x5934f0]
test eax, eax
je 0x4097ee
push dword [0x597b3c]
movd xmm0, eax
push dword [0x597b40]
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
sub esp, 8
addsd xmm0, qword [eax*8 + 0x52dac0]
mulsd xmm0, qword [0x52d690]
movsd qword [esp], xmm0
push str.Total_voice_bytes_in_demo:_.3f_Kb_nSpeexMax_i_nSilkMax_i_n
call fcn.00405870
add esp, 0x14
cmp byte [0x5342d0], 0
jne 0x409847
movss xmm1, dword [0x5979cc]
sub esp, 0x18
movss xmm0, dword [0x5979c8]
subss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movaps xmm0, xmm1
subss xmm0, dword [0x5934f4]
cvtps2pd xmm0, xmm0
movsd qword [esp + 8], xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
push str._END_OF_DEMO___.5f_Dialog_end__.5f_sec__pause_.5f__n
call fcn.00405870
add esp, 0x1c
mov byte [0x5342d0], 1
lea eax, [ebp - 0x114]
push eax
push str._s_parsed_n____________________________________________________n_n
call fcn.00405870
add esp, 8
lea ecx, [ebp - 0x10a3c]
cmp byte [0x58b97b], 0
jne 0x409960
call fcn.00409a80
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x109e8]
test eax, eax
je 0x409895
sub eax, 1
jne 0x409884
mov dword [ebp - 0x109e8], eax
mov dword [ebp - 0x109ec], eax
mov ecx, dword [ebp - 0x109f4]
test ecx, ecx
je 0x4098ff
mov esi, dword [ebp - 0x109f0]
test esi, esi
jle 0x4098d4
nop dword [eax]
mov eax, dword [ecx + esi*4 - 4]
dec esi
test eax, eax
je 0x4098ca
push 0x10
push eax
call fcn.004c45c0
mov ecx, dword [ebp - 0x109f4]
add esp, 8
test esi, esi
jg 0x4098b0
mov esi, dword [ebp - 0x109f0]
shl esi, 2
mov eax, ecx
cmp esi, 0x1000
jb 0x4098f5
mov ecx, dword [eax - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409a47
push esi
push ecx
call fcn.004c45c0
add esp, 8
mov eax, dword [ebp - 0x109f8]
push 8
push eax
mov dword [ebp - 0x109f0], 0
mov dword [ebp - 0x109f4], 0
mov dword [ebp - 0x109f8], 0
call fcn.004c45c0
add esp, 8
mov edi, dword [ebp - 0x109dc]
lea eax, [ebp - 0x105b8]
push eax
push dword [ebp - 0x10a1c]
call dword [ebp - 0x10a28]
test eax, eax
je 0x409a0f
mov cl, byte [0x58b97b]
mov esi, dword [ebp - 0x10a00]
jmp 0x407ff4
call fcn.00409a80
mov eax, dword [ebp - 0x109e8]
test eax, eax
je 0x409981
nop
sub eax, 1
jne 0x409970
mov dword [ebp - 0x109e8], eax
mov dword [ebp - 0x109ec], eax
mov ecx, dword [ebp - 0x109f4]
test ecx, ecx
je 0x4099e0
mov esi, dword [ebp - 0x109f0]
test esi, esi
jle 0x4099b9
mov eax, dword [ecx + esi*4 - 4]
dec esi
test eax, eax
je 0x4099af
push 0x10
push eax
call fcn.004c45c0
mov ecx, dword [ebp - 0x109f4]
add esp, 8
test esi, esi
jg 0x409995
mov esi, dword [ebp - 0x109f0]
shl esi, 2
mov eax, ecx
cmp esi, 0x1000
jb 0x4099d6
mov ecx, dword [eax - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409a47
push esi
push ecx
call fcn.004c45c0
add esp, 8
mov eax, dword [ebp - 0x109f8]
push 8
push eax
mov dword [ebp - 0x109f0], 0
mov dword [ebp - 0x109f4], 0
mov dword [ebp - 0x109f8], 0
call fcn.004c45c0
add esp, 8
push str.PAUSE
call fcn.004cfc23
add esp, 4
jmp 0x407d1a
lea eax, [ebp - 0x258]
push eax
push str.Path___s__is_too_long_nMake_it_shorter_n_n
call fcn.00405870
add esp, 8
mov byte [ebp + edi - 0x258], 0x2a
call fcn.004c44e5
call fcn.004054a0
call fcn.004cfab7
out 0x91, al
inc eax
add dh, ah
xchg ecx, eax
inc eax
add byte [edx], ah
xchg esi, eax
inc eax
add byte [edi - 0x74], bh
inc eax
add byte [edx - 0x4affbf70], dl
nop
inc eax
add dh, bl
nop
inc eax
add al, dh
nop
inc eax
add byte [edx], bl
xchg ecx, eax
inc eax
add byte [edi - 0x33ffbf6f], bh
int3