Function at 0x5045f0
Capabilities:
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x54930d
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x598c90]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov dword [esp + 0x14], ecx
mov ebx, dword [ebp + 0x14]
test ebx, ebx
jne 0x504666
push 0xf0
call fcn.0051e4bd
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], ebx
test eax, eax
je 0x50465a
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x84]
mov edi, dword [ecx + 0x80]
push edx
mov esi, eax
call fcn.00502b40
jmp 0x50465c
xor eax, eax
mov dword [esp + 0x38], 0xffffffff
mov ebx, eax
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x84]
mov eax, esi
call fcn.004053d0
mov edi, dword [ebp + 8]
cmp edi, eax
mov edx, dword [ebp + 0xc]
jge 0x504c16
cmp dword [esi + 0x3c], 0
jg 0x5046af
cmp dword [esi + 0x60], 0
jg 0x5046af
push 0
xor dl, dl
mov esi, ebx
call fcn.0043b400
push 0
push 0x59f5c0
mov edi, ebx
call fcn.0043b1f0
jmp 0x505109
lea ecx, [esp + 0x10]
call fcn.0041adc0
mov dword [esp + 0x38], 1
cmp edx, 1
jne 0x504777
mov eax, esi
test edi, edi
jne 0x5046d3
xor edx, edx
jmp 0x504702
mov ecx, edi
call fcn.00405360
test eax, eax
je 0x504724
mov ecx, edi
mov eax, esi
call fcn.00405360
mov dword [esp + 0x18], eax
mov edx, edi
mov eax, esi
call fcn.00405330
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
cmp edx, dword [eax]
je 0x504724
mov edx, edi
mov eax, esi
call fcn.00405330
mov ecx, dword [eax]
lea esi, [esp + 0x18]
call fcn.0041b330
lea esi, [esp + 0x10]
call fcn.0041ae20
lea ecx, [esp + 0x18]
call fcn.0041add0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
xor eax, eax
lea ecx, [esp + 0x18]
call fcn.004031b0
lea eax, [esp + 0x18]
call fcn.00403100
test eax, eax
je 0x504762
lea ecx, [esp + 0x10]
push ecx
push 0x57140c
lea edx, [esp + 0x20]
push edx
call fcn.0041b780
mov byte [esp + 0x38], 2
jmp 0x504811
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + 8]
lea ecx, [ebx + 0x78]
push 0x59f5c0
call eax
jmp 0x5049ed
cmp edx, 2
jne 0x5047bc
mov edx, edi
mov eax, esi
call fcn.00405330
mov ecx, dword [eax + 4]
lea esi, [esp + 0x18]
call fcn.0041b330
lea esi, [esp + 0x10]
call fcn.0041ae20
lea ecx, [esp + 0x18]
call fcn.0041add0
mov ecx, esi
push ecx
push str.Index
lea edx, [esp + 0x20]
push edx
call fcn.0041b780
mov byte [esp + 0x38], 3
jmp 0x504811
cmp edx, 3
jne 0x504830
mov edx, dword [ebp + 8]
mov eax, esi
call fcn.00405330
mov ecx, dword [eax + 8]
lea esi, [esp + 0x18]
call fcn.0041b330
lea esi, [esp + 0x10]
call fcn.0041ae20
lea ecx, [esp + 0x18]
call fcn.0041add0
push str._frames
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
mov edx, esi
push edx
push str.Index_offset
push ecx
call fcn.0041b780
lea edi, [esp + 0x20]
call fcn.0041b8b0
mov byte [esp + 0x38], 4
mov edx, dword [ebx + 0x78]
lea ecx, [ebx + 0x78]
push eax
mov eax, dword [edx + 8]
call eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x38], 1
call fcn.0041add0
jmp 0x5049ed
cmp edx, 4
jne 0x5048fb
mov edi, dword [ebp + 8]
lea ecx, [esp + 0x18]
push ecx
mov edx, edi
mov eax, esi
call fcn.00405330
add eax, 0x14
call fcn.00401e10
lea esi, [esp + 0x10]
call fcn.0041ae20
lea ecx, [esp + 0x18]
call fcn.0041add0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x84]
push str._frames_
mov edx, edi
call fcn.00405330
add eax, 0x14
call fcn.00401e00
mov ecx, eax
lea esi, [esp + 0x24]
call fcn.0041b330
mov dword [esp + 0x1c], eax
push ecx
mov esi, esp
mov byte [esp + 0x40], 5
mov dword [esp + 0x2c], esp
push ecx
mov dword [esp + 0x30], esp
mov edi, esp
push 0x572360
push ecx
lea ecx, [esp + 0x24]
mov eax, esp
mov dword [esp + 0x38], esp
call fcn.0041ae00
call fcn.0041b8b0
mov edi, dword [esp + 0x24]
call fcn.0041b7f0
lea edi, [esp + 0x24]
call fcn.0041b8b0
mov byte [esp + 0x38], 6
mov edx, dword [ebx + 0x78]
lea ecx, [ebx + 0x78]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, edi
call fcn.0041add0
lea ecx, [esp + 0x20]
mov byte [esp + 0x38], 1
call fcn.0041add0
jmp 0x5049ed
cmp edx, 5
jne 0x5049c3
mov edi, dword [ebp + 8]
lea ecx, [esp + 0x20]
push ecx
mov edx, edi
mov eax, esi
call fcn.00405330
add eax, 0xc
call fcn.00401e10
lea esi, [esp + 0x10]
call fcn.0041ae20
lea ecx, [esp + 0x20]
call fcn.0041add0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x84]
push str._frames_
mov edx, edi
call fcn.00405330
add eax, 0xc
call fcn.00401e00
mov ecx, eax
lea esi, [esp + 0x1c]
call fcn.0041b330
mov dword [esp + 0x24], eax
push ecx
mov esi, esp
mov byte [esp + 0x40], 7
mov dword [esp + 0x2c], esp
push ecx
mov dword [esp + 0x30], esp
mov edi, esp
push 0x572360
push ecx
lea ecx, [esp + 0x24]
mov eax, esp
mov dword [esp + 0x38], esp
call fcn.0041ae00
call fcn.0041b8b0
mov edi, dword [esp + 0x2c]
call fcn.0041b7f0
lea edi, [esp + 0x24]
call fcn.0041b8b0
mov byte [esp + 0x38], 8
mov edx, dword [ebx + 0x78]
lea ecx, [ebx + 0x78]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, edi
call fcn.0041add0
lea ecx, [esp + 0x18]
mov byte [esp + 0x38], 1
call fcn.0041add0
jmp 0x5049ed
cmp edx, 6
jne 0x504a08
mov edx, edi
mov eax, esi
call fcn.00405330
add eax, 0x28
lea esi, [esp + 0x10]
call fcn.0041ae20
mov edx, dword [ebx + 0x78]
mov edx, dword [edx + 8]
lea ecx, [ebx + 0x78]
lea eax, [esp + 0x10]
push eax
call edx
cmp byte [ebp + 0x10], 0
push 0
je 0x504be7
push 0x1000800
lea eax, [esp + 0x2c]
push eax
jmp 0x504bf1
cmp edx, 7
jne 0x504a45
mov edx, edi
mov eax, esi
call fcn.00405330
add eax, 0x44
lea esi, [esp + 0x10]
call fcn.0041ae20
mov eax, esi
call fcn.00439a90
test al, al
je 0x5049dd
mov eax, str.ISRC_code_of_the_track__must_be_on_the_first_index_of_a_track_
lea esi, [esp + 0x18]
call fcn.0041aed0
mov byte [esp + 0x38], 9
jmp 0x504bc4
cmp edx, 8
jne 0x504a86
mov edx, edi
mov eax, esi
call fcn.00405330
add eax, 0x2c
lea esi, [esp + 0x10]
call fcn.0041ae20
mov eax, esi
call fcn.00439a90
test al, al
je 0x5049dd
mov eax, str.CD_Text_track_title__must_be_on_index_1_of_a_track_
lea esi, [esp + 0x18]
call fcn.0041aed0
mov byte [esp + 0x38], 0xa
jmp 0x504bc4
cmp edx, 9
jne 0x504ac7
mov edx, edi
mov eax, esi
call fcn.00405330
add eax, 0x30
lea esi, [esp + 0x10]
call fcn.0041ae20
mov eax, esi
call fcn.00439a90
test al, al
je 0x5049dd
mov eax, str.CD_Text_track_performer__must_be_on_index_1_of_a_track_
lea esi, [esp + 0x18]
call fcn.0041aed0
mov byte [esp + 0x38], 0xb
jmp 0x504bc4
cmp edx, 0xa
jne 0x504b08
mov edx, edi
mov eax, esi
call fcn.00405330
add eax, 0x34
lea esi, [esp + 0x10]
call fcn.0041ae20
mov eax, esi
call fcn.00439a90
test al, al
je 0x5049dd
mov eax, str.CD_Text_track_songwriter__must_be_on_index_1_of_a_track_
lea esi, [esp + 0x18]
call fcn.0041aed0
mov byte [esp + 0x38], 0xc
jmp 0x504bc4
cmp edx, 0xb
jne 0x504b46
mov edx, edi
mov eax, esi
call fcn.00405330
add eax, 0x38
lea esi, [esp + 0x10]
call fcn.0041ae20
mov eax, esi
call fcn.00439a90
test al, al
je 0x5049dd
mov eax, str.CD_Text_track_composer__must_be_on_index_1_of_a_track_
lea esi, [esp + 0x18]
call fcn.0041aed0
mov byte [esp + 0x38], 0xd
jmp 0x504bc4
cmp edx, 0xc
jne 0x504b84
mov edx, edi
mov eax, esi
call fcn.00405330
add eax, 0x3c
lea esi, [esp + 0x10]
call fcn.0041ae20
mov eax, esi
call fcn.00439a90
test al, al
je 0x5049dd
mov eax, str.CD_Text_track_arranger__must_be_on_index_1_of_a_track_
lea esi, [esp + 0x18]
call fcn.0041aed0
mov byte [esp + 0x38], 0xe
jmp 0x504bc4
cmp edx, 0xd
jne 0x5049ed
mov edx, edi
mov eax, esi
call fcn.00405330
add eax, 0x40
lea esi, [esp + 0x10]
call fcn.0041ae20
mov eax, esi
call fcn.00439a90
test al, al
je 0x5049dd
mov eax, str.CD_Text_track_message__must_be_on_index_1_of_a_track_
lea esi, [esp + 0x18]
call fcn.0041aed0
mov byte [esp + 0x38], 0xf
mov eax, dword [ebx + 0x78]
mov eax, dword [eax + 8]
lea ecx, [ebx + 0x78]
lea edx, [esp + 0x18]
push edx
call eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x38], 1
call fcn.0041add0
jmp 0x5049ed
push 0x1000281
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x20]
add ecx, 4
call fcn.00434820
push eax
push 0x1000281
mov esi, ebx
call fcn.004348d0
push 0
lea edx, [esp + 0x14]
push edx
jmp 0x5050f1
cmp dword [esi + 0x60], 0
jle 0x50510f
lea ecx, [esp + 0x10]
call fcn.0041adc0
mov dword [esp + 0x38], 0x10
cmp edx, 1
jne 0x504ccc
mov eax, esi
call fcn.004053d0
sub edi, eax
jne 0x504c70
cmp dword [esi + 0x60], edi
jbe 0x504c51
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
jmp 0x504c53
xor eax, eax
mov ecx, dword [eax]
lea esi, [esp + 0x20]
call fcn.0041b330
lea esi, [esp + 0x10]
call fcn.0041ae20
lea ecx, [esp + 0x20]
call fcn.0041add0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
xor eax, eax
lea ecx, [esp + 0x18]
call fcn.004031b0
lea eax, [esp + 0x18]
call fcn.00403100
test eax, eax
je 0x5050a3
lea edx, [esp + 0x10]
push edx
push 0x57140c
lea eax, [esp + 0x28]
push eax
call fcn.0041b780
mov byte [esp + 0x38], 0x11
mov edx, dword [ebx + 0x78]
lea ecx, [ebx + 0x78]
push eax
mov eax, dword [edx + 8]
call eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x38], 0x10
call fcn.0041add0
jmp 0x5050b3
cmp edx, 2
jne 0x504d3d
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x504ce7
mov ecx, dword [esi + 0x54]
mov edi, dword [ecx + edi*4]
jmp 0x504ce9
xor edi, edi
mov ecx, dword [edi + 4]
lea esi, [esp + 0x20]
call fcn.0041b330
lea esi, [esp + 0x10]
call fcn.0041ae20
lea ecx, [esp + 0x20]
call fcn.0041add0
mov edx, esi
push edx
push str.Index
lea eax, [esp + 0x28]
push eax
call fcn.0041b780
mov byte [esp + 0x38], 0x12
mov edx, dword [ebx + 0x78]
lea ecx, [ebx + 0x78]
push eax
mov eax, dword [edx + 8]
call eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x38], 0x10
call fcn.0041add0
jmp 0x5050b3
cmp edx, 3
jne 0x504dbd
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x504d58
mov ecx, dword [esi + 0x54]
mov edi, dword [ecx + edi*4]
jmp 0x504d5a
xor edi, edi
mov ecx, dword [edi + 8]
lea esi, [esp + 0x20]
call fcn.0041b330
lea esi, [esp + 0x10]
call fcn.0041ae20
lea ecx, [esp + 0x20]
call fcn.0041add0
push str._frames
push ecx
mov edx, esp
mov dword [esp + 0x2c], esp
mov eax, esi
push eax
push str.Index_offset
push edx
call fcn.0041b780
lea edi, [esp + 0x28]
call fcn.0041b8b0
mov byte [esp + 0x38], 0x13
mov edx, dword [ebx + 0x78]
lea ecx, [ebx + 0x78]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, edi
mov byte [esp + 0x38], 0x10
call fcn.0041add0
jmp 0x5050b3
cmp edx, 4
jne 0x504e74
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x504ddc
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx + edi*4]
jmp 0x504dde
xor eax, eax
lea edx, [esp + 0x20]
push edx
add eax, 0x14
call fcn.00401e10
lea esi, [esp + 0x10]
call fcn.0041ae20
lea ecx, [esp + 0x20]
call fcn.0041add0
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0x84]
push str._frames_
call fcn.00405330
add eax, 0x14
call fcn.00401e00
mov ecx, eax
lea esi, [esp + 0x1c]
call fcn.0041b330
mov dword [esp + 0x24], eax
push ecx
mov esi, esp
mov byte [esp + 0x40], 0x14
mov dword [esp + 0x2c], esp
push ecx
mov dword [esp + 0x30], esp
mov edi, esp
push 0x572360
push ecx
lea ecx, [esp + 0x24]
mov eax, esp
mov dword [esp + 0x38], esp
call fcn.0041ae00
call fcn.0041b8b0
mov edi, dword [esp + 0x2c]
call fcn.0041b7f0
lea edi, [esp + 0x24]
call fcn.0041b8b0
mov byte [esp + 0x38], 0x15
jmp 0x504f26
cmp edx, 5
jne 0x504f4e
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x504e93
mov ecx, dword [esi + 0x54]
mov edi, dword [ecx + edi*4]
jmp 0x504e95
xor edi, edi
lea edx, [esp + 0x20]
push edx
lea eax, [edi + 0xc]
call fcn.00401e10
lea esi, [esp + 0x10]
call fcn.0041ae20
lea ecx, [esp + 0x20]
call fcn.0041add0
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0x84]
push str._frames_
call fcn.00405330
add eax, 0xc
call fcn.00401e00
mov ecx, eax
lea esi, [esp + 0x1c]
call fcn.0041b330
mov dword [esp + 0x24], eax
push ecx
mov esi, esp
mov byte [esp + 0x40], 0x16
mov dword [esp + 0x2c], esp
push ecx
mov dword [esp + 0x30], esp
mov edi, esp
push 0x572360
push ecx
lea ecx, [esp + 0x24]
mov eax, esp
mov dword [esp + 0x38], esp
call fcn.0041ae00
call fcn.0041b8b0
mov edi, dword [esp + 0x2c]
call fcn.0041b7f0
lea edi, [esp + 0x24]
call fcn.0041b8b0
mov byte [esp + 0x38], 0x17
mov edx, dword [ebx + 0x78]
lea ecx, [ebx + 0x78]
push eax
mov eax, dword [edx + 8]
call eax
lea ecx, [esp + 0x1c]
call fcn.0041add0
lea ecx, [esp + 0x18]
mov byte [esp + 0x38], 0x10
call fcn.0041add0
jmp 0x5050b3
cmp edx, 6
jne 0x504f8a
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x504f69
mov ecx, dword [esi + 0x54]
mov edi, dword [ecx + edi*4]
jmp 0x504f6b
xor edi, edi
lea eax, [edi + 0x28]
lea esi, [esp + 0x10]
call fcn.0041ae20
mov edx, dword [ebx + 0x78]
mov edx, dword [edx + 8]
lea ecx, [ebx + 0x78]
mov eax, esi
push eax
call edx
jmp 0x5050b3
cmp edx, 7
jne 0x504fb5
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x504fab
mov eax, dword [esi + 0x54]
mov edi, dword [eax + edi*4]
lea eax, [edi + 0x44]
jmp 0x50509a
xor edi, edi
lea eax, [edi + 0x44]
jmp 0x50509a
cmp edx, 8
jne 0x504fe0
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x504fd6
mov ecx, dword [esi + 0x54]
mov edi, dword [ecx + edi*4]
lea eax, [edi + 0x2c]
jmp 0x50509a
xor edi, edi
lea eax, [edi + 0x2c]
jmp 0x50509a
cmp edx, 9
jne 0x50500b
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x505001
mov ecx, dword [esi + 0x54]
mov edi, dword [ecx + edi*4]
lea eax, [edi + 0x30]
jmp 0x50509a
xor edi, edi
lea eax, [edi + 0x30]
jmp 0x50509a
cmp edx, 0xa
jne 0x505030
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x505029
mov ecx, dword [esi + 0x54]
mov edi, dword [ecx + edi*4]
lea eax, [edi + 0x34]
jmp 0x50509a
xor edi, edi
lea eax, [edi + 0x34]
jmp 0x50509a
cmp edx, 0xb
jne 0x505055
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x50504e
mov ecx, dword [esi + 0x54]
mov edi, dword [ecx + edi*4]
lea eax, [edi + 0x38]
jmp 0x50509a
xor edi, edi
lea eax, [edi + 0x38]
jmp 0x50509a
cmp edx, 0xc
jne 0x50507a
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x505073
mov ecx, dword [esi + 0x54]
mov edi, dword [ecx + edi*4]
lea eax, [edi + 0x3c]
jmp 0x50509a
xor edi, edi
lea eax, [edi + 0x3c]
jmp 0x50509a
cmp edx, 0xd
jne 0x5050b3
mov eax, esi
call fcn.004053d0
sub edi, eax
cmp edi, dword [esi + 0x60]
jae 0x505095
mov ecx, dword [esi + 0x54]
mov edi, dword [ecx + edi*4]
jmp 0x505097
xor edi, edi
lea eax, [edi + 0x40]
lea esi, [esp + 0x10]
call fcn.0041ae20
mov edx, dword [ebx + 0x78]
mov eax, dword [edx + 8]
lea ecx, [ebx + 0x78]
push 0x59f5c0
call eax
cmp byte [ebp + 0x10], 0
push 0
je 0x5050c7
push 0x1000800
lea ecx, [esp + 0x2c]
push ecx
jmp 0x5050d1
push 0x1000281
lea edx, [esp + 0x2c]
push edx
mov ecx, dword [esp + 0x20]
add ecx, 4
call fcn.00434820
push eax
push 0x1000281
mov esi, ebx
call fcn.004348d0
push 0
lea eax, [esp + 0x14]
push eax
mov edi, ebx
call fcn.0043b1f0
lea ecx, [esp + 0x10]
mov dword [esp + 0x38], 0xffffffff
call fcn.0041add0
mov edi, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov dword [ebx + 0xec], edx
push 0
xor dl, dl
mov esi, ebx
mov dword [ebx + 0xe8], edi
call fcn.0043b400
fld1
push ecx
fstp dword [esp]
mov ecx, ebx
call fcn.0043bd50
fld dword [0x555b58]
push 0
push ecx
lea esi, [esp + 0x2c]
fstp dword [esp]
call fcn.004858f0
push ebx
mov eax, esi
mov dword [esp + 0x3c], 0x18
call fcn.0043b3c0
mov ecx, esi
push ecx
call fcn.004859e0
mov eax, ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10