Function at 0x2112dfd0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x1b8
push ebp
call fcn.2111f6c0
test eax, eax
jne 0x2112dfea
pop ebp
add esp, 0x1b8
ret 0x14
call fcn.2111b000
test eax, eax
mov dword [0x21152dc8], eax
je 0x2112e083
mov eax, dword [esp + 0x1cc]
mov ecx, dword [esp + 0x1c0]
mov ebp, eax
push eax
and ebp, 1
push str._Memory_file_
lea edx, [esp + 0x28]
mov dword [esp + 0x38], ebp
call fcn.2111fbb0
test eax, eax
je 0x2112e094
cmp eax, 8
je 0x2112e079
cmp eax, 0xb
je 0x2112e05e
push eax
lea eax, [esp + 0x40]
push str.Error__d_parsing_file.
push eax
call sym.mss32.dll_AIL_sprintf
add esp, 0xc
lea ecx, [esp + 0x3c]
push ecx
call sym.mss32.dll__AIL_set_error_4
call fcn.2111f820
xor eax, eax
pop ebp
add esp, 0x1b8
ret 0x14
push str.Not_a_DLS_file.
call sym.mss32.dll__AIL_set_error_4
call fcn.2111f820
xor eax, eax
pop ebp
add esp, 0x1b8
ret 0x14
push str.Out_of_memory.
call sym.mss32.dll__AIL_set_error_4
call fcn.2111f820
xor eax, eax
pop ebp
add esp, 0x1b8
ret 0x14
mov ecx, dword [0x21152dc8]
push ebx
push esi
push edi
mov edx, str.DLS_Listing___Version_6.1c________Copyright__C__1991_2001__RAD_Game_Tools__Inc._r_n
call fcn.2111b430
mov ecx, dword [0x21152dc8]
mov edx, str._____________________________________________________________________________r_n_r_n
call fcn.2111b430
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x11c]
mov ecx, dword [esp + 0x1dc]
mov edx, dword [0x21152dc8]
push eax
push ecx
push str.Contents_of_DLS_1.0_file__s___d_instruments_:_r_n
push edx
call fcn.2111b3c0
add esp, 0x10
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov eax, dword [0x21151810]
mov ebx, dword [eax + 4]
test ebx, ebx
mov dword [esp + 0x10], ebx
je 0x2112e665
jmp 0x2112e0fe
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx + 0x20]
and esi, 0x7fffffff
cmp ecx, esi
jne 0x2112e657
mov ecx, dword [0x21152dc8]
mov edx, str.________________________________________________________________________________r_n
call fcn.2111b430
mov ecx, dword [ebx + 0x24]
mov edx, esi
and edx, 0x8000007f
push ecx
jns 0x2112e132
dec edx
or edx, 0xffffff80
inc edx
push edx
mov eax, esi
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
push eax
mov eax, dword [0x21152dc8]
push esi
push str._r_nBank__d___d:_d___patch__d:
push eax
call fcn.2111b3c0
mov eax, dword [ebx + 0x20]
add esp, 0x18
test eax, 0x80000000
mov edx, str.Drum_kit
jne 0x2112e167
mov edx, str.Melodic_instrument
mov ecx, dword [0x21152dc8]
call fcn.2111b430
mov ecx, dword [ebx + 0x1c]
mov edx, dword [0x21152dc8]
push ecx
push str.___d_region_s__r_n
push edx
call fcn.2111b3c0
mov ecx, dword [0x21152dc8]
add esp, 0xc
mov edx, str.________________________________________________________________________________r_n
call fcn.2111b430
mov eax, dword [ebx + 0x1c]
test eax, eax
mov edi, dword [ebx + 0x30]
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], 0
jbe 0x2112e653
xor eax, eax
mov ax, word [edi + 8]
xor ecx, ecx
mov cx, word [edi + 0xa]
xor edx, edx
mov dx, word [edi + 2]
push eax
xor eax, eax
mov ax, word [edi]
push ecx
mov ecx, dword [0x21152dc8]
push edx
push eax
push str._r_n__Key_region__d____d__key_group__d__option_s___X
push ecx
call fcn.2111b3c0
mov al, byte [edi + 8]
add esp, 0x18
test al, 1
je 0x2112e1fe
mov edx, dword [0x21152dc8]
push str.__Not_self_exclusive_
push edx
call fcn.2111b3c0
add esp, 8
mov ecx, dword [0x21152dc8]
mov edx, 0x21146148
call fcn.2111b430
mov ecx, dword [0x21152dc8]
xor eax, eax
mov ax, word [edi + 0x10]
push eax
push str._r_n_______WSMPL:_Unity_note__d_r_n
push ecx
call fcn.2111b3c0
movsx edx, word [edi + 0x12]
mov eax, dword [0x21152dc8]
push edx
push str.______________Fine_tune__d_cents_r_n
push eax
call fcn.2111b3c0
mov ecx, dword [0x21152dc8]
add esp, 0x18
mov edx, str.______________Attenuation
call fcn.2111b430
mov ecx, dword [edi + 0x14]
call fcn.2112dd60
mov ecx, dword [edi + 0x18]
mov edx, dword [0x21152dc8]
push ecx
push str.______________Option_s_:__X
push edx
call fcn.2111b3c0
mov eax, dword [edi + 0x18]
add esp, 0xc
test al, 3
je 0x2112e29f
test al, 1
je 0x2112e289
mov ecx, dword [0x21152dc8]
mov edx, str.__No_truncation_
call fcn.2111b430
test byte [edi + 0x18], 2
je 0x2112e29f
mov ecx, dword [0x21152dc8]
mov edx, str.__No_compression_
call fcn.2111b430
mov ecx, dword [0x21152dc8]
mov edx, 0x21146148
call fcn.2111b430
mov eax, dword [edi + 0x38]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x128]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea esi, [edx + eax*4]
mov eax, dword [esi + 4]
test al, 2
mov ecx, str.stereo__ILLEGAL_
jne 0x2112e2d6
mov ecx, str.mono
fld dword [esi + 8]
mov edx, dword [0x21152dc8]
and al, 1
fistp qword [esp + 0x34]
neg al
push ecx
mov ecx, dword [esi + 0x10]
sbb eax, eax
and eax, 8
add eax, 8
push eax
mov eax, dword [esp + 0x3c]
push eax
push ecx
push str._r_n________WAVE:__d_bytes___d_Hz__d_bit__s_r_n
push edx
call fcn.2111b3c0
mov eax, dword [edi + 0x1c]
add esp, 0x18
cmp eax, 1
jbe 0x2112e326
push eax
mov eax, dword [0x21152dc8]
push str._______________ILLEGAL_LOOP_COUNT:__d__r_n
push eax
call fcn.2111b3c0
add esp, 0xc
jmp 0x2112e394
jne 0x2112e394
mov ecx, dword [edi + 0x24]
test ecx, ecx
mov eax, str.Forward
je 0x2112e339
mov eax, str._ILLEGAL_
push eax
push ecx
mov ecx, dword [0x21152dc8]
push str._r_n_______WLOOP:_Type__d___s__r_n
push ecx
call fcn.2111b3c0
test byte [esi + 4], 1
mov eax, dword [edi + 0x28]
mov edx, 0
setne dl
mov ecx, eax
inc edx
mov esi, edx
mov edx, dword [0x21152dc8]
imul ecx, esi
push ecx
push eax
push str.______________Start__d__Offset__d__r_n
push edx
call fcn.2111b3c0
mov eax, dword [edi + 0x2c]
mov edx, dword [0x21152dc8]
mov ecx, eax
imul ecx, esi
push ecx
push eax
push str.______________Length__d___d_bytes__r_n
push edx
call fcn.2111b3c0
add esp, 0x30
mov ecx, dword [0x21152dc8]
xor eax, eax
mov ax, word [edi + 0x30]
push eax
push str._r_n____WAVELINK:_Option_s_:__X
push ecx
call fcn.2111b3c0
mov al, byte [edi + 0x30]
add esp, 0xc
test al, 1
je 0x2112e3c6
mov ecx, dword [0x21152dc8]
mov edx, str._Phase_master_
call fcn.2111b430
mov ecx, dword [0x21152dc8]
mov edx, 0x21146148
call fcn.2111b430
mov eax, dword [0x21152dc8]
xor edx, edx
mov dx, word [edi + 0x32]
push edx
push str.______________Phase_group__d_r_n
push eax
call fcn.2111b3c0
mov ecx, dword [edi + 0x34]
mov edx, dword [0x21152dc8]
push ecx
push str.______________Channel_placement__d_r_n
push edx
call fcn.2111b3c0
mov eax, dword [edi + 0x38]
mov ecx, dword [0x21152dc8]
push eax
push str.______________Pool_table_index__d_r_n
push ecx
call fcn.2111b3c0
add esp, 0x24
test ebp, ebp
je 0x2112e638
mov ecx, dword [0x21152dc8]
mov edx, 0x21146148
call fcn.2111b430
test dword [ebx + 0x20], 0x80000000
je 0x2112e444
mov eax, dword [edi + 0x40]
mov dword [esp + 0x18], eax
jmp 0x2112e44e
mov edx, dword [ebx + 0x30]
mov eax, dword [edx + 0x40]
mov dword [esp + 0x18], eax
mov esi, dword [eax]
mov ecx, dword [eax + 4]
add esi, eax
test ecx, ecx
mov dword [esp + 0x34], 0
jbe 0x2112e638
mov bp, word [esi]
mov bx, word [esi + 2]
or eax, 0xffffffff
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov eax, 0x21141f04
mov dx, word [eax]
cmp bp, dx
jne 0x2112e48e
mov dword [esp + 0x14], ecx
cmp bx, dx
jne 0x2112e497
mov dword [esp + 0x20], ecx
add eax, 6
inc ecx
cmp eax, 0x21141f4c
jl 0x2112e482
mov dx, word [esi + 4]
xor ecx, ecx
mov eax, 0x21141f4c
cmp dx, word [eax]
jne 0x2112e4b6
mov dword [esp + 0x1c], ecx
add eax, 6
inc ecx
cmp eax, 0x21141fb8
jl 0x2112e4ad
xor edi, edi
mov eax, 0x21141fba
cmp bp, word [eax - 2]
jne 0x2112e4e3
cmp bx, word [eax]
jne 0x2112e4e3
cmp dx, word [eax + 2]
jne 0x2112e4e3
mov cx, word [esi + 6]
cmp cx, word [eax + 4]
je 0x2112e4ee
add eax, 8
inc edi
cmp eax, 0x211420a2
jl 0x2112e4c8
mov ecx, dword [esp + 0x14]
or eax, 0xffffffff
cmp ecx, eax
je 0x2112e5e1
cmp dword [esp + 0x20], eax
je 0x2112e5e1
cmp dword [esp + 0x1c], eax
je 0x2112e5e1
cmp edi, 0x1d
mov dword [esp + 0x40], str.TRN_NONE
mov dword [esp + 0x44], str.TRN_CONCAVE
jae 0x2112e550
mov edx, dword [edi*8 + 0x2114d528]
mov eax, dword [0x21152dc8]
push edx
push str._____s
push eax
call fcn.2111b3c0
mov ecx, dword [esi + 8]
add esp, 0xc
call dword [edi*8 + 0x2114d52c]
jmp 0x2112e611
xor eax, eax
mov ax, word [esi + 6]
cmp ax, 2
jb 0x2112e579
and eax, 0xffff
push eax
lea ecx, [esp + 0xcc]
push str.TRN_UNKNOWN___Xh_
push ecx
call sym.mss32.dll_AIL_sprintf
add esp, 0xc
jmp 0x2112e593
and eax, 0xffff
mov edx, dword [esp + eax*4 + 0x40]
push edx
lea eax, [esp + 0xcc]
push eax
call sym.mss32.dll_AIL_sprintf
add esp, 8
mov ecx, dword [esi + 8]
mov eax, dword [esp + 0x1c]
push ecx
lea eax, [eax + eax*2]
mov ecx, dword [eax*2 + 0x21141f48]
mov eax, dword [esp + 0x24]
lea edx, [esp + 0xcc]
push edx
lea edx, [eax + eax*2]
mov eax, dword [edx*2 + 0x21141f00]
push ecx
push eax
mov eax, dword [esp + 0x24]
lea ecx, [eax + eax*2]
mov edx, dword [ecx*2 + 0x21141f00]
mov eax, dword [0x21152dc8]
push edx
push str.____CID___:__s__s__s__s___X_r_n
push eax
call fcn.2111b3c0
add esp, 0x1c
jmp 0x2112e611
xor ecx, ecx
mov cx, word [esi + 6]
and edx, 0xffff
and ebx, 0xffff
and ebp, 0xffff
push ecx
push edx
mov edx, dword [0x21152dc8]
push ebx
push ebp
push str._____ILLEGAL_SCALAR__S_Xh_C_Xh_D_Xh_T_Xh_r_n
push edx
call fcn.2111b3c0
add esp, 0x18
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
inc eax
add esi, 0xc
cmp eax, edx
mov dword [esp + 0x34], eax
jb 0x2112e465
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov ecx, dword [ebx + 0x1c]
inc eax
add edi, 0x44
cmp eax, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edi
jb 0x2112e1b4
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x2112e0fa
inc ecx
cmp ecx, 0x4000
mov dword [esp + 0x24], ecx
jl 0x2112e0e4
mov ecx, dword [0x21152dc8]
mov edx, str._r_n_End_of_list__r_n
call fcn.2111b430
mov ecx, dword [0x21152dc8]
xor dl, dl
call fcn.2111b410
call fcn.2111f820
mov edx, dword [esp + 0x1d4]
mov ecx, dword [0x21152dc8]
push edx
mov edx, dword [esp + 0x1d4]
call fcn.2111b080
test eax, eax
pop edi
pop esi
pop ebx
jne 0x2112e6c3
push str.Out_of_memory.
call sym.mss32.dll__AIL_set_error_4
mov eax, 1
pop ebp
add esp, 0x1b8
ret 0x14