Function at 0x451479
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x1dc]
sub esp, 0x1dc
push 0xffffffffffffffff
push 0x4b0bd4
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x4e8008]
xor eax, ebp
mov dword [ebp + 0x1d8], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x18], ebx
and dword [ebp - 0x10], 0
lea eax, [ebp]
xor ecx, ecx
push 0x168
push ecx
push eax
mov dword [ebp - 0x3c], ecx
call fcn.00415710
xor eax, eax
mov dword [ebp - 0x38], 0x38
lea edi, [ebp - 0x2c]
add esp, 0xc
stosd dword es:[edi], eax
xor esi, esi
push 8
stosd dword es:[edi], eax
pop ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x70]
rep stosd dword es:[edi], eax
mov ecx, dword [ebx + 0x290]
lea edi, [ebp - 0x50]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebx + 0x294]
xor edi, edi
sub eax, ecx
cdq
idiv dword [ebp - 0x38]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x451540
mov ebx, dword [ebp - 0x38]
add ecx, 0x1c
mov edx, dword [ecx - 4]
sub edx, dword [ecx - 0xc]
cmp esi, edx
jl 0x45152c
mov eax, dword [ecx]
sub eax, dword [ecx - 8]
cmp edi, eax
mov eax, dword [ebp - 0x14]
jge 0x451533
mov edi, dword [ecx]
mov esi, edx
sub edi, dword [ecx - 8]
add ecx, ebx
sub eax, 1
mov dword [ebp - 0x14], eax
jne 0x451516
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebx + 0x29c]
test eax, eax
jne 0x451556
cmp dword [ebx + 0x2a0], eax
je 0x4515fa
mov ecx, dword [ebx + 0x2a0]
movd xmm1, esi
movd xmm0, edi
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
test eax, eax
jne 0x4515b2
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
push ecx
push ecx
mulss xmm0, xmm1
subss xmm0, dword [0x4d7314]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x34], xmm0
fld qword [ebp - 0x34]
fstp qword [esp]
call fcn.004339c0
mov edi, dword [ebx + 0x2a0]
fstp qword [ebp - 0x34]
movsd xmm0, qword [ebp - 0x34]
cvtpd2ps xmm0, xmm0
cvttss2si esi, xmm0
jmp 0x4515f8
mov esi, eax
mov edi, ecx
test ecx, ecx
je 0x4515fa
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
push ecx
push ecx
divss xmm0, xmm1
subss xmm0, dword [0x4d7314]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x34], xmm0
fld qword [ebp - 0x34]
fstp qword [esp]
call fcn.004339c0
mov esi, dword [ebx + 0x29c]
fstp qword [ebp - 0x34]
movsd xmm0, qword [ebp - 0x34]
cvtpd2ps xmm0, xmm0
cvttss2si edi, xmm0
pop ecx
pop ecx
add esi, 0xf
lea ebx, [edi + 0xf]
push 0
and esi, 0xfffffff0
and ebx, 0xfffffff0
call fcn.00417e43
push eax
call fcn.0041f836
call fcn.0041f815
mov edx, eax
lea ecx, [ebp]
call fcn.0046aa82
lea ecx, [ebp + 0x168]
call fcn.00451bb7
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov dword [ebp + 0x16c], esi
mov dword [ebp + 0x170], ebx
mov dword [ebp + 0x174], esi
mov eax, dword [ecx + 0x2b4]
mov dword [ebp + 0x188], eax
mov eax, dword [ecx + 0x2ac]
lea ecx, [ebp + 0x168]
mov dword [ebp + 0x178], ebx
mov dword [ebp + 0x17c], edx
mov dword [ebp + 0x180], edx
mov dword [ebp + 0x184], 0x3e8
mov dword [ebp + 0x18c], edx
mov dword [ebp + 0x190], edx
mov dword [ebp + 0x194], edx
mov dword [ebp + 0x19c], edx
mov dword [ebp + 0x1a0], eax
mov dword [ebp + 0x1a4], 6
mov dword [ebp + 0x198], edx
call fcn.00456b68
mov edi, ebx
mov dword [ebp - 0x1c], eax
imul edi, esi
imul eax, edi, 3
cdq
sub eax, edx
sar eax, 1
push eax
call fcn.00413953
mov dword [ebp + 0x1b4], eax
add esp, 0xc
mov dword [ebp + 0x1a8], esi
mov dword [ebp + 0x1b0], esi
lea ecx, [edi + eax]
mov dword [ebp + 0x1ac], ebx
mov eax, esi
mov dword [ebp + 0x1c4], ecx
cdq
sub eax, edx
mov esi, eax
mov eax, ebx
mov ebx, dword [ebp - 0x18]
cdq
sub eax, edx
sar esi, 1
mov ecx, eax
mov dword [ebp + 0x1b8], esi
imul eax, edi, 5
sar ecx, 1
mov dword [ebp + 0x1c0], esi
mov dword [ebp + 0x1c8], esi
mov dword [ebp + 0x1d0], esi
lea esi, [ebx + 4]
cdq
and edx, 3
mov dword [ebp + 0x1bc], ecx
add eax, edx
mov dword [ebp + 0x1cc], ecx
sar eax, 2
lea ecx, [ebp - 0x40]
add eax, dword [ebp + 0x1b4]
mov edx, esi
push str._video.ogg
mov dword [ebp + 0x1d4], eax
mov dword [ebp - 0x14], esi
call fcn.00401f34
and dword [ebp - 4], 0
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebx + 8]
call fcn.00402d8e
push 0x4bb164
push dword [ebp - 0x40]
lea eax, [ebp - 0x10]
push eax
call fcn.0041cc26
mov edi, dword [ebp - 0x1c]
add esp, 0xc
cmp dword [ebp - 0x10], 0
je 0x45196c
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
lea edx, [ebp - 0x50]
call fcn.00456b9a
pop ecx
test eax, eax
jle 0x45196c
lea edx, [ebp - 0x70]
lea ecx, [ebp]
call fcn.0046aa06
lea edx, [ebp - 0x2c]
lea ecx, [ebp]
call fcn.0046aa2d
cmp eax, 1
jne 0x45196c
push dword [ebp - 0x10]
push dword [ebp - 0x28]
push eax
push dword [ebp - 0x2c]
call fcn.0041f47b
push dword [ebp - 0x10]
push dword [ebp - 0x20]
push 1
push dword [ebp - 0x24]
call fcn.0041f47b
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
lea edx, [ebp - 0x50]
call fcn.00456b9a
add esp, 0x24
jmp 0x451800
je 0x451809
lea edx, [ebp - 0x70]
lea ecx, [ebp]
call fcn.0046aa06
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
lea edx, [ebp - 0x50]
call fcn.00456b9a
pop ecx
test eax, eax
jns 0x4517e4
jmp 0x45196c
push ecx
jmp 0x451835
js 0x45196c
push dword [ebp - 0x10]
push dword [ebp - 0x28]
push 1
push dword [ebp - 0x2c]
call fcn.0041f47b
push dword [ebp - 0x10]
push dword [ebp - 0x20]
push 1
push dword [ebp - 0x24]
call fcn.0041f47b
add esp, 0x1c
push 1
lea edx, [ebp - 0x2c]
lea ecx, [ebp]
call fcn.0046a44a
pop ecx
pop ecx
test eax, eax
jne 0x45180c
mov eax, dword [ebx + 0x294]
xor esi, esi
sub eax, dword [ebx + 0x290]
cdq
idiv dword [ebp - 0x38]
mov ecx, dword [ebx + 0x2c4]
cmp ecx, eax
cmovne esi, ecx
jmp 0x451905
xor eax, eax
lea ecx, [ebp - 0x70]
cmp dword [ebp - 0x18], eax
push ecx
sete al
mov dword [ebp - 0x1c], eax
mov edx, eax
jmp 0x4518c7
lea edx, [ebp - 0x70]
lea ecx, [ebp]
call fcn.0046aa06
lea edx, [ebp - 0x2c]
lea ecx, [ebp]
call fcn.0046aa2d
test eax, eax
js 0x451969
je 0x4518c0
push dword [ebp - 0x10]
push dword [ebp - 0x28]
push 1
push dword [ebp - 0x2c]
call fcn.0041f47b
push dword [ebp - 0x10]
push dword [ebp - 0x20]
push 1
push dword [ebp - 0x24]
call fcn.0041f47b
add esp, 0x20
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x70]
push eax
mov ecx, edi
call fcn.00456e4c
pop ecx
test eax, eax
jne 0x45187d
cmp dword [ebp - 0x18], 0
je 0x45192e
mov eax, dword [ebx + 0x294]
lea ecx, [esi + 1]
sub eax, dword [ebx + 0x290]
xor esi, esi
cdq
idiv dword [ebp - 0x38]
inc dword [ebp - 0x3c]
cmp ecx, eax
cmovne esi, ecx
cmp esi, dword [ebx + 0x2c4]
je 0x45192e
mov ecx, dword [ebp - 0x3c]
cmp ecx, eax
jge 0x45192e
lea eax, [ebp + 0x1a8]
mov ecx, ebx
push eax
push esi
call fcn.00450e25
lea edx, [ebp + 0x1a8]
mov dword [ebp - 0x18], eax
mov ecx, edi
call fcn.00456bd0
test eax, eax
je 0x45186a
jmp 0x451969
push ecx
jmp 0x451956
js 0x451969
push dword [ebp - 0x10]
push dword [ebp - 0x28]
push 1
push dword [ebp - 0x2c]
call fcn.0041f47b
push dword [ebp - 0x10]
push dword [ebp - 0x20]
push 1
push dword [ebp - 0x24]
call fcn.0041f47b
add esp, 0x1c
push 1
lea edx, [ebp - 0x2c]
lea ecx, [ebp]
call fcn.0046a44a
pop ecx
pop ecx
test eax, eax
jne 0x451931
mov esi, dword [ebp - 0x14]
lea ecx, [ebp]
call fcn.0046aaf3
lea ecx, [ebp - 0x50]
call fcn.00451bf2
mov ecx, edi
call fcn.00456f55
cmp dword [ebp - 0x10], 0
je 0x451992
push dword [ebp - 0x10]
call fcn.0041ca0d
pop ecx
mov eax, dword [ebp + 0x1b4]
test eax, eax
je 0x4519a3
push eax
call fcn.00413923
pop ecx
push str.temp_video
mov edx, esi
lea ecx, [ebp - 0x30]
call fcn.00401f34
mov byte [ebp - 4], 1
lea eax, [ebp - 0x30]
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040180b
mov byte [ebp - 4], 2
mov byte [ebp - 4], 1
mov cl, 1
call fcn.004374d1
pop ecx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x30]
call fcn.004019df
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.004019df
xor eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x1d8]
xor ecx, ebp
call fcn.00413912
add ebp, 0x1dc
leave
ret