Function at 0x4ad040
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8bc
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0xe4]
push esi
push edi
mov edi, dword [ebp + 0xc]
push 0xc0
push 0
push eax
mov dword [ebp - 0x8ac], ebx
call fcn.00595760
mov eax, dword [str.V4.5]
lea edx, [ebp - 0xc4]
mov ecx, dword [ebx + 0x84]
add esp, 0xc
mov dword [ebp - 0xcc], eax
sub edx, ecx
mov al, byte [0x5dbda4]
mov dword [ebp - 0xe4], 0x802a5fd7
mov dword [ebp - 0xe0], 0x800
mov dword [ebp - 0xd0], 0x800
mov dword [ebp - 0xdc], 0x400
mov dword [ebp - 0xd8], 0x400
mov dword [ebp - 0xd4], 0
mov byte [ebp - 0xc8], al
jmp 0x4ad0e0
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4ad0e0
push 0
call fcn.00594354
mov dword [ebp - 0x8bc], eax
lea eax, [ebp - 0x8bc]
push eax
mov dword [ebp - 0x8b8], edx
call fcn.005940b5
mov esi, eax
lea eax, [ebp - 0x60]
push esi
push str._Y:_m:_d
push 0xc
push eax
call fcn.00594098
push esi
push str._H:_M:_S10
lea eax, [ebp - 0x54]
push 0xc
push eax
call fcn.00594098
lea eax, [ebp - 0xe4]
push eax
push ebx
call fcn.004ad520
add esp, 0x30
test ax, ax
je 0x4ad15b
pop edi
pop esi
mov eax, 6
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
push 0x1e8
lea eax, [ebp - 0x2cc]
push 0
push eax
call fcn.00595760
mov esi, dword [edi + 0xdc]
add esp, 0xc
test esi, esi
je 0x4ad184
mov byte [ebp - 0x2cb], 3
jmp 0x4ad18d
mov al, byte [edi + 0x40]
mov byte [ebp - 0x2cb], al
mov ecx, 4
test esi, esi
jne 0x4ad19a
movsx ecx, word [edi + 0x40]
mov eax, dword [edi + 0x2c]
lea edx, [ebp - 0x2c7]
imul eax, dword [edi + 0x30]
mov word [ebp - 0x2ca], 0xffff
imul eax, ecx
add dword [ebp - 0xd0], eax
xor ebx, ebx
jmp 0x4ad1c0
mov byte [edx - 1], 0
lea eax, [ebx + 1]
mov byte [edx], al
mov ecx, 0xa
test esi, esi
jne 0x4ad1d6
movsx ecx, word [edi + 0x3e]
mov eax, dword [edi + 0x2c]
inc ebx
mov dword [edx + 3], eax
mov eax, dword [edi + 0x30]
mov dword [edx + 7], eax
mov eax, 1
shl eax, cl
dec eax
mov byte [edx + 1], cl
mov dword [edx + 0xb], 0
mov dword [edx + 0xf], 0
mov dword [edx + 0x17], 0x40000000
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x62d480]
cvtpd2ps xmm0, xmm0
movss dword [edx + 0x13], xmm0
add edx, 0x1c
cmp ebx, 3
jl 0x4ad1c0
movaps xmm0, xmmword [0x5dbdd0]
lea eax, [ebp - 0x2cc]
mov ebx, dword [ebp - 0x8ac]
movups xmmword [ebp - 0x1e8], xmm0
push eax
movaps xmm0, xmmword [0x5dbdd0]
push ebx
movups xmmword [ebp - 0x1d8], xmm0
call fcn.004ad630
add esp, 8
test ax, ax
jne 0x4ad145
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movdqu xmmword [ebp - 0x24], xmm0
push ebx
movdqu xmmword [ebp - 0x14], xmm0
mov word [ebp - 0x24], 0x500
call fcn.004ad5c0
add esp, 8
test ax, ax
jne 0x4ad145
push 0x138
lea eax, [ebp - 0x404]
push 0
push eax
call fcn.00595760
mov ecx, dword [ebx + 0x84]
lea edx, [ebp - 0x3fc]
add esp, 0xc
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4ad2b0
lea eax, [ebp - 0x404]
mov dword [ebp - 0x300], 0x4326ab85
push eax
push ebx
mov dword [ebp - 0x2fc], 0x4326ab85
mov dword [ebp - 0x2f8], 0x3f800000
call fcn.004ad810
add esp, 8
test ax, ax
jne 0x4ad145
push 0x400
lea eax, [ebp - 0x804]
push 0
push eax
call fcn.00595760
mov eax, dword [str.none]
mov dword [ebp - 0x7d0], eax
mov al, byte [0x5dbdc4]
mov byte [ebp - 0x7cc], al
lea eax, [ebp - 0x804]
push eax
push ebx
mov dword [ebp - 0x804], 0xffffffff
mov dword [ebp - 0x800], 0xffffffff
mov dword [ebp - 0x7fc], 0xffffffff
mov dword [ebp - 0x7d8], 0xff
mov dword [ebp - 0x7d4], 0x4eff0000
call fcn.004ad900
add esp, 0x14
test ax, ax
jne 0x4ad145
lea eax, [ebp - 0x8a8]
push eax
call fcn.00458dd0
mov eax, dword [0x5d3e8c]
mov edx, 1
movq xmm0, qword [str.Kodak_Cineon]
mov dword [ebp - 0x87c], eax
mov al, byte [0x5d3e90]
mov byte [ebp - 0x878], al
movzx eax, byte [ebp - 0x2cb]
imul eax, dword [edi + 0x2c]
movq qword [ebp - 0x884], xmm0
mov dword [ebp - 0x8a8], 0
mov dword [ebp - 0x8a4], 0x10000
mov word [ebp - 0x89c], dx
mov dword [ebp - 0x890], eax
xor eax, eax
mov word [ebp - 0x88c], ax
movzx eax, byte [ebp - 0x2cb]
shl ax, 3
mov word [ebp - 0x89a], ax
lea eax, [ebp - 0x8a8]
push eax
push edi
call fcn.00457000
movzx esi, ax
add esp, 0xc
mov dword [ebp - 0x8b4], esi
test si, si
jne 0x4ad4ff
xor eax, eax
mov dword [ebp - 0x8b0], eax
cmp dword [edi + 0x30], eax
jle 0x4ad4f6
lea esp, [esp]
push 1
push eax
push edi
call fcn.00459620
add esp, 0xc
cmp byte [ebp - 0x2c6], 8
jne 0x4ad45d
push dword [ebx]
push 1
push dword [ebp - 0x890]
push dword [ebp - 0x8a0]
call fcn.0059628c
add esp, 0x10
test eax, eax
jne 0x4ad4da
lea esi, [eax + 6]
jmp 0x4ad4f6
xor ebx, ebx
cmp dword [edi + 0x2c], ebx
jle 0x4ad4d4
mov esi, dword [ebp - 0x8a0]
add esi, 2
lea ecx, [ecx]
mov edx, dword [edi + 0xdc]
movzx eax, byte [esi - 1]
test edx, edx
je 0x4ad4a8
movzx ecx, word [edx + eax*2 + 0x200]
movzx eax, byte [esi - 2]
movzx eax, word [edx + eax*2]
shl eax, 0xa
or ecx, eax
movzx eax, byte [esi]
shl ecx, 0xa
movzx eax, word [edx + eax*2 + 0x400]
or ecx, eax
shl ecx, 2
jmp 0x4ad4bc
movzx ecx, byte [esi - 2]
shl ecx, 0xa
or ecx, eax
movzx eax, byte [esi]
shl ecx, 0xa
or ecx, eax
shl ecx, 4
push dword [ebp - 0x8ac]
add esi, 3
push ecx
call fcn.0045d510
inc ebx
add esp, 8
cmp ebx, dword [edi + 0x2c]
jl 0x4ad470
mov ebx, dword [ebp - 0x8ac]
mov eax, dword [ebp - 0x8b0]
inc eax
mov dword [ebp - 0x8b0], eax
cmp eax, dword [edi + 0x30]
jl 0x4ad420
mov esi, dword [ebp - 0x8b4]
push edi
call fcn.00454fa0
add esp, 4
mov ecx, dword [ebp - 4]
mov ax, si
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005920c1
mov esp, ebp
pop ebp
ret