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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x242c
call fcn.0051efe0
mov eax, dword [0x5ff004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [0x6011d0], 0x64
xor esi, esi
mov dword [0x6011d4], 0x40b920
mov dword [ebp - 0x2418], edi
lea eax, [edi + 8]
mov dword [ebp - 0x240c], eax
cmp dword [edi + 0x70], esi
je 0x401ecb
mov eax, dword [eax]
push 0x2e
push eax
mov dword [ebp - 0x2410], eax
call fcn.00503bf0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x401e30
inc ebx
push 0x2f
push ebx
mov dword [ebp - 0x2414], ebx
call fcn.00503ac0
add esp, 8
test eax, eax
jne 0x401e30
push 0x5c
push ebx
call fcn.00503ac0
add esp, 8
test eax, eax
jne 0x401e30
mov edx, dword [ebp - 0x2410]
jmp 0x401e52
mov edx, dword [ebp - 0x2410]
mov ecx, edx
lea ebx, [ecx + 1]
jmp 0x401e40
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401e40
sub ecx, ebx
lea ebx, [ecx + edx]
mov dword [ebp - 0x2414], ebx
mov ecx, ebx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401e57
sub ecx, ebx
jne 0x401e96
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401e67
sub ecx, ebx
test ecx, ecx
jle 0x40255e
cmp ecx, 1
jle 0x401e91
mov al, byte [ecx + edx - 1]
cmp al, 0x2f
je 0x40255e
cmp al, 0x5c
je 0x40255e
lea eax, [edi + 8]
jmp 0x401ed1
xor ebx, ebx
jmp 0x401ea0
push dword [ebx + 0x5ff920]
push dword [ebp - 0x2414]
call fcn.0050d425
add esp, 8
test eax, eax
je 0x401ec8
add ebx, 4
cmp ebx, 0x9d4
jb 0x401ea0
jmp 0x40255e
lea eax, [edi + 8]
mov dword [ebp - 0x240c], eax
mov ecx, dword [eax]
mov edx, 0x8000
call fcn.00406be0
mov ebx, eax
test ebx, ebx
jne 0x401f08
mov ecx, dword [ebp - 0x240c]
push dword [ecx]
push str.file__s_not_found_n
push 2
call fcn.00506446
add esp, 4
push eax
call fcn.00401010
add esp, 0xc
jmp 0x40255e
mov eax, dword [edi + 0x3c]
mov ecx, ebx
mov dword [ebx + 0x18], eax
call fcn.004057f0
mov esi, eax
mov eax, dword [ebx + 0x14]
push ebx
call eax
add esp, 4
test esi, esi
jne 0x401f33
mov ecx, dword [ebp - 0x240c]
push dword [ecx]
push str.failed_opening__s_n
jmp 0x401ef0
cmp dword [edi + 0x40], 0xffffffff
mov ecx, esi
jne 0x401f5c
mov eax, dword [esi + 0x38]
mov dword [edi + 0x40], eax
call fcn.00405c10
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
mov edx, edi
call fcn.004014f0
mov edx, dword [edi + 0x88]
test edx, edx
je 0x401f96
jle 0x401fb8
cmp dword [esi + 0x144], 0
je 0x401f86
cmp edx, 2
jg 0x401f86
mov ecx, esi
call fcn.0040c5b0
jmp 0x401fb8
push 0x65
push 0
mov ecx, esi
call fcn.0040bcd0
add esp, 8
jmp 0x401fb8
mov ebx, dword [edi + 0x38]
test ebx, ebx
js 0x401fb8
je 0x401fae
nop
xor edx, edx
mov ecx, esi
call fcn.0040b650
sub ebx, 1
jne 0x401fa0
lea edx, [ebx + 2]
mov ecx, esi
call fcn.0040b700
mov ebx, dword [esi + 0x1a0]
test ebx, ebx
je 0x4020a2
mov eax, dword [ebx]
shl eax, 0x11
push eax
push dword [ebx + 0x5814]
call fcn.0050fe99
add esp, 8
test eax, eax
je 0x4020a2
mov dword [ebx + 0x5814], eax
mov dword [ebx + 8], 1
mov ecx, dword [esi + 0x144]
mov eax, dword [esi + 0x1a0]
test ecx, ecx
jne 0x40207c
cmp dword [esi + 0x10], 0x29
jne 0x402078
mov edx, dword [esi + 0x1a8]
mov eax, dword [eax + 4]
mov ebx, dword [edx + 4]
mov ebx, dword [ebx]
cmp eax, dword [ebx + 8]
jne 0x402096
mov ebx, dword [ebx + 0x144]
test ebx, ebx
je 0x402096
cmp dword [edx], 1
mov dword [ebp - 0x2414], 1
jle 0x40206e
mov edx, dword [edx + 4]
add edx, 4
jmp 0x402040
mov eax, dword [edx]
mov eax, dword [eax + 0x144]
cmp ebx, eax
jne 0x402096
mov edi, dword [esi + 0x1a8]
mov ebx, eax
mov eax, dword [ebp - 0x2414]
add edx, 4
inc eax
mov dword [ebp - 0x2414], eax
cmp eax, dword [edi]
mov edi, dword [ebp - 0x2418]
jl 0x402040
mov dword [esi + 0x144], ebx
mov ecx, ebx
jmp 0x402096
test ecx, ecx
je 0x402096
mov edx, dword [esi + 0x1a0]
mov eax, dword [esi + 8]
cmp eax, dword [edx + 4]
je 0x402096
mov dword [esi + 0x144], 0
xor ecx, ecx
mov eax, dword [esi + 0x19c]
mov dword [eax + 0x144], ecx
mov ebx, dword [esi + 0x1a0]
lea edx, [esi + 0x24c]
lea ecx, [esi + 0x248]
test ebx, ebx
jne 0x4020cc
test ecx, ecx
je 0x4020c1
mov eax, dword [esi + 8]
mov dword [ecx], eax
test edx, edx
je 0x4020e4
mov eax, dword [esi + 8]
mov dword [edx], eax
jmp 0x4020e4
mov ebx, dword [ebx + 4]
mov eax, dword [esi + 8]
cmp ebx, eax
jle 0x4020d8
mov eax, ebx
test ecx, ecx
je 0x4020de
mov dword [ecx], eax
test edx, edx
je 0x4020e4
mov dword [edx], ebx
mov ecx, esi
call fcn.004059a0
cmp dword [esi + 0x1ac], 0
je 0x402103
cmp dword [esi + 0x1b0], 0
lea eax, [esi + 0x278]
jne 0x402105
mov eax, esi
mov ecx, dword [eax]
test ecx, ecx
jg 0x402115
push str.wrong_time_config_n
jmp 0x40254b
mov eax, dword [edi + 0x78]
cmp eax, 0xfffffffe
jne 0x402123
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x78], eax
cmp eax, 0xfffffffd
jne 0x40212e
mov eax, dword [esi + 0x20]
mov dword [edi + 0x78], eax
cmp eax, 0xffffffff
jl 0x402546
cmp eax, ecx
jge 0x402546
cmp dword [edi + 0x18], 0
je 0x402158
cmp dword [esi + 0x1b4], 0
jne 0x402158
push str.file_cant_be_played_forever
jmp 0x40254b
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x402181
cmp dword [edi + 0x10], eax
jne 0x40219a
cmp dword [edi + 0x3c], 1
jl 0x402175
cmp dword [esi + 0x38], 1
mov eax, str._f_s.wav
jge 0x40217a
mov eax, str._f.wav
mov dword [edi + 0xc], eax
test eax, eax
je 0x40219a
push esi
push edi
lea ecx, [ebp - 0x2408]
call fcn.00401920
lea eax, [ebp - 0x2408]
add esp, 8
mov dword [edi + 0x10], eax
mov ebx, dword [edi + 0x10]
test ebx, ebx
je 0x40255e
mov ecx, dword [ebp - 0x240c]
mov eax, ebx
mov ecx, dword [ecx]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4021d0
test dl, dl
je 0x4021cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4021d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4021b0
xor eax, eax
jmp 0x4021d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4021e4
push ebx
push str.same_infile_and_outfile_name:__s_n
jmp 0x401ef0
cmp dword [edi + 0x1c], 0
mov eax, dword [esi + 8]
mov dword [ebp - 0x2418], eax
jne 0x40228a
cmp dword [edi + 0x28], 0
je 0x402233
push str.adxencd
call fcn.00401040
add esp, 4
cmp dword [edi + 0x24], 0
jne 0x402220
push dword [edi + 0x10]
push str.___s_
call fcn.00401040
add esp, 8
cmp dword [esi + 0x18], 0
je 0x40227d
push dword [esi + 0x20]
push dword [esi + 0x1c]
push str.__lps_d__lpe_d
jmp 0x402275
cmp dword [edi + 0x2c], 0
je 0x402322
push str.oggenc
call fcn.00401040
add esp, 4
cmp dword [edi + 0x24], 0
jne 0x402260
push dword [edi + 0x10]
push str.___s_
call fcn.00401040
add esp, 8
cmp dword [esi + 0x18], 0
je 0x40227d
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
sub eax, ecx
push eax
push ecx
push str.__c_LOOPSTART_d__c_LOOPLENGTH_d
call fcn.00401040
add esp, 0xc
push 0x527550
call fcn.00401040
add esp, 4
mov ebx, dword [ebp - 0x240c]
cmp dword [edi + 0x1c], 0
jne 0x4022d8
cmp dword [edi + 0x28], 0
jne 0x4022d8
cmp dword [edi + 0x2c], 0
jne 0x4022d8
cmp dword [edi + 0x30], 0
jne 0x4022d8
push 0x400
lea edx, [ebp - 0x808]
mov byte [ebp - 0x808], 0
mov ecx, esi
call fcn.00403030
add esp, 4
lea eax, [ebp - 0x808]
push eax
push 0x527604
call fcn.00401040
add esp, 8
mov ecx, edi
call fcn.004017c0
xor eax, eax
cmp dword [edi + 0x84], eax
je 0x4024b1
mov ebx, dword [ebx]
push 0x5c
push ebx
mov byte [ebp - 0x408], al
call fcn.00503bf0
add esp, 8
test eax, eax
jne 0x4023ab
push 0x2f
push ebx
call fcn.00503bf0
add esp, 8
test eax, eax
jne 0x4023ab
mov eax, ebx
jmp 0x4023ac
cmp dword [edi + 0x30], 0
mov eax, dword [edi + 0x24]
je 0x40237a
test eax, eax
jne 0x40233d
push ebx
push str.set_fname__s__n
call fcn.00401040
add esp, 8
push dword [ebp - 0x2418]
push dword [esi]
push str.set_tsamp_d_nset_chan_d_n
call fcn.00401040
add esp, 0xc
cmp dword [esi + 0x18], 0
je 0x402370
push dword [esi + 0x20]
push dword [esi + 0x1c]
push str.set_lstart_d_nset_lend_d_nset_loop1_n
call fcn.00401040
add esp, 0xc
jmp 0x40228a
push str.set_loop0_n
jmp 0x402282
mov ebx, dword [ebp - 0x240c]
test eax, eax
mov eax, dword [ebx]
push eax
je 0x402399
push str.metadata_for__s_n
call fcn.00401040
add esp, 8
jmp 0x402290
push str.decoding__s_n
call fcn.00401040
add esp, 8
jmp 0x402290
inc eax
push 0x400
push eax
lea eax, [ebp - 0x408]
push eax
call fcn.0050d190
mov edx, dword [esi + 0x38]
lea eax, [esi + 0x244]
mov ecx, dword [esi + 0x3c]
add esp, 0xc
cmp dword [esi + 0x240], 0
je 0x4023e2
cmp dword [eax], 0
jne 0x4023e2
mov ebx, 1
jmp 0x4023e4
xor ebx, ebx
test ecx, ecx
jne 0x4023ed
mov ecx, 1
cmp edx, 1
jle 0x40243b
test ebx, ebx
jne 0x40243f
cmp dword [eax], ebx
jne 0x40243f
push ecx
lea eax, [ebp - 0x408]
push eax
push str._s_i
lea eax, [ebp - 0x808]
push 0x400
push eax
call fcn.00401080
add esp, 0x14
lea eax, [ebp - 0x808]
push 0x400
push eax
lea eax, [ebp - 0x408]
push eax
call fcn.0050d190
add esp, 0xc
lea eax, [ebx + 1]
jmp 0x402448
test edx, edx
jle 0x402446
mov eax, 1
jmp 0x402448
xor eax, eax
neg ebx
sbb ebx, ebx
not ebx
and ebx, eax
cmp byte [esi + 0x44], 0
lea eax, [esi + 0x44]
je 0x402499
test ebx, ebx
je 0x402499
push eax
lea eax, [ebp - 0x408]
push eax
push str._s___s_
lea eax, [ebp - 0x808]
push 0x400
push eax
call fcn.00401080
add esp, 0x14
lea eax, [ebp - 0x808]
push 0x400
push eax
lea eax, [ebp - 0x408]
push eax
call fcn.0050d190
add esp, 0xc
lea eax, [ebp - 0x408]
mov byte [ebp - 9], 0
push eax
push str.title:__s_n
call fcn.00401040
add esp, 8
cmp dword [edi + 0x24], 0
jne 0x402529
mov edx, edi
mov ecx, esi
call fcn.00402580
cmp dword [edi + 0x74], 0
je 0x402529
mov ecx, dword [edi + 0x10]
lea edx, [ebp - 0x1408]
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4024d1
lea ecx, [ebp - 0x1408]
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4024e5
mov eax, dword [str..reset.wav]
mov dword [ecx], eax
mov eax, dword [0x527704]
mov dword [ecx + 4], eax
mov ax, word [0x527708]
mov word [ecx + 8], ax
mov al, byte [0x52770a]
mov byte [ecx + 0xa], al
lea eax, [ebp - 0x1408]
mov ecx, esi
mov dword [edi + 0x10], eax
call fcn.00405a00
mov edx, edi
mov ecx, esi
call fcn.00402580
mov ecx, esi
call fcn.00405c10
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00502eb4
mov esp, ebp
pop ebp
ret
push str.wrong_seek_config_n
push 2
call fcn.00506446
add esp, 4
push eax
call fcn.00401010
add esp, 8
mov ecx, esi
call fcn.00405c10
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00502eb4
mov esp, ebp
pop ebp
ret