Function at 0x4c6fb0
Capabilities:
Get file version info

Disassembly:
mov eax, dword [0x719600]
sub esp, 0x14c
test eax, eax
je 0x4c7684
mov eax, dword [0x719604]
mov ecx, dword [0x69c658]
cdq
cmp ecx, eax
push esi
jne 0x4c6fe1
mov eax, dword [0x69c65c]
cmp eax, edx
je 0x4c7146
mov dword [0x719604], ecx
call fcn.00449380
mov edx, dword [0x719a80]
mov ecx, eax
mov dword [0x719a7c], eax
mov dword [0x719a80], eax
mov eax, dword [0x719a24]
sub ecx, edx
test eax, eax
mov dword [0x719a84], ecx
jne 0x4c701a
mov ecx, 1
mov dword [0x719a84], ecx
mov esi, dword [0x719a24]
mov edx, dword [0x719a28]
inc esi
add edx, ecx
cmp ecx, 0x10
mov dword [0x719a24], esi
mov dword [0x719a28], edx
jbe 0x4c7053
mov edx, dword [0x719a2c]
mov eax, dword [0x719a30]
add edx, ecx
inc eax
mov dword [0x719a2c], edx
mov dword [0x719a30], eax
cmp ecx, 0x14
jbe 0x4c7071
mov edx, dword [0x719a34]
mov eax, dword [0x719a38]
add edx, ecx
inc eax
mov dword [0x719a34], edx
mov dword [0x719a38], eax
cmp ecx, 0x19
jbe 0x4c708f
mov edx, dword [0x719a3c]
mov eax, dword [0x719a40]
add edx, ecx
inc eax
mov dword [0x719a3c], edx
mov dword [0x719a40], eax
cmp ecx, 0x21
jbe 0x4c70ad
mov edx, dword [0x719a44]
mov eax, dword [0x719a48]
add edx, ecx
inc eax
mov dword [0x719a44], edx
mov dword [0x719a48], eax
cmp ecx, 0x28
jbe 0x4c70cb
mov edx, dword [0x719a4c]
mov eax, dword [0x719a50]
add edx, ecx
inc eax
mov dword [0x719a4c], edx
mov dword [0x719a50], eax
cmp ecx, 0x32
jbe 0x4c70e9
mov edx, dword [0x719a54]
mov eax, dword [0x719a58]
add edx, ecx
inc eax
mov dword [0x719a54], edx
mov dword [0x719a58], eax
cmp ecx, 0x42
jbe 0x4c7107
mov edx, dword [0x719a5c]
mov eax, dword [0x719a60]
add edx, ecx
inc eax
mov dword [0x719a5c], edx
mov dword [0x719a60], eax
cmp ecx, 0x64
jbe 0x4c7125
mov edx, dword [0x719a64]
mov eax, dword [0x719a68]
add edx, ecx
inc eax
mov dword [0x719a64], edx
mov dword [0x719a68], eax
cmp ecx, 0xc8
jbe 0x4c7146
mov edx, dword [0x719a6c]
mov eax, dword [0x719a70]
add edx, ecx
inc eax
mov dword [0x719a6c], edx
mov dword [0x719a70], eax
mov ecx, dword [0x87a018]
mov eax, dword [0x719600]
cmp eax, 0x898
mov byte [0x6ac4da], 1
mov byte [ecx + 0x11], 1
mov byte [0x87a7a5], 1
jg 0x4c71a8
je 0x4c719e
cmp eax, 0x64
je 0x4c7186
cmp eax, 0x44c
jne 0x4c767d
push str.map_name_b30
jmp 0x4c7675
mov eax, 0x669b00
call fcn.004c87c0
inc dword [0x719600]
pop esi
add esp, 0x14c
ret
push str.map_name_c10
jmp 0x4c7675
cmp eax, 0xc4e
je 0x4c7670
cmp eax, 0x125c
jne 0x4c767d
push ebx
push ebp
push edi
push 0x66b924
push str.timedemo.txt
mov byte [0x719683], 1
call fcn.006243d6
add esp, 8
push 0x104
lea edx, [esp + 0x5c]
push edx
push 0
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 2
push 0
push edi
call fcn.00626064
add esp, 0xc
push 0x20
lea eax, [esp + 0x3c]
push eax
push 0
push 0
push 0
push 0x400
call dword [sym.imp.KERNEL32.dll_GetDateFormatA]
push 0x20
lea ecx, [esp + 0x1c]
push ecx
push 0
push 0
push 0
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTimeFormatA]
mov edx, dword [0x6f0310]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x40]
push ecx
push str.Date___Time:__s__s___dms__n
push edi
call fcn.00624032
mov eax, dword [0x722a8c]
add esp, 0x14
cmp eax, 0x270e
jne 0x4c725d
mov eax, str.2.0a
jmp 0x4c7294
mov eax, dword [0x7c0d2c]
cmp eax, 0xffff0101
jae 0x4c7270
mov eax, str.Fixed_Function
jmp 0x4c7294
mov edx, eax
and edx, 0xff
push edx
movzx eax, ah
push eax
push str._d._d
push 0x6b79bc
call fcn.006238e3
add esp, 0x10
mov eax, 0x6b79bc
mov ecx, dword [0x722ac0]
test ecx, ecx
je 0x4c72f5
movzx edx, word [0x722ac8]
push eax
movzx eax, word [0x722aca]
push edx
movzx edx, word [0x722acc]
push eax
movzx eax, word [0x722ace]
push edx
mov edx, dword [0x722ab8]
push eax
mov eax, dword [0x722ad8]
push ecx
mov ecx, dword [0x722abc]
push ecx
mov ecx, dword [0x722ad0]
push edx
mov edx, dword [0x722ad4]
shr eax, 0x14
push eax
push ecx
push edx
push str._dMHz___dMB___dM__s__s__DeviceID0x_04x__Driver_d._d._d._d_Shader_s_n
push edi
call fcn.00624032
add esp, 0x34
jmp 0x4c7310
mov eax, dword [0x722ad0]
mov ecx, dword [0x722ad4]
push eax
push ecx
push str._dMHz___dMB_n
push edi
call fcn.00624032
add esp, 0x10
mov edx, dword [0x6e34e8]
push edx
lea eax, [esp + 0x5c]
push eax
push 0x669b80
push edi
call fcn.00624032
add esp, 0x10
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x5c]
push edx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov ebp, eax
push ebp
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
push esi
push ebp
push 0
lea eax, [esp + 0x64]
push eax
call sub.VERSION.dll_GetFileVersionInfoA
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x14]
push edx
push 0x660190
push esi
call sub.VERSION.dll_VerQueryValueA
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
mov edx, eax
and edx, 0xffff
push edx
shr eax, 0x10
push eax
mov eax, ecx
and eax, 0xffff
push eax
shr ecx, 0x10
push ecx
push str.____Version_d._d._d._d__n
push edi
call fcn.00624032
add esp, 0x18
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov ebp, dword [0x719a70]
cmp ebp, 1
mov ebx, 0x660fec
je 0x4c73b6
mov ebx, 0x66b85c
mov esi, dword [0x719a28]
fild dword [0x719a28]
test esi, esi
jge 0x4c73cc
fadd qword [0x672ca8]
mov eax, dword [0x719a30]
imul eax, eax, 0x64
mov ecx, dword [0x719a24]
xor edx, edx
div ecx
xor edx, edx
push eax
mov eax, dword [0x719a2c]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x719a38]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x719a34]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x719a40]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x719a3c]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x719a48]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x719a44]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x719a50]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x719a4c]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x719a58]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x719a54]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x719a60]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x719a5c]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x719a68]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x719a64]
imul eax, eax, 0x64
div esi
push eax
fild dword [0x719a6c]
push ebx
mov ebx, dword [0x719a6c]
test ebx, ebx
push ebp
jge 0x4c74ba
fadd dword [0x672bf8]
mov eax, ebp
fmul dword [0x672c30]
imul eax, eax, 0x64
xor edx, edx
div ecx
sub esp, 8
xor edx, edx
fstp qword [esp]
mov dword [esp + 0x60], ecx
fild dword [esp + 0x60]
push eax
mov eax, ebx
imul eax, eax, 0x64
div esi
test ecx, ecx
push eax
jge 0x4c74ec
fadd qword [0x672ca8]
fdivr st(1)
sub esp, 0x10
fdivr qword [0x673158]
fstp qword [esp + 8]
fmul qword [0x673150]
fstp qword [esp]
push ecx
push str.Frames_d_nTotal_Time_.2fs_nAverage_frame_rate_.2ffps_nBelow__5fps__2d____time____d____frames____.3fs_spent_in__d_frame_s_nBelow_10fps__2d____time____d____frames__nBelow_15fps__2d____time____d____frames__nBelow_20fps__2d____time____d____frames__nBelow_25fps__2d____time____d____frames__nBelow_30fps__2d____time____d____frames__nBelow_40fps__2d____time____d____frames__nBelow_50fps__2d____time____d____frames__nBelow_60fps__2d____time____d____frames__n
push edi
call fcn.00624032
mov eax, dword [0x71960c]
add esp, 0x74
test eax, eax
jne 0x4c75a2
mov eax, dword [0x7251d8]
cmp ax, 2
jne 0x4c7532
mov edx, str.High
jmp 0x4c7542
cmp ax, 1
mov edx, str.Medium
je 0x4c7542
mov edx, 0x66b680
mov bl, byte [0x746041]
test bl, bl
je 0x4c755a
call fcn.00551a30
test eax, eax
mov esi, 0x66b67c
jne 0x4c755f
mov esi, 0x66b678
mov eax, dword [0x746048]
cmp eax, 2
jne 0x4c7570
mov ecx, str.High
jmp 0x4c757f
cmp eax, 1
mov ecx, str.Normal
je 0x4c757f
mov ecx, 0x66b680
cmp bl, 1
mov eax, 0x66b66c
je 0x4c758e
mov eax, 0x66b678
push edx
push esi
push ecx
push eax
push str.Sound_Options_nHardware_Acceleration__s_nSound_Quality__s_nEnvironmental_Sound__s_nSound_Variety__s_n
push edi
call fcn.00624032
add esp, 0x18
jmp 0x4c75b0
push str.Sound_Options_nSound_Disabled_n
push edi
call fcn.00624032
add esp, 8
mov ax, word [0x68944e]
test ax, ax
jne 0x4c75c2
mov ebx, str.High
jmp 0x4c75d2
cmp ax, 1
mov ebx, str.Medium
je 0x4c75d2
mov ebx, 0x66b680
mov ax, word [0x68944c]
test ax, ax
jne 0x4c75e4
mov esi, str.High
jmp 0x4c75f4
cmp ax, 1
mov esi, 0x66b680
je 0x4c75f4
mov esi, 0x66b5d8
mov al, byte [0x6893f5]
test al, al
mov edx, 0x66b66c
jne 0x4c7607
mov edx, 0x66b678
mov al, byte [0x6893f2]
test al, al
mov ecx, 0x66b66c
jne 0x4c761a
mov ecx, 0x66b678
mov al, byte [0x6893fa]
test al, al
mov eax, 0x66b66c
jne 0x4c762d
mov eax, 0x66b678
push ebx
push esi
push edx
mov edx, dword [0x7c03c4]
push ecx
mov ecx, dword [0x7c0d98]
push eax
mov eax, dword [0x7c03c0]
push ecx
push edx
push eax
push str.Video_Options_nResolution__d_x__d_nRefresh_rate__d_Hz_nFramerate_throttle_No_Vsync_nSpecular__s_nShadows__s_nDecals__s_nParticles__s_nTexture_Quality__s_n_nFor_further_information__please_visit_the_timedemo_FAQ_at:_http:__halo.bungie.net_site_halo_features_hpcperformancefaq.html__n
push edi
call fcn.00624032
push edi
call fcn.00624435
mov eax, dword [0x719600]
add esp, 0x2c
pop edi
pop ebp
pop ebx
inc eax
mov dword [0x719600], eax
pop esi
add esp, 0x14c
ret
push str.map_name_d20
call fcn.00484450
add esp, 4
inc dword [0x719600]
pop esi
add esp, 0x14c
ret