Function at 0x476700
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x27c
mov ebp, dword [esp + 0x290]
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call fcn.00419560
mov dword [esp + 0xd0], eax
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 0x458]
mov esi, dword [ebp + 0x45c]
mov dword [esp + 0xd4], edx
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x450]
mov dword [esp + 0xb0], esi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xb4], eax
mov eax, dword [ebp + 0x454]
mov dword [esp + 8], str.missing_streams
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0x14]
mov dword [esp], eax
call fcn.00575760
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x6855e2
mov dword [esp + 4], str.skip_clear
mov dword [esp], ebp
mov dword [esp + 0x80], eax
call fcn.00573870
or esi, edi
jne 0x476850
mov eax, dword [ebp + 4]
mov edi, 0x68694e
mov ecx, 4
mov dword [esp + 0xb8], 0
mov eax, dword [eax]
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
mov edi, 0x6870c3
mov esi, eax
setb cl
seta dl
sub edx, ecx
mov ecx, 5
movsx edx, dl
cmp edx, 1
sbb ebx, ebx
and ebx, 0x510ff40
add ebx, 0x4c4b40
repe cmpsb byte [esi], byte es:[edi]
jne 0x477fa3
mov dword [esp + 0xc0], 0x1c9c380
mov dword [esp + 0xc4], 0
mov dword [esp + 0xbc], 0x6acfc0
mov dword [esp + 0xa4], 0x4c4b40
mov dword [esp + 0xb0], 0
jmp 0x47687a
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edi
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], edi
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x18]
test eax, eax
je 0x4768e8
mov ecx, dword [eax + 0x70]
mov esi, dword [eax + 0x68]
mov edi, dword [eax + 0x6c]
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], eax
mov dword [esp + 0x30], ecx
call fcn.00419560
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 8], str.Before_avformat_find_stream_info___pos:__lld_bytes_read:_lld_seeks:_d_nb_streams:_d_n
mov dword [esp + 4], 0x30
mov dword [esp], ebp
call fcn.0056b9c0
mov ebx, dword [ebp + 0x18]
xor esi, esi
test ebx, ebx
je 0x476b28
mov dword [esp + 0x30], esi
mov ecx, esi
nop
lea esi, [esi]
lea eax, [ecx*4]
mov dword [esp + 0x170], 0
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x1c]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x2b8]
mov edx, dword [ebx + 0xb0]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x40], ecx
mov ecx, dword [edx]
test ecx, ecx
je 0x476cb0
cmp ecx, 3
je 0x476cb0
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0xe8]
mov ecx, dword [esi + 0x10]
cmp ecx, dword [eax + 0x18]
je 0x4769c0
mov esi, dword [esi + 8]
test edi, edi
mov dword [edx + 4], ecx
mov dword [edx], esi
mov dword [eax + 0x18], ecx
jne 0x4769d2
test byte [ebp + 0x448], 0x20
jne 0x4769d2
mov eax, dword [ebx + 0x1b8]
test eax, eax
jg 0x4769d2
mov dword [esp], ecx
call fcn.004d18d0
test eax, eax
mov dword [ebx + 0xe8], eax
je 0x478918
mov ecx, dword [ebx + 0xe4]
mov edx, dword [ebx + 0xb0]
cmp ecx, 2
mov esi, dword [edx + 4]
je 0x478eee
cmp ecx, 5
jne 0x47892f
or dword [eax + 0xb0], 0x1000
jmp 0x47892f
test edi, edi
mov esi, dword [edx + 4]
je 0x479d73
cmp ecx, esi
je 0x4769d2
mov dword [eax + 0x18], esi
mov eax, dword [esp + 0x40]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.004e8db0
test eax, eax
js 0x477ff9
mov edx, dword [ebx + 0x1b8]
test edx, edx
jg 0x476a01
mov eax, dword [ebx + 0x2b8]
mov dword [eax + 0x14], 1
mov eax, dword [ebx + 0xb0]
mov edx, ebx
mov ecx, dword [eax + 4]
mov eax, ebp
call fcn.0046a110
mov edi, eax
mov eax, dword [esp + 0x294]
mov esi, dword [esp + 0x38]
add esi, dword [esp + 0x294]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x6855e2
mov dword [esp + 4], 0x6855e4
test eax, eax
lea eax, [esp + 0x170]
cmove esi, eax
mov dword [esp], esi
call fcn.0055e9c0
mov eax, dword [ebp + 0x504]
test eax, eax
je 0x476a79
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0x6855ec
mov dword [esp], esi
call fcn.0055e9c0
mov eax, dword [ebx + 0xb0]
test edi, edi
setne byte [esp + 0x38]
movzx ecx, byte [esp + 0x38]
cmp dword [eax], 3
jne 0x476a98
test cl, cl
jne 0x476cd0
mov eax, ebx
call fcn.004699d0
test eax, eax
jne 0x476ac0
mov eax, dword [ebx + 0x1b8]
test eax, eax
jg 0x476ac0
cmp byte [esp + 0x38], 0
jne 0x476d48
nop
lea esi, [esi]
mov eax, dword [esp + 0x294]
test eax, eax
je 0x476d20
add dword [esp + 0x30], 1
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
ja 0x476900
test eax, eax
je 0x476b28
mov edx, dword [ebp + 0x1c]
lea ecx, [edx + eax*4]
lea esi, [esi]
mov eax, dword [edx]
add edx, 4
cmp ecx, edx
mov eax, dword [eax + 0xb4]
mov dword [eax], 0
mov dword [eax + 4], 0x80000000
mov dword [eax + 0x48], 0
mov dword [eax + 0x4c], 0x80000000
mov dword [eax + 0x58], 0
mov dword [eax + 0x5c], 0x80000000
jne 0x476af0
lea eax, [ebp + 0x4a0]
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x88]
mov dword [esp], eax
call fcn.00486db0
test eax, eax
mov dword [esp + 0x90], eax
jne 0x478c6e
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x30], 0
mov ecx, ebp
test eax, eax
mov dword [esp + 0x50], eax
je 0x478a80
mov esi, esi
lea edi, [edi]
mov edi, dword [esp + 0x30]
mov eax, dword [ecx + 0x1c]
mov ebx, dword [eax + edi*4]
mov dword [esp + 0x50], edi
mov eax, dword [ebx + 0x2b8]
mov ebp, dword [eax + 0x10]
mov dword [esp + 0x68], eax
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
test edi, edi
mov dword [esp + 0x58], edi
jne 0x476da0
cmp eax, 2
je 0x47734e
mov eax, dword [esp + 0x80]
mov ebp, ecx
test eax, eax
je 0x476f80
mov ebx, dword [eax]
test ebx, ebx
je 0x476f80
mov dword [esp + 0x48], 0
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
cmp edx, ecx
jl 0x4774f2
jle 0x4774e3
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], str.Probe_buffer_size_limit_of__lld_bytes_reached_n
mov dword [esp + 4], 0x30
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
call fcn.0056b9c0
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x478977
mov ebx, dword [esp + 0x90]
jmp 0x476c4d
add ebx, 1
cmp ebx, eax
jae 0x478977
mov edx, dword [ebp + 0x1c]
mov edx, dword [edx + ebx*4]
mov ecx, dword [edx + 0xa4]
test ecx, ecx
jne 0x476c42
mov ecx, dword [edx + 0xb4]
cmp dword [ecx + 0x10], 1
jg 0x476c42
mov edx, dword [edx + 0xb0]
mov edx, dword [edx]
test edx, edx
jne 0x476c42
mov edx, dword [ebp + 4]
mov edi, str.image2
mov ecx, 7
mov esi, dword [edx]
repe cmpsb byte [esi], byte es:[edi]
je 0x476c42
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.Stream__d:_not_enough_frames_to_estimate_rate__consider_increasing_probesize_n
mov dword [esp + 4], 0x18
mov dword [esp], ebp
call fcn.0056b9c0
mov eax, dword [ebp + 0x18]
jmp 0x476c42
mov ecx, dword [esp + 0x40]
mov esi, dword [ecx + 0x4c]
test esi, esi
jne 0x476942
mov esi, dword [ebx + 0x10]
mov edi, dword [ebx + 0x14]
mov dword [ecx + 0x4c], esi
mov dword [ecx + 0x50], edi
jmp 0x476942
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x476a98
mov eax, dword [esp + 0x40]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.004e4170
test eax, eax
jns 0x476a98
mov dword [esp + 0xc], 0x687b54
mov dword [esp + 8], str.Failed_to_open_codec_in__s_n
mov dword [esp + 4], 0x18
mov dword [esp], ebp
call fcn.0056b9c0
jmp 0x476a98
lea eax, [esp + 0x170]
mov dword [esp], eax
call fcn.0055f3c0
add dword [esp + 0x30], 1
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x30]
cmp ecx, eax
jb 0x476900
jmp 0x476ae3
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x476ac0
mov eax, dword [esp + 0x40]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.004e4170
test eax, eax
jns 0x476ac0
mov dword [esp + 0xc], 0x687b54
mov dword [esp + 8], str.Failed_to_open_codec_in__s_n
mov dword [esp + 4], 0x18
mov dword [esp], ebp
call fcn.0056b9c0
jmp 0x476ac0
cmp eax, 1
je 0x477450
cmp eax, 3
je 0x477340
test eax, eax
jne 0x47734e
mov eax, dword [ebp + 0x5c]
test eax, eax
je 0x476bc6
mov eax, dword [ebx + 0xb4]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0x3c]
test eax, eax
js 0x476de0
cmp dword [ebp + 0x70], 0xffffffff
je 0x476bc6
mov edx, dword [ebx + 0xb0]
mov eax, dword [edx + 4]
sub eax, 0x44
cmp eax, 1
jbe 0x477a90
fild dword [ebx + 0x10]
mov esi, 0x28
mov eax, 0x14
fild dword [ebx + 0x14]
fdivp st(1)
fstp qword [esp + 0xe8]
fld xword [0x687d20]
fld qword [esp + 0xe8]
fucompi st(1)
fstp st(0)
cmova eax, esi
mov esi, dword [ebp + 0x4c]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x50]
mov dword [esp + 0x60], eax
mov dword [esp + 0x40], eax
sar eax, 0x1f
mov dword [esp + 0x44], eax
mov eax, 0x65
imul esi
cmp dword [esp + 0x44], edx
jg 0x476eb0
jl 0x476e50
cmp dword [esp + 0x60], eax
jae 0x476eb0
mov eax, esi
cdq
mov edi, edx
shld edi, esi, 2
shl esi, 2
add eax, esi
adc edx, edi
cmp dword [esp + 0x44], edx
jl 0x476eb0
jg 0x476e6e
cmp dword [esp + 0x60], eax
jb 0x476eb0
cmp dword [ebp + 0x14], 0x7634706d
mov edi, dword [esp + 0x58]
sete al
cmp edi, 2
sete dl
or eax, edx
cmp edi, 0x61
sete dl
or eax, edx
cmp edi, 0xad
sete dl
or al, dl
jne 0x476eb0
cmp edi, 0x1b
mov eax, 0
cmove eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
lea esi, [esi]
mov eax, dword [ecx + 0x498]
mov edx, 0
test eax, eax
cmovs eax, dword [esp + 0x48]
test byte [ebx + 0x31], 4
cmovne eax, edx
mov edx, dword [ecx + 4]
test byte [edx + 8], 0x80
je 0x477330
mov edi, dword [esp + 0x38]
mov esi, dword [edi + 0x30]
mov edi, dword [edi + 0x34]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
xor edi, edi
mov esi, dword [esp + 0x44]
shr esi, 0x1f
add esi, dword [esp + 0x40]
adc edi, dword [esp + 0x44]
shrd esi, edi, 1
mov edx, dword [ebx + 0xa4]
test edx, edx
je 0x476f0e
mov edi, dword [ebx + 0x44]
test edi, edi
jne 0x476f22
mov edx, dword [ebx + 0xb0]
mov edx, dword [edx]
test edx, edx
jne 0x476f22
cmp eax, esi
jg 0x476bc6
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x476f36
cmp esi, 1
jle 0x477420
mov ebp, dword [ebp + 0x44]
test ebp, ebp
je 0x4773a0
mov eax, dword [ebx + 0xc4]
add eax, 0x80000000
or eax, dword [ebx + 0xc0]
je 0x477360
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
cmp dword [ecx + 0x18], eax
mov dword [esp + 0x50], eax
ja 0x476b90
mov eax, dword [esp + 0x80]
mov ebp, ecx
test eax, eax
jne 0x476bd7
nop
mov eax, dword [esp + 0x30]
cmp dword [ebp + 0x18], eax
mov dword [esp + 0x48], 0
jne 0x476be9
mov eax, dword [ebp + 0x14]
and eax, 1
mov dword [esp + 0x48], eax
jne 0x476be9
mov dword [esp + 8], str.All_info_found_n
mov dword [esp + 4], 0x30
mov dword [esp], ebp
call fcn.0056b9c0
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x38], eax
mov dword [esp], ebp
call fcn.00475d60
mov eax, dword [ebp + 0x18]
test eax, eax
mov ecx, eax
mov dword [esp + 0x30], eax
je 0x4781d2
xor edi, edi
mov dword [esp + 0x290], ebp
lea esi, [esi]
mov ebx, dword [esp + 0x290]
mov edx, dword [ebx + 0x1c]
mov ebx, dword [edx + edi*4]
mov edx, dword [ebx + 0x2b8]
mov ebp, dword [edx + 0x10]
mov edx, dword [ebp + 8]
test edx, edx
jne 0x4786c0
cmp dword [ebp + 0x10], 0xd
je 0x478714
mov eax, dword [ebx + 0xb4]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x34]
mov dword [esp + 0x30], edx
or edx, ecx
mov dword [esp + 0x40], ecx
je 0x4780c2
mov ecx, dword [ebx + 0x44]
test ecx, ecx
mov dword [esp + 0x48], ecx
jne 0x4780c2
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x2c]
mov eax, edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], edx
or ecx, eax
je 0x4780c2
mov ecx, dword [ebx + 0x10]
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0x7fffffff
mov eax, ecx
mov dword [esp + 8], ecx
mov esi, ecx
cdq
mov dword [esp + 0x68], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x6c], edx
call fcn.005a71f0
mov ecx, edx
mov dword [esp + 0x5c], 0
shr ecx, 0x1f
mov dword [esp + 0x58], ecx
add eax, dword [esp + 0x58]
adc edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
shrd eax, edx, 1
sar edx, 1
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x54]
cmp edx, dword [esp + 0x5c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x50]
jl 0x4770d3
jg 0x4781b0
cmp eax, dword [esp + 0x58]
jae 0x4781b0
mov eax, dword [ebx + 0x14]
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0x7fffffff
mov dword [esp + 0x40], ecx
cdq
mov dword [esp + 8], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
call fcn.005a71f0
cmp dword [esp + 0x30], edx
jg 0x4781b0
mov ecx, dword [esp + 0x40]
jge 0x478f7f
mov edx, dword [esp + 0x54]
test edx, edx
js 0x4781b0
mov edx, dword [ebp + 0x2fc]
mov eax, dword [ebp + 0x2f8]
mov dword [esp + 0x18], 0xea60
mov dword [esp + 0x1c], 0
mov dword [esp + 0x60], edx
lea edx, [ebx + 0x48]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x80], edx
lea edx, [ebx + 0x44]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x54]
shld edx, eax, 1
add eax, eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x40], eax
imul edx, esi
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x6c]
imul edx, dword [esp + 0x40]
mov eax, dword [esp + 0x50]
add eax, edx
mov dword [esp + 0x50], eax
mov eax, esi
mov esi, dword [esp + 0x90]
mul dword [esp + 0x40]
add edx, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x30]
imul eax, ecx
imul edx, esi
add edx, eax
mov eax, esi
mov dword [esp + 0x30], edx
mul ecx
lea ecx, [ebx + 0x48]
add edx, dword [esp + 0x30]
mov dword [esp + 4], ecx
lea ecx, [ebx + 0x44]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 0xc], edx
call fcn.0057b0f0
fild dword [ebx + 0x44]
mov edx, dword [esp + 0x290]
fild dword [ebx + 0x48]
fdivp st(1)
fstp qword [esp + 0xe8]
mov eax, dword [edx + 0x50c]
fld qword [esp + 0xe8]
mov eax, dword [eax + 0x64]
test eax, eax
je 0x477225
mov eax, dword [esp + 0x58]
test eax, eax
mov eax, dword [esp + 0x60]
setg dl
test eax, eax
setg al
test dl, al
jne 0x479ba8
mov dword [esp + 0x40], edi
mov ecx, 0x3e9
xor eax, eax
fld qword [0x687cc0]
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x290]
jmp 0x477306
lea edx, [eax - 0x186]
cmp edx, 2
jbe 0x478fc0
mov dword [esp + 0x110], 0x18
mov dword [esp + 0x114], 0x1e
mov dword [esp + 0x118], 0x3c
mov dword [esp + 0x11c], 0xc
mov dword [esp + 0x120], 0xf
mov dword [esp + 0x124], 0x30
imul edx, dword [esp + eax*4 - 0x514], 0x2ee0
lea esi, [esi]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fdiv dword [0x687ca8]
fstp qword [esp + 0xe8]
fld qword [esp + 0xe8]
fdivr st(2)
fsub dword [0x687d1c]
fstp qword [esp + 0xe8]
fld qword [esp + 0xe8]
fabs
fxch st(1)
fucomi st(1)
jbe 0x4772f0
fstp st(0)
mov edi, edx
jmp 0x4772f2
fstp st(1)
add eax, 1
add ecx, 0x3e9
cmp eax, 0x18f
je 0x47805e
cmp eax, 0x167
mov edx, ecx
jbe 0x4772b0
cmp eax, 0x185
jg 0x477250
imul edx, eax, 0x2eec
sub edx, 0x3c4d4c
jmp 0x4772b0
mov edx, dword [esp + 0x38]
mov esi, dword [edx + 0x10]
jmp 0x476efd
cmp dword [esp + 0x58], 0x17006
je 0x477433
mov eax, dword [ebx + 0xb4]
mov dword [esp + 0x38], eax
jmp 0x476df5
mov eax, dword [ecx + 4]
test byte [eax + 8], 0x80
jne 0x476f58
test byte [ebx + 0x31], 4
mov edx, dword [ebx + 0xe0]
mov eax, 1
jne 0x477384
mov eax, dword [ecx + 0x4c0]
cmp edx, eax
jge 0x476f58
mov eax, dword [ebx + 0xb0]
cmp dword [eax], 1
ja 0x476f58
jmp 0x476bc6
mov eax, dword [esp + 0x68]
mov edi, dword [eax + 0x24]
test edi, edi
je 0x4773b6
mov esi, dword [eax + 0x1c]
test esi, esi
je 0x476f41
mov dword [esp], str.extract_extradata
mov dword [esp + 0x38], ecx
call fcn.0049b060
test eax, eax
mov ecx, dword [esp + 0x38]
je 0x476f41
mov eax, dword [eax + 4]
test eax, eax
je 0x476f41
mov edx, dword [eax]
test edx, edx
je 0x476f41
mov esi, dword [ebx + 0xb0]
mov esi, dword [esi + 4]
cmp esi, edx
jne 0x477408
jmp 0x476bc6
cmp esi, edx
je 0x476bc6
add eax, 4
mov edx, dword [eax]
test edx, edx
jne 0x477400
jmp 0x476f41
mov eax, dword [ebp + 0x8c]
test eax, eax
jne 0x476f36
jmp 0x476bc6
mov eax, dword [ebp + 0x5c]
test eax, eax
je 0x476bc6
mov eax, dword [ebx + 0xb4]
mov dword [esp + 0x38], eax
jmp 0x476df5
mov eax, dword [ebp + 0x164]
test eax, eax
jne 0x477480
cmp edi, 0x1502a
mov eax, edi
je 0x476bc6
ja 0x477a70
sub eax, 0x15000
cmp eax, 1
jbe 0x476bc6
lea esi, [esi]
mov eax, dword [ebx + 0xb4]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0x3c]
test eax, eax
js 0x47749e
cmp dword [ebp + 0x160], 0xffffffff
je 0x476bc6
mov esi, dword [ebp + 0x158]
test esi, esi
je 0x476bc6
mov edx, dword [ebp + 0x15c]
test edx, edx
je 0x476bc6
test eax, eax
js 0x476df5
mov eax, dword [ebx + 0x1e0]
test eax, eax
jne 0x476df5
cmp dword [esp + 0x58], 0x15004
jne 0x476df5
jmp 0x476bc6
mov ecx, dword [esp + 0xb4]
cmp eax, ecx
jae 0x476c03
lea edx, [esp + 0x128]
mov eax, ebp
call fcn.00471100
cmp eax, 0xfffffff5
mov dword [esp + 0x38], eax
je 0x476b50
test eax, eax
js 0x478c93
test byte [ebp + 0x448], 0x40
je 0x477ac0
mov eax, dword [ebp + 0x1c]
mov edx, dword [esp + 0x148]
mov esi, dword [eax + edx*4]
test byte [esi + 0x31], 4
jne 0x477545
mov eax, dword [esp + 0x144]
cdq
add dword [esp + 0x70], eax
adc dword [esp + 0x74], edx
mov eax, dword [esi + 0x2b8]
mov ebx, dword [eax + 0x14]
mov ecx, dword [eax + 0x10]
test ebx, ebx
mov dword [esp + 0x58], ecx
je 0x477b10
mov edx, dword [esp + 0x13c]
mov eax, dword [esp + 0x138]
mov edi, dword [esi + 0xe0]
mov dword [esp + 0x44], edx
lea edx, [edx - 0x80000000]
mov dword [esp + 0x40], eax
or edx, eax
je 0x4776e0
cmp edi, 1
jle 0x4779f0
mov ebx, dword [esi + 0xb4]
mov edx, dword [ebx + 0x58]
mov eax, dword [ebx + 0x5c]
mov ecx, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
jl 0x4775c2
jg 0x47794e
cmp eax, ecx
ja 0x47794e
mov eax, dword [esp + 0x60]
add eax, 0x80000000
or ecx, eax
jne 0x478010
mov edx, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x4c]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x94], ecx
or eax, edx
je 0x4776af
mov eax, dword [ebx + 0x60]
mov ecx, dword [ebx + 0x50]
cmp eax, ecx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
jle 0x4776af
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x44]
mov dword [esp + 8], 0x3e8
mov dword [esp + 0xac], ecx
sbb edx, dword [esp + 0xac]
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.005a76e0
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0xa8]
sub edx, dword [esp + 0x90]
mov ecx, dword [esp + 0xac]
sbb ecx, dword [esp + 0x94]
mov dword [esp + 0xdc], eax
mov dword [esp], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc8]
sub ecx, dword [esp + 0xcc]
mov dword [esp + 8], ecx
sar ecx, 0x1f
mov dword [esp + 0xc], ecx
call fcn.005a76e0
cmp dword [esp + 0xd8], edx
jae 0x477e59
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov eax, edx
mov edx, ecx
add edx, 0x80000000
or edx, eax
je 0x477ef3
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [ebx + 0x60], edi
mov dword [ebx + 0x58], eax
mov dword [ebx + 0x5c], edx
cmp edi, 1
jle 0x4779f0
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x44]
test edx, edx
mov dword [esp + 0x60], eax
jle 0x477d90
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0xf4240
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [esi + 0xb4]
mov edx, dword [eax + 0x2c]
mov eax, dword [eax + 0x28]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0056cac0
mov ecx, eax
mov eax, dword [esp + 0x60]
mov ebx, edx
test eax, eax
jle 0x4777d7
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + 0x48]
mov eax, edi
cdq
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0xf4240
mov dword [esp], edi
mov dword [esp + 4], edx
mov dword [esp + 0xa8], ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edx
mov dword [esp + 0xc], ecx
call fcn.0056cac0
cmp edx, ebx
mov ecx, dword [esp + 0x68]
jl 0x4777d7
jle 0x477f96
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0xf4240
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call fcn.0056cac0
mov ecx, eax
mov ebx, edx
mov eax, ebx
or eax, ecx
je 0x477d9c
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x477d74
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xc0]
cmp dword [eax + 8], 3
mov eax, dword [esp + 0xc4]
cmovne edx, dword [esp + 0xbc]
cmovne eax, dword [esp + 0xb8]
cmp ebx, eax
jl 0x477964
jle 0x47795c
mov edi, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x148]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 8], str.max_analyze_duration__lld_reached_at__lld_microseconds_st:_d_n
mov dword [esp + 4], 0x28
mov dword [esp], ebp
call fcn.0056b9c0
test byte [ebp + 0x448], 0x40
jne 0x478fab
cmp dword [esp + 0x78], 0
jl 0x476fc8
jle 0x47888f
lea edi, [esp + 0x170]
xor eax, eax
mov ecx, 0x12
lea esi, [esp + 0x170]
rep stosd dword es:[edi], eax
mov dword [esp], esi
xor edi, edi
call fcn.004974a0
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x476fc8
mov dword [esp + 0x40], esi
jmp 0x4778b3
add edi, 1
cmp edi, edx
jae 0x476fc8
mov eax, dword [ebp + 0x1c]
lea ecx, [edi*4]
mov ebx, dword [eax + edi*4]
mov eax, dword [ebx + 0xb4]
cmp dword [eax + 0x3c], 1
jne 0x4778a8
mov eax, dword [esp + 0x294]
add ecx, dword [esp + 0x294]
mov esi, 0
mov dword [esp + 0x30], edi
test eax, eax
setne dl
cmp dword [esp + 0x98], edi
mov edi, dword [esp + 0x40]
setg al
test dl, al
cmovne esi, ecx
jmp 0x47790f
mov eax, ebx
call fcn.004699d0
test eax, eax
jne 0x478e19
mov dword [esp], esi
mov ecx, edi
mov edx, ebx
mov eax, ebp
call fcn.0046b960
cmp eax, 0
jg 0x477900
mov edi, dword [esp + 0x30]
je 0x477946
mov eax, dword [ebx]
mov dword [esp + 8], str.decoding_for_stream__d_failed_n
mov dword [esp + 4], 0x20
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call fcn.0056b9c0
mov edx, dword [ebp + 0x18]
jmp 0x4778a8
mov eax, dword [esp + 0x60]
add eax, 0x80000000
jmp 0x4775d3
cmp ecx, edx
jae 0x477821
mov edx, dword [esp + 0x15c]
mov eax, dword [esp + 0x158]
mov ebx, edx
or ebx, eax
je 0x4779f0
mov ecx, dword [esi + 0xb4]
add eax, dword [ecx + 0x28]
adc edx, dword [ecx + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x3c], edx
cmp dword [eax + 8], 3
je 0x477f09
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edx
mov edx, dword [ecx + 0x34]
mov ebx, dword [esi + 0xe8]
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x3c], edx
xor edx, edx
test ebx, ebx
mov dword [esp + 0x38], eax
mov eax, 2
je 0x4779e2
mov edi, dword [esi + 0xe4]
test edi, edi
je 0x4779e2
mov edi, dword [esp + 0x58]
cmp dword [edi + 0x54], 2
jne 0x4779e2
mov eax, dword [ebx + 0x24]
add eax, 1
cdq
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], edx
mov eax, dword [esi + 0xb0]
mov eax, dword [eax]
test eax, eax
je 0x477b40
mov edi, dword [esi + 0x2b8]
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x477bc7
mov eax, dword [esp + 0x294]
test eax, eax
je 0x477a83
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x98], ecx
jle 0x477a83
mov eax, dword [esp + 0x294]
mov ecx, dword [esp + 0x50]
lea eax, [eax + ecx*4]
lea ecx, [esp + 0x128]
mov dword [esp], eax
mov edx, esi
mov eax, ebp
call fcn.0046b960
test byte [ebp + 0x448], 0x40
jne 0x477d60
add dword [esi + 0xe0], 1
add dword [esp + 0xa0], 1
jmp 0x476b50
cmp dword [esp + 0x58], 0x15043
jne 0x477480
jmp 0x476bc6
xor eax, eax
jmp 0x477a3a
mov edi, dword [ebx + 0x38]
test edi, edi
jne 0x476df5
mov esi, dword [edx + 0x38]
test esi, esi
jne 0x476df5
mov edx, dword [ebx + 0xe0]
test edx, edx
je 0x476bc6
jmp 0x476df5
mov ebx, dword [ebp + 0x50c]
mov dword [esp], 0x50
call fcn.0056e410
test eax, eax
je 0x4787c4
mov ecx, 0x12
mov edi, eax
lea esi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebx + 4]
test esi, esi
je 0x478056
mov edx, dword [ebx + 8]
mov dword [edx + 0x48], eax
mov dword [ebx + 8], eax
mov dword [esp + 0x38], 0
jmp 0x477522
mov eax, dword [esi + 0xb0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004e8db0
test eax, eax
mov dword [esp + 0x38], eax
js 0x477c55
mov eax, dword [esi + 0x2b8]
mov dword [eax + 0x14], 1
jmp 0x47755d
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov dword [esp + 4], esi
mov dword [esp], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call fcn.004758c0
mov eax, dword [esp + 0x13c]
mov edi, dword [esp + 0x138]
mov ebx, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
lea edx, [eax - 0x80000000]
or edx, edi
setne byte [esp + 0x38]
xor eax, ecx
xor edi, ebx
or edi, eax
setne al
test byte [esp + 0x38], al
je 0x477a00
add ecx, 0x80000000
or ebx, ecx
je 0x477a00
mov eax, dword [esi + 0xb4]
mov edi, dword [esi + 0x2b8]
mov dword [eax + 0x38], 1
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0x44]
test eax, eax
jne 0x477a14
mov eax, dword [edi + 0x24]
test eax, eax
je 0x4787d4
mov ecx, dword [edi + 0x1c]
test ecx, ecx
je 0x477a14
mov eax, dword [edi + 0x20]
lea ecx, [esp + 0x128]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov ebx, eax
call reloc.msvcrt.dll___set_app_type
test eax, eax
mov dword [esp + 0x38], eax
js 0x477c55
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call fcn.0049bab0
test eax, eax
mov dword [esp + 0x38], eax
js 0x478e3c
mov eax, dword [edi + 0x10]
mov edx, dword [eax + 0x44]
test edx, edx
jne 0x477a14
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
call fcn.0049bb60
test eax, eax
jns 0x47877b
cmp eax, 0xfffffff5
mov dword [esp + 0x38], eax
je 0x477a14
cmp eax, 0xdfb9b0bb
je 0x477a14
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x477ce8
xor ebx, ebx
mov eax, dword [ebp + 0x1c]
lea esi, [ebx*4]
mov edx, dword [eax + ebx*4]
mov eax, dword [edx + 0xb4]
test eax, eax
je 0x477c8a
add eax, 0x20
mov dword [esp], eax
call fcn.0056e3f0
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax + ebx*4]
invalid
invalid