Function at 0x4ca330
Capabilities:
Get file version info

Disassembly:
mov eax, dword [0x6b46a0]
sub esp, 0x14c
test eax, eax
je 0x4caa04
mov eax, dword [0x6b46a4]
mov ecx, dword [0x637d10]
cdq
cmp ecx, eax
push esi
jne 0x4ca361
mov eax, dword [0x637d14]
cmp eax, edx
je 0x4ca4c6
mov dword [0x6b46a4], ecx
call fcn.00449da0
mov edx, dword [0x6b4b20]
mov ecx, eax
mov dword [0x6b4b1c], eax
mov dword [0x6b4b20], eax
mov eax, dword [0x6b4ac4]
sub ecx, edx
test eax, eax
mov dword [0x6b4b24], ecx
jne 0x4ca39a
mov ecx, 1
mov dword [0x6b4b24], ecx
mov esi, dword [0x6b4ac4]
mov edx, dword [0x6b4ac8]
inc esi
add edx, ecx
cmp ecx, 0x10
mov dword [0x6b4ac4], esi
mov dword [0x6b4ac8], edx
jbe 0x4ca3d3
mov edx, dword [0x6b4acc]
mov eax, dword [0x6b4ad0]
add edx, ecx
inc eax
mov dword [0x6b4acc], edx
mov dword [0x6b4ad0], eax
cmp ecx, 0x14
jbe 0x4ca3f1
mov edx, dword [0x6b4ad4]
mov eax, dword [0x6b4ad8]
add edx, ecx
inc eax
mov dword [0x6b4ad4], edx
mov dword [0x6b4ad8], eax
cmp ecx, 0x19
jbe 0x4ca40f
mov edx, dword [0x6b4adc]
mov eax, dword [0x6b4ae0]
add edx, ecx
inc eax
mov dword [0x6b4adc], edx
mov dword [0x6b4ae0], eax
cmp ecx, 0x21
jbe 0x4ca42d
mov edx, dword [0x6b4ae4]
mov eax, dword [0x6b4ae8]
add edx, ecx
inc eax
mov dword [0x6b4ae4], edx
mov dword [0x6b4ae8], eax
cmp ecx, 0x28
jbe 0x4ca44b
mov edx, dword [0x6b4aec]
mov eax, dword [0x6b4af0]
add edx, ecx
inc eax
mov dword [0x6b4aec], edx
mov dword [0x6b4af0], eax
cmp ecx, 0x32
jbe 0x4ca469
mov edx, dword [0x6b4af4]
mov eax, dword [0x6b4af8]
add edx, ecx
inc eax
mov dword [0x6b4af4], edx
mov dword [0x6b4af8], eax
cmp ecx, 0x42
jbe 0x4ca487
mov edx, dword [0x6b4afc]
mov eax, dword [0x6b4b00]
add edx, ecx
inc eax
mov dword [0x6b4afc], edx
mov dword [0x6b4b00], eax
cmp ecx, 0x64
jbe 0x4ca4a5
mov edx, dword [0x6b4b04]
mov eax, dword [0x6b4b08]
add edx, ecx
inc eax
mov dword [0x6b4b04], edx
mov dword [0x6b4b08], eax
cmp ecx, 0xc8
jbe 0x4ca4c6
mov edx, dword [0x6b4b0c]
mov eax, dword [0x6b4b10]
add edx, ecx
inc eax
mov dword [0x6b4b0c], edx
mov dword [0x6b4b10], eax
mov ecx, dword [0x8154d8]
mov eax, dword [0x6b46a0]
cmp eax, 0x898
mov byte [0x64741a], 1
mov byte [ecx + 0x11], 1
mov byte [0x815ce5], 1
jg 0x4ca528
je 0x4ca51e
cmp eax, 0x64
je 0x4ca506
cmp eax, 0x44c
jne 0x4ca9fd
push str.map_name_b30
jmp 0x4ca9f5
mov eax, 0x6095e0
call fcn.004cbae0
inc dword [0x6b46a0]
pop esi
add esp, 0x14c
ret
push str.map_name_c10
jmp 0x4ca9f5
cmp eax, 0xc4e
je 0x4ca9f0
cmp eax, 0x125c
jne 0x4ca9fd
push ebx
push ebp
push edi
push 0x60b184
push str.timedemo.txt
mov byte [0x6b4723], 1
call fcn.005c9296
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.005cadf4
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 [0x68b2e0]
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.005c8ef2
mov eax, dword [0x6bdd6c]
add esp, 0x14
cmp eax, 0x270e
jne 0x4ca5dd
mov eax, str.2.0a
jmp 0x4ca614
mov eax, dword [0x75c0ac]
cmp eax, 0xffff0101
jae 0x4ca5f0
mov eax, str.Fixed_Function
jmp 0x4ca614
mov edx, eax
and edx, 0xff
push edx
movzx eax, ah
push eax
push str._d._d
push 0x6528fc
call fcn.005c87a3
add esp, 0x10
mov eax, 0x6528fc
mov ecx, dword [0x6bdda0]
test ecx, ecx
je 0x4ca675
movzx edx, word [0x6bdda8]
push eax
movzx eax, word [0x6bddaa]
push edx
movzx edx, word [0x6bddac]
push eax
movzx eax, word [0x6bddae]
push edx
mov edx, dword [0x6bdd98]
push eax
mov eax, dword [0x6bddb8]
push ecx
mov ecx, dword [0x6bdd9c]
push ecx
mov ecx, dword [0x6bddb0]
push edx
mov edx, dword [0x6bddb4]
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.005c8ef2
add esp, 0x34
jmp 0x4ca690
mov eax, dword [0x6bddb0]
mov ecx, dword [0x6bddb4]
push eax
push ecx
push str._dMHz___dMB_n
push edi
call fcn.005c8ef2
add esp, 0x10
mov edx, dword [0x67e4b8]
push edx
lea eax, [esp + 0x5c]
push eax
push str._s__s
push edi
call fcn.005c8ef2
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 0x5fe768
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.005c8ef2
add esp, 0x18
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov ebp, dword [0x6b4b10]
cmp ebp, 1
mov ebx, 0x600658
je 0x4ca736
mov ebx, 0x60b0bc
mov esi, dword [0x6b4ac8]
fild dword [0x6b4ac8]
test esi, esi
jge 0x4ca74c
fadd qword [0x6123d0]
mov eax, dword [0x6b4ad0]
imul eax, eax, 0x64
mov ecx, dword [0x6b4ac4]
xor edx, edx
div ecx
xor edx, edx
push eax
mov eax, dword [0x6b4acc]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x6b4ad8]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x6b4ad4]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x6b4ae0]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x6b4adc]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x6b4ae8]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x6b4ae4]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x6b4af0]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x6b4aec]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x6b4af8]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x6b4af4]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x6b4b00]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x6b4afc]
imul eax, eax, 0x64
div esi
xor edx, edx
push eax
mov eax, dword [0x6b4b08]
imul eax, eax, 0x64
div ecx
xor edx, edx
push eax
mov eax, dword [0x6b4b04]
imul eax, eax, 0x64
div esi
push eax
fild dword [0x6b4b0c]
push ebx
mov ebx, dword [0x6b4b0c]
test ebx, ebx
push ebp
jge 0x4ca83a
fadd dword [0x612320]
mov eax, ebp
fmul dword [0x612358]
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 0x4ca86c
fadd qword [0x6123d0]
fdivr st(1)
sub esp, 0x10
fdivr qword [0x612880]
fstp qword [esp + 8]
fmul qword [0x612878]
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.005c8ef2
mov eax, dword [0x6b46ac]
add esp, 0x74
test eax, eax
jne 0x4ca922
mov eax, dword [0x6c04b8]
cmp ax, 2
jne 0x4ca8b2
mov edx, str.High
jmp 0x4ca8c2
cmp ax, 1
mov edx, str.Medium
je 0x4ca8c2
mov edx, 0x60aee0
mov bl, byte [0x6e1321]
test bl, bl
je 0x4ca8da
call fcn.00554ef0
test eax, eax
mov esi, 0x60aedc
jne 0x4ca8df
mov esi, 0x60aed8
mov eax, dword [0x6e1328]
cmp eax, 2
jne 0x4ca8f0
mov ecx, str.High
jmp 0x4ca8ff
cmp eax, 1
mov ecx, str.Normal
je 0x4ca8ff
mov ecx, 0x60aee0
cmp bl, 1
mov eax, 0x60aecc
je 0x4ca90e
mov eax, 0x60aed8
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.005c8ef2
add esp, 0x18
jmp 0x4ca930
push str.Sound_Options_nSound_Disabled_n
push edi
call fcn.005c8ef2
add esp, 8
mov ax, word [0x624a2e]
test ax, ax
jne 0x4ca942
mov ebx, str.High
jmp 0x4ca952
cmp ax, 1
mov ebx, str.Medium
je 0x4ca952
mov ebx, 0x60aee0
mov ax, word [0x624a2c]
test ax, ax
jne 0x4ca964
mov esi, str.High
jmp 0x4ca974
cmp ax, 1
mov esi, 0x60aee0
je 0x4ca974
mov esi, 0x60ae38
mov al, byte [0x6249d5]
test al, al
mov edx, 0x60aecc
jne 0x4ca987
mov edx, 0x60aed8
mov al, byte [0x6249d2]
test al, al
mov ecx, 0x60aecc
jne 0x4ca99a
mov ecx, 0x60aed8
mov al, byte [0x6249da]
test al, al
mov eax, 0x60aecc
jne 0x4ca9ad
mov eax, 0x60aed8
push ebx
push esi
push edx
mov edx, dword [0x75b6a4]
push ecx
mov ecx, dword [0x75c128]
push eax
mov eax, dword [0x75b6a0]
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.005c8ef2
push edi
call fcn.005c92f5
mov eax, dword [0x6b46a0]
add esp, 0x2c
pop edi
pop ebp
pop ebx
inc eax
mov dword [0x6b46a0], eax
pop esi
add esp, 0x14c
ret
push str.map_name_d20
call fcn.004870e0
add esp, 4
inc dword [0x6b46a0]
pop esi
add esp, 0x14c
ret