Function at 0x409550
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x431449
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc8
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor ebx, ebx
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0xf0]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
push eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov byte [esp + 0x23], bl
call fcn.0040eaf0
add esp, 0x10
test al, al
je 0x40975b
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
mov edx, eax
add edx, edi
mov ebp, ecx
adc ebp, dword [esp + 0x20]
add dword [esi + 0x18], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 0x40], 0x434234
adc dword [esi + 0x1c], ebp
mov ebp, dword [esp + 0x20]
add ebx, eax
adc dword [esp + 0x2c], ecx
cmp byte [esp + 0xe8], 0
mov dword [esp + 0x28], ebx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], ebp
jne 0x409624
cmp dword [esp + 0x14], 0x7461646d
jne 0x409624
cmp dword [esp + 0x18], 0
je 0x4097b0
cmp dword [esp + 0x14], 0x766f6f6d
jne 0x40969f
cmp dword [esp + 0x18], 0
jne 0x40969f
cmp byte [esp + 0x13], 0
jne 0x4097f7
mov edx, dword [esp + 0x2c]
sub ebx, eax
sbb edx, ecx
add eax, edi
adc ecx, ebp
mov byte [esp + 0x13], 1
mov dword [esi + 8], ebx
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
mov dword [esp + 0x38], 0x434348
mov dword [esp + 0x3c], esi
push ebp
push edi
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0xf0], 2
call fcn.00407340
mov ebx, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0xe0], 0xffffffff
mov dword [esp + 0x38], 0x434340
cmp dword [esp + 0x14], 0x70797466
jne 0x409711
cmp dword [esp + 0x18], 0
jne 0x409711
push 4
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x48]
call fcn.00406e80
movzx eax, byte [esp + 0x27]
mov dl, byte [esp + 0x26]
shl eax, 8
movzx ecx, dl
or eax, ecx
mov ecx, dword [esp + 0x24]
shl eax, 8
movzx edi, ch
or eax, edi
movzx edi, cl
shl eax, 8
or eax, edi
xor edi, edi
cmp eax, 0x564e534d
jne 0x4096f6
test edi, edi
jne 0x4096f6
mov byte [esi + 0x58], 1
cmp cl, 0x33
jne 0x409711
cmp ch, 0x67
jne 0x409711
cmp dl, 0x70
je 0x40970a
cmp dl, 0x32
jne 0x409711
mov byte [esi + 0xa8], 1
lea ecx, [esp + 0x40]
call fcn.00407050
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add ebx, edx
adc dword [esp + 0x2c], eax
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0xf0]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1c]
push eax
push ecx
call fcn.0040eaf0
add esp, 0x10
test al, al
jne 0x4095c0
cmp byte [esp + 0x13], al
jne 0x40984a
xor ebx, ebx
push 0x12
push str.moov_box_not_found
lea ecx, [esp + 0x74]
mov dword [esp + 0x8c], 0xf
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], 0
call fcn.00408e20
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0xb4]
mov dword [esp + 0xe4], 3
call fcn.00409160
push 0x43ba48
lea ecx, [esp + 0xb4]
push ecx
call fcn.0041ab1c
cmp byte [esp + 0x13], 0
jne 0x40984a
push str.attempting_to_stream_a_non_optimized_file
lea ecx, [esp + 0x54]
call fcn.00409260
lea edx, [esp + 0x50]
push edx
lea ecx, [esp + 0x8c]
mov dword [esp + 0xe4], 0
call fcn.00409160
push 0x43ba48
lea eax, [esp + 0x8c]
push eax
call fcn.0041ab1c
push 0x12
push str.duplicate_moov_box
lea ecx, [esp + 0x58]
mov dword [esp + 0x70], 0xf
mov dword [esp + 0x6c], 0
mov byte [esp + 0x5c], 0
call fcn.00408e20
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x8c]
mov dword [esp + 0xe4], 1
call fcn.00409160
push 0x43ba48
lea edx, [esp + 0x8c]
push edx
call fcn.0041ab1c
mov ecx, dword [esp + 0xd8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xd4
ret 8