Function at 0x404150
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x66c
mov eax, dword [0x507040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
xorps xmm0, xmm0
mov dword [ebp - 0x344], edi
movlpd qword [ebp - 0x350], xmm0
movlpd qword [ebp - 0x360], xmm0
cmp dword [edi + 0x30], 0xff
movlpd qword [ebp - 0x390], xmm0
jle 0x4041c0
push str.255_channels_should_be_enough_for_anyone.__Sorry__vorbis_doesnt_support_more__n
push 2
call fcn.0043f858
add esp, 4
push eax
call fcn.00401040
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043d9c9
mov esp, ebp
pop ebp
ret
push 8
call fcn.004418e9
add esp, 4
mov dword [ebp - 0x384], eax
push eax
call fcn.004492c3
mov ebx, dword [edi + 0x5c]
add esp, 4
mov ecx, dword [edi + 0x64]
test ebx, ebx
jne 0x4041f7
test ecx, ecx
jns 0x4041f0
mov edx, dword [edi + 0x68]
mov eax, ecx
test edx, edx
js 0x4041fc
push str.Requesting_a_minimum_or_maximum_bitrate_requires___managed_n
jmp 0x404197
mov edx, dword [edi + 0x68]
mov eax, ecx
mov esi, dword [edi + 0x60]
test esi, esi
jns 0x404214
mov eax, ecx
test ecx, ecx
jns 0x404214
test edx, edx
jns 0x404214
mov dword [edi + 0x70], 1
movss xmm0, dword [edi + 0x6c]
push edx
push eax
mov eax, dword [edi + 0x1c]
push ebx
push dword [edi + 0x70]
push ecx
movss dword [esp], xmm0
push esi
push dword [edi + 0x80]
push dword [edi + 0x84]
call eax
add esp, 0x20
xorps xmm0, xmm0
mov edx, 0xe88
mov ecx, 1
movups xmmword [ebp - 0x3b0], xmm0
movups xmmword [ebp - 0x3a0], xmm0
call fcn.0042f2c0
cmp dword [edi + 0x70], 0
mov esi, eax
movsd xmm5, qword [0x4fdb50]
mov dword [ebp - 0x394], esi
jle 0x4048e8
mov ebx, dword [edi + 0x34]
mov ecx, dword [edi + 0x30]
mov dword [ebp - 0x330], ecx
test ebx, ebx
jle 0x4048c0
movss xmm0, dword [edi + 0x6c]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x4fd678]
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [0x4fd8c8]
jb 0x4042ad
movss xmm0, dword [0x4fd8c4]
cvtps2pd xmm2, xmm0
lea eax, [esi + 0xd70]
mov edx, ebx
push eax
push 0
movss dword [esi + 0xd80], xmm0
call fcn.0043c0a0
add esp, 8
mov dword [esi + 0xd6c], eax
test eax, eax
je 0x4048c0
mov ecx, dword [ebp - 0x394]
movaps xmm2, xmm5
mov eax, dword [ecx + 0xd6c]
mov dword [ebp - 0x3a8], ebx
mov dword [ebp - 0x3b0], 0
mov dword [ebp - 0x340], eax
mov eax, dword [ebp - 0x330]
mov dword [ebp - 0x3ac], eax
cmp dword [ecx + 0xdc8], 0
movsd xmm4, qword [ecx + 0xd70]
unpcklpd xmm4, xmm4
mov ebx, dword [ebp - 0x340]
movaps xmm3, xmm4
cvttsd2si edx, xmm4
mov dword [ecx + 0xda8], 1
mov dword [ecx + 0xdac], 1
movsd qword [ecx + 0xdb8], xmm4
movd xmm0, edx
cvtdq2pd xmm0, xmm0
subsd xmm3, xmm0
subsd xmm2, xmm3
jne 0x404378
mov eax, dword [ebx + 0x7c]
movaps xmm1, xmm3
movaps xmm0, xmm2
mulsd xmm1, qword [eax + edx*8 + 8]
mulsd xmm0, qword [eax + edx*8]
addsd xmm1, xmm0
movsd qword [ecx + 0xdc0], xmm1
mov eax, dword [ebx + 0xc]
movss xmm1, dword [eax + edx*4 + 4]
movss xmm0, dword [eax + edx*4]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm3
mulsd xmm0, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [ecx + 0xdf0], xmm0
mov eax, dword [ebx + 0x74]
movd xmm1, dword [eax + edx*4 + 4]
movd xmm0, dword [eax + edx*4]
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm3
mulsd xmm0, xmm2
addsd xmm1, xmm0
movsd qword [ecx + 0xdd0], xmm1
mov eax, dword [ebx + 0x78]
movd xmm1, dword [eax + edx*4 + 4]
movd xmm0, dword [eax + edx*4]
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm3
mulsd xmm0, xmm2
movsd qword [ecx + 0xde8], xmm4
addsd xmm1, xmm0
movsd xmm0, qword [0x4fde10]
movsd qword [ecx + 0xde0], xmm0
movsd qword [ecx + 0xdd8], xmm1
movups xmmword [ecx + 0xdf8], xmm4
movups xmmword [ecx + 0xe08], xmm4
movups xmmword [ecx + 0xe18], xmm4
movups xmmword [ecx + 0xe28], xmm4
movups xmmword [ecx + 0xe38], xmm4
movups xmmword [ecx + 0xe48], xmm4
movups xmmword [ecx + 0xe58], xmm4
movups xmmword [ecx + 0xe68], xmm4
mov dword [esi + 0xd84], 0
mov dword [esi + 0xdb0], 1
cmp dword [edi + 0x68], 0
jg 0x40446c
cmp dword [edi + 0x64], 0
jle 0x4047bc
xorps xmm0, xmm0
mov edx, 0xe88
mov ecx, 1
movups xmmword [ebp - 0x380], xmm0
movups xmmword [ebp - 0x370], xmm0
call fcn.0042f2c0
mov ebx, dword [edi + 0x34]
mov esi, eax
mov ecx, dword [edi + 0x30]
mov dword [ebp - 0x364], esi
mov dword [ebp - 0x330], ecx
test ebx, ebx
jle 0x40467c
movss xmm0, dword [edi + 0x6c]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x4fd678]
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [0x4fd8c8]
jb 0x4044cd
movss xmm0, dword [0x4fd8c4]
cvtps2pd xmm2, xmm0
lea eax, [esi + 0xd70]
mov edx, ebx
push eax
push 0
movss dword [esi + 0xd80], xmm0
call fcn.0043c0a0
mov edx, eax
add esp, 8
mov dword [esi + 0xd6c], edx
test edx, edx
je 0x40467c
cmp dword [esi + 0xdc8], 0
movsd xmm4, qword [esi + 0xd70]
movsd xmm2, qword [0x4fdb50]
movaps xmm3, xmm4
mov eax, dword [ebp - 0x330]
cvttsd2si ecx, xmm4
mov dword [ebp - 0x380], 0
mov dword [ebp - 0x37c], eax
mov dword [ebp - 0x378], ebx
mov dword [esi + 0xda8], 1
mov dword [esi + 0xdac], 1
movsd qword [esi + 0xdb8], xmm4
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
subsd xmm3, xmm0
subsd xmm2, xmm3
jne 0x404583
mov eax, dword [edx + 0x7c]
movaps xmm1, xmm3
movaps xmm0, xmm2
mulsd xmm1, qword [eax + ecx*8 + 8]
mulsd xmm0, qword [eax + ecx*8]
addsd xmm1, xmm0
movsd qword [esi + 0xdc0], xmm1
mov eax, dword [edx + 0xc]
movss xmm1, dword [eax + ecx*4 + 4]
movss xmm0, dword [eax + ecx*4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [esi + 0xdf0], xmm0
mov eax, dword [edx + 0x74]
movd xmm1, dword [eax + ecx*4 + 4]
movd xmm0, dword [eax + ecx*4]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
movsd qword [esi + 0xdd0], xmm1
mov eax, dword [edx + 0x78]
movd xmm1, dword [eax + ecx*4 + 4]
movd xmm0, dword [eax + ecx*4]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm1, xmm3
movsd qword [esi + 0xde8], xmm4
addsd xmm1, xmm0
movsd xmm0, qword [0x4fde10]
movsd qword [esi + 0xde0], xmm0
movsd qword [esi + 0xdd8], xmm1
movsd qword [esi + 0xdf8], xmm4
movsd xmm0, qword [esi + 0xd70]
unpcklpd xmm0, xmm0
movups xmmword [esi + 0xe00], xmm0
movups xmmword [esi + 0xe10], xmm0
movups xmmword [esi + 0xe20], xmm0
movups xmmword [esi + 0xe30], xmm0
movups xmmword [esi + 0xe40], xmm0
movups xmmword [esi + 0xe50], xmm0
movups xmmword [esi + 0xe60], xmm0
movsd qword [esi + 0xe70], xmm0
mov dword [esi + 0xd84], 0
mov dword [esi + 0xdb0], 1
lea ecx, [ebp - 0x380]
call fcn.0043c230
mov esi, dword [ebp - 0x370]
lea ecx, [ebp - 0x380]
call fcn.00423420
movsd xmm0, qword [0x4fdb80]
mov eax, 0x10624dd3
movsd xmm1, qword [0x4fda20]
mov ebx, dword [edi + 0x68]
imul esi
movsd qword [ebp - 0x10], xmm0
movsd qword [ebp - 0x20], xmm1
lea eax, [esi + esi]
mov dword [ebp - 0x28], ebx
sar edx, 6
mov ecx, edx
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x64]
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x394]
mov dword [ebp - 0x18], ecx
cmp dword [edx + 0xd68], 0
jne 0x4048b9
mov dword [ebp - 0x32c], eax
mov esi, eax
mov dword [ebp - 0x33c], eax
test eax, eax
jle 0x404721
mov dword [ebp - 0x32c], eax
mov dword [ebp - 0x33c], eax
test ecx, ecx
jle 0x404721
mov dword [ebp - 0x32c], eax
mov dword [ebp - 0x33c], eax
cmp eax, ecx
jg 0x4048b9
test ebx, ebx
jle 0x40473d
mov esi, dword [ebp - 0x32c]
test ecx, ecx
jle 0x40473d
mov esi, dword [ebp - 0x33c]
cmp ebx, ecx
jl 0x4048b9
test esi, esi
jle 0x40474d
test ebx, ebx
jle 0x40474d
cmp esi, ebx
jg 0x4048b9
mov esi, dword [ebp - 0x24]
test esi, esi
js 0x4048b9
imul eax, eax, 0x3e8
push str.Set_optional_hard_quality_restrictions_n
push 2
mov dword [edx + 0xd84], 1
movsd qword [edx + 0xd90], xmm0
mov dword [edx + 0xd88], eax
imul eax, ebx, 0x3e8
mov dword [edx + 0xd9c], esi
movsd qword [edx + 0xda0], xmm1
mov dword [edx + 0xd98], eax
imul eax, ecx, 0x3e8
mov dword [edx + 0xd8c], eax
call fcn.0043f858
add esp, 4
push eax
call fcn.00401040
add esp, 8
movsd xmm5, qword [0x4fdb50]
cmp dword [edi + 0x5c], 0
je 0x404939
cmp dword [edi + 0x60], 0
jge 0x404952
mov ecx, dword [ebp - 0x394]
cmp dword [ecx + 0xd68], 0
jne 0x404952
mov eax, dword [ecx + 0xd84]
mov dword [ebp - 0x58], eax
mov eax, 0x10624dd3
imul dword [ecx + 0xd88]
movsd xmm1, qword [ecx + 0xd90]
movsd xmm0, qword [ecx + 0xda0]
movsd qword [ebp - 0x38], xmm1
mov eax, 0x10624dd3
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
imul dword [ecx + 0xd98]
mov dword [ebp - 0x54], ebx
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ecx + 0xd9c]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], edx
test ebx, ebx
jle 0x40484a
test esi, esi
jle 0x40484a
cmp ebx, esi
jg 0x404952
xorps xmm2, xmm2
comisd xmm2, xmm1
jae 0x404952
test edx, edx
js 0x404952
comisd xmm2, xmm0
ja 0x404952
comisd xmm0, xmm5
ja 0x404952
mov eax, dword [ebp - 0x58]
mov dword [ecx + 0xd84], eax
imul eax, ebx, 0x3e8
mov dword [ecx + 0xd8c], 0xfffffc18
movsd qword [ecx + 0xd90], xmm1
mov dword [ecx + 0xd9c], edx
movsd qword [ecx + 0xda0], xmm0
mov dword [ecx + 0xd88], eax
imul eax, esi, 0x3e8
mov dword [ecx + 0xd98], eax
jmp 0x404952
push str.Failed_to_set_bitrate_min_max_in_quality_mode_n
jmp 0x4048c5
push str.Mode_initialisation_failed:_invalid_parameters_for_quality_n
push 2
call fcn.0043f858
add esp, 4
push eax
call fcn.00401040
add esp, 8
lea ecx, [ebp - 0x3b0]
call fcn.00423420
jmp 0x4041aa
mov eax, dword [edi + 0x64]
test eax, eax
jle 0x4048f7
imul edx, eax, 0x3e8
jmp 0x4048fa
or edx, 0xffffffff
mov eax, dword [edi + 0x68]
test eax, eax
jle 0x404909
imul ecx, eax, 0x3e8
jmp 0x40490c
or ecx, 0xffffffff
imul eax, dword [edi + 0x60], 0x3e8
push edx
mov edx, dword [edi + 0x30]
push eax
push ecx
push dword [edi + 0x34]
lea ecx, [ebp - 0x3b0]
call fcn.0043d500
add esp, 0x10
test eax, eax
je 0x4047b4
push str.Mode_initialisation_failed:_invalid_parameters_for_bitrate_n
jmp 0x4048c5
mov eax, dword [ebp - 0x394]
cmp dword [eax + 0xd68], 0
jne 0x404952
mov dword [eax + 0xd84], 0
mov edx, dword [edi + 0x78]
lea eax, [ebp - 0x3b0]
mov ecx, dword [edi + 0x74]
push eax
call fcn.00403830
add esp, 4
lea ecx, [ebp - 0x3b0]
call fcn.0043c230
lea edx, [ebp - 0x3b0]
lea ecx, [ebp - 0x4d0]
call fcn.004220e0
push 0x70
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.0043eb50
add esp, 0xc
mov dword [ebp - 0x3d4], 0
cmp dword [ebp - 0x4d0], 0
lea eax, [ebp - 0x4d0]
mov dword [ebp - 0x3e0], eax
mov dword [ebp - 0x3dc], 0
je 0x404a3a
mov edx, 0x48
lea ecx, [edx - 0x47]
call fcn.0042f2c0
mov edi, eax
xor ebx, ebx
mov dword [ebp - 0x3b8], edi
mov dword [edi + 4], 0xc61c3c00
nop dword [eax]
cmp ebx, 7
jne 0x4049ed
lea esi, [ebp - 0x41c]
jmp 0x4049fc
mov edx, 0x14
lea ecx, [edx - 0x13]
call fcn.0042f2c0
mov esi, eax
mov ecx, ebx
mov eax, edi
xorps xmm0, xmm0
push 0x100
mov dword [eax + ecx*4 + 0xc], esi
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
call fcn.004418e9
inc ebx
mov dword [esi + 8], eax
add esp, 4
mov dword [esi + 0xc], eax
mov byte [eax], 0
mov dword [esi + 0x10], 0x100
cmp ebx, 0xf
jl 0x4049e0
mov edi, dword [ebp - 0x344]
mov edx, dword [edi + 4]
lea ecx, [ebp - 0x1c0]
call fcn.004212d0
cmp dword [edi + 0x54], 0
je 0x404a5c
mov edx, dword [edi + 8]
lea ecx, [ebp - 0x328]
call fcn.004212d0
cmp dword [edi + 0x90], 0
je 0x404a73
mov edx, dword [edi + 0xc]
lea ecx, [ebp - 0x668]
call fcn.004212d0
cmp dword [edi + 0x54], 0
je 0x404ba7
xorps xmm0, xmm0
push 1
push 0x40
movups xmmword [ebp - 0x440], xmm0
movups xmmword [ebp - 0x430], xmm0
call fcn.004418d9
mov esi, eax
add esp, 8
test esi, esi
je 0x404b59
mov dword [esi], 0
lea edx, [ebp - 0x334]
mov dword [esi + 4], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
push dword [ebp - 0x42c]
mov dword [esi], 0x68736966
push dword [ebp - 0x430]
mov dword [esi + 4], 0x646165
mov dword [esi + 8], 3
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0x3e8
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
push 0
push ecx
mov dword [esi + 0x24], 0x3e8
lea ecx, [ebp - 0x328]
mov dword [esi + 0x28], 0
mov dword [ebp - 0x334], esi
mov dword [ebp - 0x330], 0x40
call fcn.004215a0
push esi
call fcn.004418e4
add esp, 0x14
mov edx, dword [edi + 0x7c]
lea ecx, [ebp - 0x328]
call fcn.0040a5f0
mov dword [ebp - 0x338], eax
test eax, eax
je 0x404ba7
mov ecx, dword [edi + 0x20]
push str.Failed_writing_fishead_packet_to_output_stream_n
call ecx
mov eax, dword [ebp - 0x34c]
add esp, 4
mov ebx, dword [ebp - 0x35c]
mov esi, dword [ebp - 0x360]
mov dword [ebp - 0x354], eax
mov eax, dword [ebp - 0x350]
mov dword [ebp - 0x358], eax
jmp 0x4052f5
mov edx, dword [edi]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x380]
push eax
lea ecx, [ebp - 0x4d0]
call fcn.004239c0
mov eax, dword [ebp - 0x380]
lea edx, [ebp - 0x334]
add esp, 0xc
mov dword [ebp - 0x334], eax
mov eax, dword [ebp - 0x37c]
mov dword [ebp - 0x330], eax
push dword [ebp - 0x36c]
push dword [ebp - 0x370]
push dword [ebp - 0x374]
push ecx
lea ecx, [ebp - 0x1c0]
call fcn.004215a0
add esp, 0xc
lea edx, [ebp - 0x370]
lea ecx, [ebp - 0x1c0]
push 1
call fcn.00421750
add esp, 8
test eax, eax
je 0x404c7c
nop
mov esi, dword [edi + 0x7c]
mov ebx, dword [ebp - 0x36c]
push esi
push ebx
push 1
push dword [ebp - 0x370]
call fcn.00443500
push esi
mov esi, dword [ebp - 0x364]
mov edi, eax
push esi
push 1
push dword [ebp - 0x368]
call fcn.00443500
add eax, edi
lea ecx, [esi + ebx]
add esp, 0x20
cmp eax, ecx
jne 0x404ccd
push ecx
push 1
lea edx, [ebp - 0x370]
lea ecx, [ebp - 0x1c0]
call fcn.00421750
mov edi, dword [ebp - 0x344]
add esp, 8
test eax, eax
jne 0x404c20
cmp dword [edi + 0x54], 0
je 0x404e34
push 0x30
lea eax, [ebp - 0x500]
push 0
push eax
call fcn.0043eb50
mov eax, dword [edi + 4]
add esp, 0xc
mov ecx, dword [ebp - 0x4d8]
mov esi, dword [ebp - 0x4d4]
mov dword [ebp - 0x330], eax
mov eax, dword [edi + 0x34]
cdq
mov dword [ebp - 0x340], eax
mov dword [ebp - 0x33c], edx
test ecx, ecx
jne 0x404cec
push 1
push 0x1d
call fcn.004418d9
jmp 0x404cf6
mov edi, dword [ebp - 0x344]
push str.Failed_writing_header_to_output_stream_n
mov eax, dword [edi + 0x20]
call eax
mov dword [ebp - 0x338], 1
jmp 0x404b7b
lea eax, [esi + 0x1d]
push eax
push ecx
call fcn.00441e56
add esp, 8
mov ebx, eax
push str.audio_vorbis
push str.Content_Type
push str._s:__s_r_n
lea eax, [esi + ebx]
push 0x1d
push eax
call fcn.0040a5b0
add esp, 0x14
lea eax, [esi + 0x1c]
mov dword [ebp - 0x32c], eax
xorps xmm0, xmm0
add eax, 0x34
movups xmmword [ebp - 0x460], xmm0
push 1
push eax
movups xmmword [ebp - 0x450], xmm0
call fcn.004418d9
mov esi, eax
add esp, 8
test esi, esi
je 0x404e0d
mov eax, dword [ebp - 0x32c]
add eax, 0x34
push eax
push 0
push esi
call fcn.0043eb50
mov eax, dword [ebp - 0x330]
add esp, 0xc
mov dword [esi], 0x62736966
mov dword [esi + 4], 0x656e6f
mov dword [esi + 8], 0x2c
push dword [ebp - 0x32c]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x340]
mov dword [esi + 0x10], 3
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x33c]
mov dword [esi + 0x18], eax
lea eax, [esi + 0x34]
mov dword [esi + 0x1c], 1
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
push ebx
mov dword [esi + 0x2c], 2
push eax
mov byte [esi + 0x30], 0
call fcn.0043f210
mov ecx, dword [ebp - 0x32c]
lea edx, [ebp - 0x334]
add esp, 0xc
mov dword [ebp - 0x334], esi
lea eax, [ecx + 0x34]
push dword [ebp - 0x44c]
mov dword [ebp - 0x330], eax
push dword [ebp - 0x450]
push 0
push ecx
lea ecx, [ebp - 0x328]
call fcn.004215a0
push esi
call fcn.004418e4
add esp, 0x14
mov edx, dword [edi + 0x7c]
lea ecx, [ebp - 0x328]
call fcn.0040a5f0
mov dword [ebp - 0x338], eax
test eax, eax
je 0x404e34
mov eax, dword [edi + 0x20]
push str.Failed_writing_fisbone_header_packet_to_output_stream_n
call eax
jmp 0x404b7b
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x50]
lea edx, [ebp - 0x334]
push dword [ebp - 0x40]
mov dword [ebp - 0x334], eax
push dword [ebp - 0x44]
mov eax, dword [ebp - 0x4c]
push ecx
lea ecx, [ebp - 0x1c0]
mov dword [ebp - 0x330], eax
call fcn.004215a0
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x334]
add esp, 0x10
mov dword [ebp - 0x334], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x330], eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x1c0]
call fcn.004215a0
add esp, 0xc
lea edx, [ebp - 0x370]
lea ecx, [ebp - 0x1c0]
push 1
call fcn.00421750
add esp, 8
test eax, eax
je 0x404f10
nop
mov esi, dword [edi + 0x7c]
mov ebx, dword [ebp - 0x36c]
push esi
push ebx
push 1
push dword [ebp - 0x370]
call fcn.00443500
push esi
mov esi, dword [ebp - 0x364]
mov edi, eax
push esi
push 1
push dword [ebp - 0x368]
call fcn.00443500
add eax, edi
lea ecx, [esi + ebx]
add esp, 0x20
cmp eax, ecx
jne 0x404ccd
push ecx
push 1
lea edx, [ebp - 0x370]
lea ecx, [ebp - 0x1c0]
call fcn.00421750
mov edi, dword [ebp - 0x344]
add esp, 8
test eax, eax
jne 0x404eb0
cmp dword [edi + 0x54], 0
je 0x404f81
xorps xmm0, xmm0
lea edx, [ebp - 0x334]
psrldq xmm0, 4
xorps xmm1, xmm1
movd dword [ebp - 0x330], xmm0
xorps xmm0, xmm0
psrldq xmm0, 4
movd eax, xmm0
movd dword [ebp - 0x334], xmm1
push eax
movd eax, xmm1
push eax
push 1
push ecx
lea ecx, [ebp - 0x328]
call fcn.004215a0
mov edx, dword [edi + 0x7c]
lea ecx, [ebp - 0x328]
add esp, 0x10
call fcn.0040a5f0
mov dword [ebp - 0x338], eax
test eax, eax
je 0x404f81
mov eax, dword [edi + 0x20]
push str.Failed_writing_skeleton_eos_packet_to_output_stream_n
call eax
jmp 0x404b7b
mov eax, dword [ebp - 0x34c]
mov ebx, dword [ebp - 0x35c]
mov esi, dword [ebp - 0x360]
mov dword [ebp - 0x354], eax
mov eax, dword [ebp - 0x350]
mov dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x38c]
mov dword [ebp - 0x33c], eax
mov eax, dword [ebp - 0x390]
mov dword [ebp - 0x340], 0
mov dword [ebp - 0x32c], ebx
mov dword [ebp - 0x34c], esi
mov dword [ebp - 0x338], eax
nop dword [eax]
nop word [eax + eax]
mov edx, 0xc00
lea ecx, [ebp - 0x4d0]
call fcn.00422860
push 0xc00
push eax
push dword [edi + 0x24]
mov eax, dword [edi + 0x10]
call eax
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x330], ecx
test ecx, ecx
je 0x4050b4
mov eax, ecx
cdq
add dword [ebp - 0x358], eax
adc dword [ebp - 0x354], edx
cmp dword [ebp - 0x33c], 0
jl 0x4050b4
jg 0x405038
cmp dword [ebp - 0x338], 0x28
jb 0x4050b4
xorps xmm0, xmm0
push 0
movlpd qword [ebp - 0x390], xmm0
call fcn.004492c3
mov ecx, dword [ebp - 0x384]
add esp, 4
sub eax, dword [ecx]
sbb edx, dword [ecx + 4]
mov ecx, eax
or ecx, edx
je 0x405067
mov ecx, eax
call fcn.0045fac0
jmp 0x40506f
movsd xmm0, qword [0x4fdb50]
mov eax, dword [edi + 0x14]
sub esp, 8
movsd qword [esp], xmm0
push dword [ebp - 0x354]
push dword [ebp - 0x358]
push 0
push dword [edi + 0x28]
push dword [edi + 0x80]
call eax
mov eax, dword [ebp - 0x38c]
add esp, 0x1c
mov ecx, dword [ebp - 0x330]
mov dword [ebp - 0x33c], eax
mov eax, dword [ebp - 0x390]
mov dword [ebp - 0x338], eax
mov edx, ecx
lea ecx, [ebp - 0x4d0]
call fcn.00422a40
lea edx, [ebp - 0x420]
lea ecx, [ebp - 0x4d0]
call fcn.00422bc0
cmp eax, 1
jne 0x4052de
nop dword [eax + eax]
mov edx, dword [ebp - 0x3b8]
xorps xmm0, xmm0
movups xmmword [ebp - 0x3c8], xmm0
add edx, 0xc
mov edi, 0xf
mov ecx, dword [edx]
cmp dword [ecx + 0xc], 0
je 0x405116
mov eax, dword [ecx + 8]
mov dword [ecx + 0xc], eax
mov byte [eax], 0
mov dword [ecx], 0
mov dword [ecx + 4], 0
add edx, 4
sub edi, 1
jne 0x4050f8
lea eax, [ebp - 0x420]
push eax
call fcn.004357e0
add esp, 4
lea ecx, [ebp - 0x420]
call fcn.00423e30
nop dword [eax + eax]
mov ecx, dword [ebp - 0x468]
mov edx, 7
mov eax, dword [ecx + 0x78]
test eax, eax
je 0x4052be
mov esi, dword [eax + 0x68]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x68]
add eax, 0x50
je 0x40516c
cmp dword [eax], 0
je 0x40516c
mov edx, dword [ecx + 0x7c]
mov ecx, dword [esi + edx*4 + 0xc]
mov ebx, dword [ebp - 0x468]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 8]
add eax, 7
cdq
and edx, 7
mov dword [ebp - 0x360], edi
add eax, edx
mov edx, dword [ebp - 0x468]
sar eax, 3
add eax, dword [ecx]
mov dword [ebp - 0x35c], eax
mov ecx, dword [edx + 0x78]
mov edx, dword [ecx + 0x30]
mov esi, dword [ecx + 0x2c]
mov ecx, dword [ecx + 0x34]
push ecx
push edx
push esi
push ecx
lea edx, [ebp - 0x360]
mov dword [ebx + 0x78], 0
lea ecx, [ebp - 0x1c0]
call fcn.004215a0
mov ebx, dword [ebp - 0x32c]
add esp, 0x10
add dword [ebp - 0x338], 1
mov esi, dword [ebp - 0x34c]
adc dword [ebp - 0x33c], 0
cmp dword [ebp - 0x340], 0
jne 0x405140
nop
xor eax, eax
cmp dword [ebp - 0x1c0], eax
je 0x405140
cmp dword [ebp - 0x78], eax
je 0x40520d
cmp dword [ebp - 0x1a4], eax
jne 0x40521a
jmp 0x40521f
cmp dword [ebp - 0x1a4], eax
je 0x40521f
cmp dword [ebp - 0x74], eax
jne 0x40521f
mov eax, 1
push ecx
push eax
lea edx, [ebp - 0x370]
lea ecx, [ebp - 0x1c0]
call fcn.00421750
add esp, 8
test eax, eax
je 0x405140
mov eax, dword [ebp - 0x344]
mov ebx, dword [ebp - 0x36c]
mov esi, dword [eax + 0x7c]
push esi
push ebx
push 1
push dword [ebp - 0x370]
call fcn.00443500
push esi
mov esi, dword [ebp - 0x364]
mov edi, eax
push esi
push 1
push dword [ebp - 0x368]
call fcn.00443500
add eax, edi
lea ecx, [esi + ebx]
add esp, 0x20
cmp eax, ecx
jne 0x4054b6
mov esi, dword [ebp - 0x34c]
mov ebx, dword [ebp - 0x32c]
cdq
add esi, eax
mov eax, dword [ebp - 0x370]
mov dword [ebp - 0x34c], esi
adc ebx, edx
mov dword [ebp - 0x32c], ebx
test byte [eax + 5], 4
je 0x4051f0
mov dword [ebp - 0x340], 1
jmp 0x405140
lea edx, [ebp - 0x420]
lea ecx, [ebp - 0x4d0]
call fcn.00422bc0
cmp eax, 1
je 0x4050e0
mov edi, dword [ebp - 0x344]
cmp dword [ebp - 0x340], 0
je 0x404fe0
mov dword [ebp - 0x338], 0
cmp dword [edi + 0x54], 0
je 0x40534a
mov eax, dword [ebp - 0x328]
test eax, eax
je 0x40530e
push eax
call fcn.004418e4
add esp, 4
mov eax, dword [ebp - 0x318]
test eax, eax
je 0x405321
push eax
call fcn.004418e4
add esp, 4
mov eax, dword [ebp - 0x314]
test eax, eax
je 0x405334
push eax
call fcn.004418e4
add esp, 4
push 0x168
lea eax, [ebp - 0x328]
push 0
push eax
call fcn.0043eb50
add esp, 0xc
mov eax, dword [ebp - 0x1c0]
test eax, eax
je 0x40535d
push eax
call fcn.004418e4
add esp, 4
mov eax, dword [ebp - 0x1b0]
test eax, eax
je 0x405370
push eax
call fcn.004418e4
add esp, 4
mov eax, dword [ebp - 0x1ac]
test eax, eax
je 0x405383
push eax
call fcn.004418e4
add esp, 4
push 0x168
lea eax, [ebp - 0x1c0]
push 0
push eax
call fcn.0043eb50
mov eax, dword [ebp - 0x3b8]
lea ecx, [ebp - 0x420]
add esp, 0xc
mov dword [ebp - 0x330], eax
call fcn.00421a50
mov eax, dword [ebp - 0x3dc]
test eax, eax
je 0x4053c3
push eax
call fcn.0044b15a
add esp, 4
mov eax, dword [ebp - 0x330]
test eax, eax
je 0x405469
xor ecx, ecx
add eax, 0xc
mov dword [ebp - 0x340], ecx
mov dword [ebp - 0x32c], eax
mov edx, dword [eax]
mov dword [ebp - 0x34c], edx
mov edi, dword [edx + 8]
mov dword [ebp - 0x33c], edi
test edi, edi
je 0x405412
push edi
call fcn.004418e4
mov eax, dword [ebp - 0x32c]
add esp, 4
mov ecx, dword [ebp - 0x340]
mov edx, dword [ebp - 0x34c]
xorps xmm0, xmm0
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
cmp ecx, 7
je 0x40543f
mov edx, dword [eax]
test edx, edx
je 0x40543f
push edx
call fcn.0044b15a
mov eax, dword [ebp - 0x32c]
add esp, 4
mov ecx, dword [ebp - 0x340]
inc ecx
add eax, 4
mov dword [ebp - 0x340], ecx
mov dword [ebp - 0x32c], eax
cmp ecx, 0xf
jl 0x4053e2
mov eax, dword [ebp - 0x330]
push eax
call fcn.0044b15a
mov edi, dword [ebp - 0x344]
add esp, 4
push 0x70
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.0043eb50
add esp, 0xc
lea ecx, [ebp - 0x4d0]
call fcn.00422380
lea ecx, [ebp - 0x3b0]
call fcn.00423420
push 0
call fcn.004492c3
mov ecx, dword [ebp - 0x384]
add esp, 4
sub eax, dword [ecx]
sbb edx, dword [ecx + 4]
mov ecx, eax
or ecx, edx
je 0x4054e4
mov ecx, eax
call fcn.0045fac0
jmp 0x4054ec
mov edi, dword [ebp - 0x344]
push str.Failed_writing_data_to_output_stream_n
mov eax, dword [edi + 0x20]
call eax
mov ebx, dword [ebp - 0x32c]
add esp, 4
mov esi, dword [ebp - 0x34c]
mov dword [ebp - 0x338], 1
jmp 0x4052f5
movsd xmm0, qword [0x4fdb50]
mov eax, dword [edi + 0x18]
push ebx
push esi
push dword [ebp - 0x354]
push dword [ebp - 0x358]
push dword [edi + 0x34]
sub esp, 8
movsd qword [esp], xmm0
push dword [edi + 0x80]
call eax
push dword [ebp - 0x384]
call fcn.004418e4
mov ecx, dword [ebp - 4]
add esp, 0x24
mov eax, dword [ebp - 0x338]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.0043d9c9
mov esp, ebp
pop ebp
ret