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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x20
mov ebp, eax
test ebp, ebp
je 0x42e1d1
call fcn.00401fe6
lea eax, [ebp + 0xa4]
call fcn.00403204
push 1
push 0xabbc
call fcn.0041cc0d
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x42e1b1
mov eax, ebx
call fcn.0040324c
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [ebp + 0xe8], ebx
mov dword [ebx + 0x34], eax
mov eax, dword [ebp + 0x14]
mov dword [ebx + 0x38], edx
mov dword [ebx + 0x3c], ecx
mov dword [ebx + 0x40], esi
mov dword [ebx + 0x44], edi
mov dword [ebx + 0x48], eax
mov eax, dword [ebp + 0x18]
mov dword [ebx + 0x4c], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebx + 0x50], eax
mov eax, dword [ebp + 0x20]
mov dword [ebx + 0x54], eax
mov eax, dword [ebp + 0x24]
mov dword [ebx + 0x58], eax
mov eax, dword [ebp + 0x28]
mov dword [ebx + 0x5c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebx + 0x60], eax
mov eax, dword [ebp + 0x30]
mov dword [ebx + 0x64], eax
mov eax, dword [ebp + 0x34]
mov dword [ebx + 0x68], eax
mov eax, dword [ebp + 0x38]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebp + 0x3c]
mov dword [ebx + 0x70], eax
mov eax, dword [ebp + 0x40]
mov dword [ebx + 0x74], eax
mov eax, dword [ebp + 0x44]
mov dword [ebx + 0x78], eax
mov eax, dword [ebp + 0x48]
mov dword [ebx + 0x7c], eax
mov eax, dword [ebp + 0x4c]
mov dword [ebx + 0x80], eax
mov eax, dword [ebp + 0x50]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp + 0x54]
mov dword [ebx + 0x88], eax
mov eax, dword [ebp + 0x58]
mov dword [ebx + 0x8c], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebx + 0x90], eax
mov eax, dword [ebp + 0x60]
mov dword [ebx + 0x94], eax
mov eax, dword [ebp + 0x64]
mov dword [ebx + 0x98], eax
mov eax, dword [ebp + 0x68]
mov dword [ebx + 0x9c], eax
mov eax, dword [ebp + 0x6c]
mov dword [ebx + 0xa0], eax
call fcn.00403cea
mov eax, dword [ebp + 0xc8]
cmp eax, 1
je 0x42e191
test eax, eax
jne 0x42e171
mov edx, dword [ebp + 0xe0]
mov eax, ebx
call fcn.00403d4a
mov edx, dword [ebp + 0xd0]
test edx, edx
jle 0x40305a
cmp edx, 6
jg 0x40305a
mov eax, dword [ebp + 0xd4]
test eax, eax
jl 0x40303a
cmp eax, 7
jg 0x40303a
cmp edx, 6
jne 0x42e04a
mov ecx, dword [ebp + 0xd8]
test ecx, ecx
je 0x42e02a
mov dword [ebx + 0xc0], eax
mov dword [ebx + 0xc4], ecx
mov dword [ebx + 0xbc], edx
mov eax, edx
sub eax, ecx
mov dword [ebx + 0xb8], eax
test ecx, ecx
je 0x42e020
add edx, 0xffffffff
mov edi, dword [ebp + 0xdc]
mov dword [ebx + 0xc8], edx
xor ecx, ecx
xor edx, edx
movzx esi, word [edx*2 + 0x43926c]
sar esi, cl
cmp esi, edi
jne 0x402f29
mov dword [ebx + 0xcc], edi
mov dword [ebx + 0xd0], ecx
mov dword [ebx + 0xd8], edx
test ecx, ecx
jne 0x42e012
mov edx, dword [ebx + 0x7c]
test edx, edx
jne 0x40302b
mov edx, dword [ebx + 0x94]
test edx, edx
jne 0x40302b
mov dword [ebx + 0xd4], 8
mov esi, dword [ebp + 0x18]
mov edi, dword [ebx + 0x34]
mov dword [ebx + 0xdc], 0
test edi, edi
mov dword [ebx + 0xb4], 0xffffffff
jne 0x402c24
test esi, esi
jne case.default.0x402c1b
add eax, 0xffffffff
cmp eax, 4
ja case.default.0x402c1b
mov eax, dword [eax*4 + 0x430288]
jmp eax
mov esi, 0x1c0
jmp case.default.0x402c1b
cmp edi, 1
jne 0x42df3a
mov eax, dword [ebp + 0x1c]
test eax, eax
jl 0x40300b
cmp eax, 0x3ff
jg 0x40300b
xor edx, edx
movzx eax, word [edx*2 + str.__08_P_p]
sar eax, cl
cmp eax, esi
je 0x402c77
add edx, 1
cmp edx, 0x13
jl 0x402c45
jne 0x42dd31
test edi, edi
je 0x42dd11
movzx eax, word [0x439298]
mov edx, 0x12
sar eax, cl
add edx, edx
mov dword [ebx + 0xe4], edx
mov dword [ebx + 0xe0], eax
call fcn.00403d64
mov eax, ebx
call fcn.00403dc0
mov eax, ebx
call fcn.00403ec4
mov eax, dword [ebx + 0x34]
mov dword [esp + 0xc], eax
cmp eax, 1
jne 0x402ca9
mov edi, dword [ebx + 0x50]
jmp 0x402cdd
test eax, eax
jne 0x403001
imul edi, dword [ebx + 0xd0], 0x19
mov ecx, dword [ebx + 0xb8]
mov eax, dword [ebx + 0xe0]
cdq
idiv ecx
imul esi, eax, 0x23
mov eax, 0x2aaaaaab
imul esi
sar esi, 0x1f
sar edx, 2
sub edx, esi
lea edi, [edx + edi + 0x5f]
mov eax, dword [ebp + 0x20]
cmp eax, 0xfffffffe
jl 0x402fe1
cmp eax, 0x3c
jg 0x402fe1
mov esi, dword [ebx + 0x54]
test esi, esi
jge 0x42dce8
mov ecx, dword [ebx + 0xcc]
mov edx, edi
shl edx, 3
mov eax, edi
shl eax, 7
sub eax, edx
add eax, 0xffffd760
shl eax, 9
cdq
idiv ecx
mov ecx, eax
add ecx, 0xffffffb7
mov eax, 0x55555556
imul ecx
sar ecx, 0x1f
sub edx, ecx
mov dword [ebx + 0xe8], edx
cmp esi, 0xfffffffe
je 0x42e108
mov ecx, dword [ebx + 0x68]
mov eax, dword [ebx + 0x64]
cmp ecx, edx
jl 0x402d46
mov ecx, edx
cmp ecx, eax
jg 0x402d4c
mov ecx, eax
mov dword [ebx + 0xe8], ecx
mov eax, dword [ebp + 0xc8]
test eax, eax
jne 0x402d99
mov eax, dword [ebx + 0xcc]
cmp eax, 0x3e80
jle 0x42e0dc
mov eax, dword [ebx + 0x3c]
test eax, eax
jne 0x402f61
mov eax, dword [ebx + 0x40]
test eax, eax
jne 0x42df65
mov eax, dword [ebx + 0x44]
test eax, eax
jne 0x42de5c
mov eax, dword [ebx + 0x48]
test eax, eax
jne 0x42ddd0
mov esi, dword [ebp + 0x7c]
test esi, esi
jg 0x402da7
call fcn.00403fd2
mov esi, eax
cmp esi, 0x20
jle 0x402db1
mov esi, 0x20
push esi
mov dword [ebx + 0xb0], esi
mov dword [ebp + 0x7c], esi
push 0x2b610
call fcn.0041cc0d
add esp, 8
mov dword [ebx], eax
test esi, esi
jle 0x402eb0
mov dword [esp + 0x1c], ebp
xor esi, esi
mov ebp, ebx
mov ebx, eax
jmp 0x402de1
mov ebx, dword [ebp]
imul edx, esi, 0x2b610
add ebx, edx
mov dword [ebx], ebp
mov dword [ebx + 0x20], esi
mov ecx, dword [0x44c514]
test ecx, ecx
je 0x402e01
mov eax, ebx
call fcn.0040307e
jmp 0x402e1b
mov edx, dword [0x44c50c]
test edx, edx
je 0x402e14
mov eax, ebx
call fcn.004041a8
jmp 0x402e1b
mov eax, ebx
call fcn.00404032
mov dword [ebx + 0x2b5ec], edi
xor edx, edx
mov dword [ebx + 0x2b5e4], edx
mov dword [ebx + 0x2b5e8], edx
mov eax, dword [ebp + 0xb0]
cmp eax, 1
jle 0x402e9d
xor edx, edx
push edx
push edx
mov dword [ebx + 0x1c], edx
push edx
push edx
call dword [0x43000c]
mov dword [ebx + 0xc], eax
xor edx, edx
push edx
push edx
push edx
push edx
call dword [0x43000c]
mov dword [ebx + 0x10], eax
xor edx, edx
push edx
push edx
push edx
push edx
call dword [0x43000c]
lea edx, [esp + 0xc]
push edx
mov dword [ebx + 0x14], eax
xor ecx, ecx
push ecx
push ebx
push 0x4080ac
push ecx
push ecx
call dword [0x430008]
push 0xffffffffffffffff
push dword [ebx + 0xc]
mov dword [ebx + 8], eax
call dword [0x430004]
push dword [ebx + 0xc]
call dword [section..rdata]
mov eax, dword [ebp + 0xb0]
add esi, 1
cmp esi, eax
jl 0x402dde
mov esi, eax
mov ebx, ebp
mov ebp, dword [esp + 0x1c]
test esi, esi
jle 0x402ef5
mov dword [esp + 0x1c], ebp
xor ecx, ecx
mov ebp, dword [ebx]
lea edi, [ecx + 1]
imul ecx, ecx, 0x2b610
mov eax, edi
cdq
idiv esi
imul esi, edx, 0x2b610
lea eax, [ebp + esi + 0x14]
mov dword [ebp + ecx + 0x18], eax
mov esi, dword [ebx + 0xb0]
mov ecx, edi
cmp edi, esi
jl 0x402eba
mov ebp, dword [esp + 0x1c]
cmp esi, 1
jle 0x402ef5
lea eax, [ebx + 0x14]
call fcn.00403fca
mov eax, dword [ebp + 0xc8]
test eax, eax
jne 0x42e088
mov eax, dword [ebp + 0xe4]
mov dword [ebx + 0x2c], 0x40c1f0
test eax, eax
mov dword [ebx + 0x30], 0x40ba88
jne 0x42dd4a
xor eax, eax
add esp, 0x20
pop ebx
pop ebp
pop esi
pop edi
ret
add edx, 1
cmp edx, 3
jl 0x402b9b
add ecx, 1
cmp ecx, 3
jl 0x402b99
call fcn.0041c54e
add eax, 0x40
push eax
push str.invalid_sample_rate_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [ebx + 0xbc]
test eax, eax
jle 0x402d78
mov ecx, 0x45fa0000
mov eax, ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebp
xor edx, edx
lea esi, [ebx + 0xec]
mov ebp, eax
mov edi, edx
mov ecx, 1
mov dword [ebp + 0xf4], ecx
mov dword [ebp + 0xf8], ecx
mov ecx, 0x45fa0000
mov dword [ebp + 0xfc], ecx
fild dword [ebx + 0xcc]
fstp dword [ebp + 0x104]
mov eax, esi
xor edx, edx
call fcn.00403ff0
test eax, eax
jne 0x42e0e8
add ebp, 0x20
add esi, 0x20
add edi, 1
cmp edi, dword [ebx + 0xbc]
jl 0x402f8a
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
jmp 0x402d78
call fcn.0041c54e
add eax, 0x40
push eax
push str.invalid_bandwidth_code_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
mov edi, pe_nt_image_headers32
jmp 0x402cdd
call fcn.0041c54e
add eax, 0x40
push eax
push str.invalid_quality_setting_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
mov dword [ebx + 0xd4], 6
jmp 0x402bea
call fcn.0041c54e
add eax, 0x40
push eax
push str.invalid_acmod_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
call fcn.0041c54e
add eax, 0x40
push eax
push str.invalid_number_of_channels_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
mov dword [ebx + 0xe8], esi
jmp 0x402d52
mov esi, 0x100
jmp case.default.0x402c1b
mov esi, 0x180
jmp case.default.0x402c1b
mov esi, 0x60
jmp case.default.0x402c1b
call fcn.0041c54e
add eax, 0x40
push eax
push str.invalid_bitrate_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
movzx eax, word [edx*2 + str.__08_P_p]
sar eax, cl
jmp 0x402c77
mov esi, 0xc0
jmp case.default.0x402c1b
mov esi, dword [ebx + 0xbc]
lea eax, [esi + esi*2]
shl eax, 0xb
push eax
call fcn.0041dac2
mov dword [esp + 0x1c], eax
lea eax, [esi + esi*4]
shl eax, 0xa
push eax
push 0
mov edx, dword [esp + 0x24]
push edx
call fcn.0042a828
mov eax, dword [ebx + 0xbc]
lea edx, [eax + eax*4]
shl edx, 0xa
shl eax, 0xa
add edx, dword [esp + 0x28]
push eax
push dword [ebp + 0xe4]
push edx
call fcn.0042a880
add esp, 0x1c
mov edx, dword [esp + 0x18]
mov eax, dword [ebx]
mov ecx, 0x600
call fcn.0040c238
mov eax, dword [esp + 0x18]
push eax
call fcn.0041cdf3
pop ecx
mov eax, dword [ebx]
mov dword [ebx + 0xb0], 1
call fcn.0040bab4
mov eax, dword [ebp + 0x7c]
mov dword [ebx + 0xb0], eax
jmp 0x402f1f
mov eax, dword [ebx + 0xc4]
test eax, eax
jne 0x42ddfa
call fcn.0041c54e
add eax, 0x40
push eax
push str.cannot_use_lfe_filter._no_lfe_channel_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
fild dword [ebx + 0xcc]
fstp dword [ebx + 0x344]
lea eax, [ebx + 0x32c]
mov dword [ebx + 0x334], 0
mov edx, 3
mov dword [ebx + 0x338], 1
mov dword [ebx + 0x33c], 0x42f00000
call fcn.00403ff0
test eax, eax
je 0x402d99
call fcn.0041c54e
add eax, 0x40
push eax
push str.error_initializing_lfe_filter_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [ebx + 0x54]
cmp eax, 0xfffffffe
jne 0x42de84
call fcn.0041c54e
add eax, 0x40
push eax
push str.cannot_use_bandwidth_filter_with_variable_bandwidth_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [ebx + 0xcc]
imul eax, edx, 0x49
lea esi, [edx + edx*2]
imul esi, dword [ebx + 0xe8]
lea ecx, [eax + esi]
sar ecx, 8
shr ecx, 0x17
add eax, ecx
add eax, esi
sar eax, 9
cmp eax, 0xfa0
jge 0x42deba
mov dword [ebx + 0x44], 0
jmp 0x402d8e
mov edx, dword [ebx + 0xb8]
test edx, edx
jle 0x402d8e
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esp + 0xc]
mov eax, ebx
mov dword [esp + 0x18], edi
xor edx, edx
lea esi, [ebx + 0x26c]
mov dword [esp + 0x1c], ebp
mov ebp, eax
mov edi, edx
fld dword [esp + 0xc]
fstp dword [ebp + 0x27c]
mov eax, esi
mov edx, 3
mov dword [ebp + 0x274], 0
mov dword [ebp + 0x278], 1
fild dword [ebx + 0xcc]
fstp dword [ebp + 0x284]
call fcn.00403ff0
test eax, eax
je 0x42df47
call fcn.0041c54e
add eax, 0x40
push eax
push str.error_initializing_bandwidth_filter_n
call fcn.0041c85e
add esp, 8
mov eax, 0xffffffff
add esp, 0x20
pop ebx
pop ebp
pop esi
pop edi
ret
add ebp, 0x20
add esi, 0x20
add edi, 1
cmp edi, dword [ebx + 0xb8]
jl 0x42deea
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
jmp 0x402d8e
mov eax, dword [ebx + 0xbc]
test eax, eax
jle 0x402d83
mov edx, 0x40400000
mov eax, ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], ebx
xor ecx, ecx
lea esi, [ebx + 0x1ac]
mov dword [esp + 0x1c], ebp
mov ebx, eax
mov ebp, edx
mov edi, ecx
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x1b4], 1
mov dword [ebx + 0x1bc], ebp
mov edx, 4
mov dword [ebx + 0x1b8], 0
fild dword [eax + 0xcc]
fstp dword [ebx + 0x1c4]
mov eax, esi
call fcn.00403ff0
test eax, eax
je 0x42dfee
call fcn.0041c54e
add eax, 0x40
push eax
push str.error_initializing_dc_filter_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xc]
add ebx, 0x20
add esi, 0x20
add edi, 1
cmp edi, dword [eax + 0xbc]
jl 0x42df94
mov edi, dword [esp + 0x18]
mov ebx, eax
mov ebp, dword [esp + 0x1c]
jmp 0x402d83
lea edx, [ecx + 8]
mov dword [ebx + 0xd4], edx
jmp 0x402bea
mov edx, 0xffffffff
jmp 0x402b8b
call fcn.0041c54e
add eax, 0x40
push eax
push str.6_channel_audio_must_have_LFE_channel_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
cmp edx, 1
je 0x42e05a
mov ecx, dword [ebp + 0xd8]
jmp 0x402b64
mov ecx, dword [ebp + 0xd8]
test ecx, ecx
je 0x402b64
call fcn.0041c54e
add eax, 0x40
push eax
push str.cannot_encode_stand_alone_LFE_channel_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
cmp eax, 1
jne 0x402f1f
mov eax, dword [ebx + 0xb0]
mov dword [ebx + 0x2c], 0x40c1b2
test eax, eax
mov dword [ebx + 0x30], 0x40c1aa
jle 0x402f1f
xor edi, edi
xor esi, esi
push 1
push 0xe0
mov ebp, dword [ebx]
call fcn.0041cc0d
add esp, 8
mov dword [ebp + esi + 4], eax
add esi, 0x2b610
add edi, 1
cmp edi, dword [ebx + 0xb0]
jl 0x42e0b1
jmp 0x402f1f
mov dword [ebx + 0x3c], 0
jmp 0x402d78
call fcn.0041c54e
add eax, 0x40
push eax
push str.error_initializing_transient_detect_filter_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [ebx + 0x64]
test eax, eax
jl 0x42e124
cmp eax, 0x3c
jg 0x42e124
mov ecx, dword [ebx + 0x68]
test ecx, ecx
jl 0x42e124
cmp ecx, 0x3c
jg 0x42e124
cmp eax, ecx
jle 0x42e144
call fcn.0041c54e
add eax, 0x40
push eax
push str.invalid_min_max_bandwidth_code_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
mov esi, dword [esp + 0xc]
cmp esi, 1
jne 0x402d40
call fcn.0041c54e
add eax, 0x40
push eax
push str.variable_bandwidth_mode_cannot_be_used_with_variable_bitrate_mode_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
call fcn.0041c54e
add eax, 0x40
push eax
push str.Unknown_opertion_mode_specified._n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
call fcn.0041c54e
add eax, 0x40
push eax
push str.Sorry__trancoding_support_is_not_complete__yet.
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
call fcn.0041c54e
add eax, 0x40
push eax
push str.error_allocating_memory_for_A52Context_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret
call fcn.0041c54e
add eax, 0x40
push eax
push str.NULL_parameter_passed_to_aften_encode_init_n
call fcn.0041c85e
mov eax, 0xffffffff
add esp, 0x28
pop ebx
pop ebp
pop esi
pop edi
ret