Function at 0x406900
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x848
mov ecx, dword [edi + 4]
push ebx
xor ebx, ebx
cmp ecx, ebx
je 0x406930
mov eax, dword [edi]
cmp eax, ebx
je 0x406930
push eax
push ecx
call dword [sym.imp.NSCRT.dll__stricmp]
test eax, eax
pop ecx
pop ecx
jne 0x406930
mov dword [edi + 0x2c], str.Source_file_and_destination_file_are_identical
jmp 0x406961
cmp dword [0x4835b0], 1
jge 0x406968
mov eax, dword [edi + 8]
cmp eax, 0x6c33504d
jne 0x40694c
mov dword [edi + 0x2c], str.MP3_encoding_not_enabled____please_purchase_Winamp_Pro
jmp 0x406961
cmp eax, 0x48434141
je 0x40695a
cmp eax, 0x4841344d
jne 0x406968
mov dword [edi + 0x2c], str.aacPlus_High_Bitrate_encoding_not_enabled____please_purchase_Winamp_Pro
xor eax, eax
jmp 0x406ad5
or dword [ebp - 0xc], 0xffffffff
fldz
push esi
fstp dword [ebp - 0x14]
push dword [edi]
lea esi, [ebp - 0x848]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], ebx
call fcn.004060e3
lea ecx, [ebp - 0x20]
push ecx
mov ecx, dword [0x47b748]
push eax
call fcn.00455fbe
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
cmp eax, ebx
jne 0x4069ab
or eax, 0xffffffff
cmp dword [ebp - 4], ebx
mov dword [edi + 0x34], eax
jne 0x4069ea
mov eax, dword [ebp - 8]
dec eax
dec eax
je 0x4069e1
dec eax
je 0x4069d8
dec eax
dec eax
je 0x4069cf
mov dword [edi + 0x2c], str.Error_opening_file_for_decoding
xor eax, eax
jmp 0x406ad4
mov dword [edi + 0x2c], str.Cannot_decode_DRM_file
jmp 0x4069c8
mov dword [edi + 0x2c], str.Input_Plugin_doesnt_support_transcoding
jmp 0x4069c8
mov dword [edi + 0x2c], str.Cant_find_decoder
jmp 0x4069c8
push 0x100
lea eax, [edi + 0x40]
push ebx
push eax
call sub.NSCRT.dll_memset
lea esi, [edi + 8]
add esp, 0xc
cmp dword [esi], 0x204d4350
je 0x406a56
xor eax, eax
cmp dword [edi + 0x20], 0x20494e49
jne 0x406a15
mov eax, dword [edi + 0x24]
push eax
push ebx
push ebx
lea eax, [ebp - 0x24]
push eax
push 1
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
call fcn.0040661e
add esp, 0x20
cmp eax, ebx
jne 0x406a4d
push dword [ebp - 4]
mov ecx, dword [0x47b748]
call fcn.00456205
mov dword [edi + 0x2c], str.Cant_open_encoder
jmp 0x4069c8
mov dword [edi + 0x54], eax
mov eax, dword [ebp - 0x24]
mov dword [edi + 0x58], eax
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 4]
push ebx
push 0x80
push 2
push ebx
mov dword [edi + 0x5c], eax
mov eax, dword [ebp - 0x1c]
push 1
push 0x40000000
push dword [edi + 4]
mov dword [edi + 0x60], eax
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x40], esi
mov dword [edi + 0x64], eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
jne 0x406ab8
mov ecx, dword [0x47b748]
push esi
call fcn.00456205
mov ecx, dword [edi + 0x54]
cmp ecx, ebx
je 0x406aa9
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov dword [edi + 0x54], ebx
mov dword [edi + 0x2c], str.Cant_open_destination_file
jmp 0x4069c8
mov dword [edi + 0x50], eax
lea eax, [ebp - 0x28]
push eax
push ebx
push edi
push 0x406728
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [edi + 0x4c], eax
xor eax, eax
inc eax
pop esi
pop ebx
leave
ret