Function at 0x402a40
Capabilities:
Delete file

Disassembly:
sub esp, 0x790
mov eax, dword [0x4bacc0]
xor eax, esp
mov dword [esp + 0x78c], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x7a0]
push edi
push 0x7f02
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
lea edi, [esi + 0x884]
push edi
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push edi
call fcn.004320b0
test eax, eax
jne 0x402d2b
mov eax, dword [0x4dec94]
mov ecx, dword [0x4dec90]
mov edx, dword [0x4dec8c]
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push eax
push ecx
push edx
push 0x4dec98
lea eax, [esp + 0x1ac]
push str._s__d._d._03d
push eax
call ebx
add esp, 0x18
lea ecx, [esp + 0x19c]
push ecx
push str.Version
push edi
call fcn.00431d00
test eax, eax
jne 0x402d2b
mov edx, dword [esi + 4]
push edx
lea eax, [esp + 0x1a0]
push str._02d__Zulu_Audio_Document_
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0x19c]
push ecx
push str.Type
push edi
call fcn.00431d00
test eax, eax
jne 0x402d2b
mov edx, dword [esi + 0x1a0]
push 0x53c
push edx
call fcn.00474a20
add esp, 8
push eax
push str.RecType
push edi
call fcn.00431fb0
test eax, eax
jne 0x402d2b
mov ecx, dword [esi + 0x1a0]
mov ebx, dword [sym.imp.USER32.dll_GetDlgItemTextA]
push 0x10
lea eax, [esp + 0x1a0]
push eax
push 0x4ce
push ecx
call ebx
lea edx, [esp + 0x19c]
push edx
push 0x49e644
push edi
call fcn.00431d00
test eax, eax
jne 0x402d2b
mov ecx, dword [esi + 0x1a0]
push 0x61
lea eax, [esp + 0x1a0]
push eax
push 0x4d0
push ecx
call ebx
lea edx, [esp + 0x19c]
push edx
push str.CDTextDiscTitle
push edi
call fcn.00431d00
test eax, eax
jne 0x402d2b
mov ecx, dword [esi + 0x1a0]
push 0x41
lea eax, [esp + 0x1a0]
push eax
push 0x4d1
push ecx
call ebx
lea edx, [esp + 0x19c]
push edx
push str.CDTextDiscPerformer
push edi
call fcn.00431d00
test eax, eax
jne 0x402d2b
mov eax, dword [esi + 0x1a0]
push 0x4d6
push eax
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
push eax
push str.Pre_emphasis
push edi
call fcn.00431f40
test eax, eax
jne 0x402d2b
push esi
call fcn.00462de0
add esp, 4
test eax, eax
je 0x402d2b
mov ecx, dword [esi + 0x19c]
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x1004
push ecx
call ebp
sub eax, 1
push eax
push str.NumTracks
push edi
call fcn.00431f40
test eax, eax
jne 0x402d2b
mov edx, dword [esi + 0x19c]
xor ebx, ebx
push ebx
push ebx
push 0x1004
push edx
call ebp
sub eax, 1
test eax, eax
jle 0x402d21
lea esp, [esp]
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x120]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0x5b4]
push eax
push ebx
push esi
call fcn.00401ad0
lea ecx, [esp + 0xc0]
push ecx
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x144]
push edx
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x68]
push eax
push ecx
push edx
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x5d8]
push ecx
lea edx, [esp + 0x1dc]
push str._s_t_s_t_d_t_d_t_s_t_s_t_s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x48
add ebx, 1
push ebx
lea eax, [esp + 0x20]
push str.Track_02d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x19c]
push ecx
lea edx, [esp + 0x20]
push edx
push edi
call fcn.00431d00
test eax, eax
jne 0x402d2b
push eax
push eax
mov eax, dword [esi + 0x19c]
push 0x1004
push eax
call ebp
sub eax, 1
cmp ebx, eax
jl 0x402c60
push edi
call fcn.00432230
test eax, eax
je 0x402d66
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.USER32.dll_SetCursor]
push 0x30
push 0x4dec98
push edi
push 0x198
call fcn.0046d6b0
mov edx, dword [esi + 0x1a0]
add esp, 8
push eax
push edx
call fcn.00470860
add esp, 0x10
xor eax, eax
jmp 0x402d81
push 0
push esi
call fcn.0045dd90
mov eax, dword [esp + 0x18]
add esp, 8
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, 1
mov ecx, dword [esp + 0x79c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004810ab
add esp, 0x790
ret