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

Disassembly:
push 0xffffffffffffffff
push 0x782d34
mov eax, dword fs:[0]
push eax
sub esp, 0x300
mov eax, dword [0x867e6c]
xor eax, esp
mov dword [esp + 0x2f8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x867e6c]
xor eax, esp
push eax
lea eax, [esp + 0x314]
mov dword fs:[0], eax
mov eax, dword [esp + 0x324]
mov esi, edx
push 4
mov dword [esp + 0x40], ecx
xor edx, edx
xor ebx, ebx
push 0x80b784
lea ecx, [esp + 0x28]
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], ebx
mov word [esp + 0x2c], dx
call fcn.00403a80
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x58]
lea ebp, [esi + 0x74]
push ecx
mov esi, ebp
mov dword [esp + 0x324], ebx
call fcn.00412480
mov dword [esp + 0x31c], 0xffffffff
cmp dword [esp + 0x38], 8
jb 0x71781b
mov edx, dword [esp + 0x24]
push edx
call fcn.006441c7
add esp, 4
mov eax, dword [ebp + 0x18]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x44], eax
mov eax, dword [ebp]
cmp edi, ebx
je 0x717831
cmp edi, eax
je 0x717836
call fcn.006441b7
mov esi, dword [esp + 0x58]
cmp esi, dword [esp + 0x44]
jne 0x71788c
xor ecx, ecx
push 0x1c
mov word [esp + 0x28], cx
push str.Name_not_specified_on_Song
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], ebx
call fcn.00403a80
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x2c], 0
jne 0x717871
mov byte [eax + 0x2c], 1
cmp dword [esp + 0x38], 8
jb 0x717885
mov edx, dword [esp + 0x24]
push edx
call fcn.006441c7
add esp, 4
xor al, al
jmp 0x7182d7
cmp edi, ebx
jne 0x717a8e
call fcn.006441b7
xor edi, edi
cmp esi, dword [edi + 0x18]
jne 0x7178a5
call fcn.006441b7
push 0xffffffffffffffff
xor ecx, ecx
lea eax, [esi + 0x28]
push ebx
mov word [esp + 0x148], cx
mov esi, 7
push eax
lea ecx, [esp + 0x148]
mov dword [esp + 0x160], esi
mov dword [esp + 0x15c], ebx
call fcn.00401880
mov dword [esp + 0x31c], 1
push 6
xor edx, edx
push str.NoLoop
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], ebx
mov word [esp + 0x2c], dx
call fcn.00403a80
mov byte [esp + 0x31c], 2
mov eax, dword [ebp]
mov edi, dword [ebp + 0x18]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x50]
push edx
mov esi, ebp
mov dword [esp + 0x48], eax
call fcn.00412480
mov esi, eax
mov eax, dword [esi]
cmp eax, ebx
je 0x717930
cmp eax, dword [esp + 0x40]
je 0x717935
call fcn.006441b7
cmp dword [esi + 4], edi
mov byte [esp + 0x31c], 1
setne byte [esp + 0x1b]
cmp dword [esp + 0x38], 8
jb 0x717959
mov eax, dword [esp + 0x24]
push eax
call fcn.006441c7
add esp, 4
cmp byte [esp + 0x1b], 0
je 0x717968
mov ecx, dword [esp + 0x3c]
mov byte [ecx + 0x5c], 0
push 3
xor edx, edx
push 0x80b7dc
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], ebx
mov word [esp + 0x2c], dx
call fcn.00403a80
mov byte [esp + 0x31c], 3
mov eax, dword [ebp]
mov edi, dword [ebp + 0x18]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x50]
push edx
mov esi, ebp
mov dword [esp + 0x48], eax
call fcn.00412480
mov esi, eax
mov eax, dword [esi]
cmp eax, ebx
je 0x7179bc
cmp eax, dword [esp + 0x40]
je 0x7179c1
call fcn.006441b7
cmp dword [esi + 4], edi
mov byte [esp + 0x31c], 1
setne byte [esp + 0x1b]
cmp dword [esp + 0x38], 8
jb 0x7179e5
mov eax, dword [esp + 0x24]
push eax
call fcn.006441c7
add esp, 4
cmp byte [esp + 0x1b], 0
je 0x7179f4
mov ecx, dword [esp + 0x3c]
mov byte [ecx + 0x5d], 1
push 6
xor edx, edx
push str.Offset
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], ebx
mov word [esp + 0x2c], dx
call fcn.00403a80
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x44]
push ecx
mov esi, ebp
mov byte [esp + 0x324], 4
call fcn.00412480
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov byte [esp + 0x31c], 1
cmp dword [esp + 0x38], 8
jb 0x717a51
mov edx, dword [esp + 0x24]
push edx
call fcn.006441c7
add esp, 4
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x44], eax
mov eax, dword [ebp]
cmp esi, ebx
je 0x717a63
cmp esi, eax
je 0x717a68
call fcn.006441b7
cmp edi, dword [esp + 0x44]
je 0x717aab
cmp esi, ebx
jne 0x717a95
call fcn.006441b7
xor esi, esi
cmp edi, dword [esi + 0x18]
jne 0x717a83
call fcn.006441b7
cmp dword [edi + 0x40], 8
jb 0x717a99
mov edi, dword [edi + 0x2c]
jmp 0x717a9c
mov edi, dword [edi]
jmp 0x71789b
mov esi, dword [esi]
jmp 0x717a79
add edi, 0x2c
push edi
call fcn.006446f6
mov ecx, dword [esp + 0x40]
add esp, 4
mov dword [ecx], eax
push 4
xor edx, edx
push str.File
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], ebx
mov word [esp + 0x2c], dx
call fcn.00403a80
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x44]
push ecx
mov esi, ebp
mov byte [esp + 0x324], 5
call fcn.00412480
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov byte [esp + 0x31c], 1
cmp dword [esp + 0x38], 8
jb 0x717b08
mov edx, dword [esp + 0x24]
push edx
call fcn.006441c7
add esp, 4
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x44], eax
mov eax, dword [ebp]
cmp esi, ebx
je 0x717b1a
cmp esi, eax
je 0x717b1f
call fcn.006441b7
cmp edi, dword [esp + 0x44]
jne 0x717b90
push str.File_not_specified_on_Song
lea ecx, [esp + 0x24]
call fcn.00403550
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x2c], 0
jne 0x717b41
mov byte [eax + 0x2c], 1
mov esi, 8
cmp dword [esp + 0x38], esi
jb 0x717b59
mov ecx, dword [esp + 0x24]
push ecx
call fcn.006441c7
add esp, 4
xor edx, edx
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], ebx
mov word [esp + 0x24], dx
cmp dword [esp + 0x154], esi
jb 0x717885
mov eax, dword [esp + 0x140]
push eax
call fcn.006441c7
add esp, 4
xor al, al
jmp 0x7182d7
cmp esi, ebx
jne 0x717c6d
call fcn.006441b7
xor esi, esi
cmp edi, dword [esi + 0x18]
jne 0x717ba9
call fcn.006441b7
push 0xffffffffffffffff
xor ecx, ecx
lea eax, [edi + 0x28]
push ebx
mov word [esp + 0x164], cx
push eax
lea ecx, [esp + 0x164]
mov dword [esp + 0x17c], 7
mov dword [esp + 0x178], ebx
call fcn.00401880
push 0x80b83c
lea ecx, [esp + 0x24]
mov byte [esp + 0x320], 6
call fcn.00403550
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x44]
push eax
mov esi, ebp
mov byte [esp + 0x324], 7
call fcn.00412480
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov byte [esp + 0x31c], 6
cmp dword [esp + 0x38], 8
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], edi
jb 0x717c30
mov ecx, dword [esp + 0x24]
push ecx
call fcn.006441c7
add esp, 4
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp]
mov dword [esp + 0x44], edx
cmp esi, ebx
je 0x717c42
cmp esi, eax
je 0x717c47
call fcn.006441b7
cmp edi, dword [esp + 0x44]
je 0x717c93
lea esi, [esp + 0x54]
call fcn.00417dc0
add eax, 0x1c
lea ecx, [esp + 0x20]
call fcn.00438d30
cmp dword [eax + 0x18], 0x10
jb 0x717c74
mov eax, dword [eax + 4]
jmp 0x717c77
mov esi, dword [esi]
jmp 0x717b9f
add eax, 4
push eax
call fcn.00645349
mov eax, dword [esp + 0x40]
add esp, 4
fstp dword [eax + 0xd0]
lea ecx, [esp + 0x20]
call fcn.004012f0
lea ecx, [esp + 0x158]
push ecx
lea edi, [esp + 0x24]
call fcn.0043a440
add esp, 4
mov ebx, dword [esp + 0x1c]
push eax
lea edx, [esp + 0x50]
add ebx, 0x9c
push edx
mov esi, ebx
mov byte [esp + 0x324], 8
call fcn.00412a20
mov byte [esp + 0x31c], 6
cmp dword [esp + 0x38], 8
jb 0x717ce2
mov eax, dword [esp + 0x24]
push eax
call fcn.006441c7
add esp, 4
mov esi, dword [esp + 0x4c]
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx]
test esi, esi
je 0x717cf3
cmp esi, eax
je 0x717cf8
call fcn.006441b7
cmp dword [esp + 0x50], edi
je 0x717d29
test esi, esi
jne 0x717d25
call fcn.006441b7
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esi + 0x18]
jne 0x717d15
call fcn.006441b7
mov edx, dword [esp + 0x50]
mov esi, dword [edx + 0x28]
mov dword [esp + 0x4c], esi
jmp 0x717e1e
mov esi, dword [esi]
jmp 0x717d07
mov edi, dword [esp + 0x1c]
mov esi, dword [edi + 0x20]
lea eax, [esp + 0x158]
lea ecx, [esp + 0x20]
mov dword [esp + 0x4c], esi
call fcn.00438d30
mov byte [esp + 0x31c], 9
mov edx, dword [edi]
push eax
mov eax, dword [edx + 4]
push esi
mov ecx, edi
call eax
test al, al
lea ecx, [esp + 0x20]
sete byte [esp + 0x1b]
mov byte [esp + 0x31c], 6
call fcn.004012f0
cmp byte [esp + 0x1b], 0
je 0x717dc1
lea ecx, [esp + 0x158]
push ecx
mov edx, str.Unable_to_load_music:
lea esi, [esp + 0x24]
call fcn.00406c30
add esp, 4
cmp byte [edi + 0x2c], 0
jne 0x717d99
mov byte [edi + 0x2c], 1
lea ecx, [esp + 0x20]
call fcn.00406fb0
lea ecx, [esp + 0x158]
call fcn.00406fb0
lea ecx, [esp + 0x13c]
call fcn.00406fb0
xor al, al
jmp 0x7182d7
lea edx, [esp + 0x158]
push edx
lea edi, [esp + 0x24]
call fcn.0043a440
add esp, 4
push eax
push ebx
mov byte [esp + 0x324], 0xa
call fcn.00412ab0
mov ecx, edi
mov dword [eax], esi
mov byte [esp + 0x31c], 6
call fcn.00406fb0
mov edi, dword [esp + 0x1c]
lea eax, [edi + 4]
push eax
lea eax, [esp + 0x50]
call fcn.00412580
mov ecx, dword [eax]
push edi
push 0x7176d0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x4000000a
push ecx
call dword [0x886b94]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x44]
push ecx
add edi, 4
mov dword [edx + 0x1c], esi
call fcn.00412630
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x717ecf
call fcn.006441b7
xor eax, eax
mov ebx, dword [esp + 0x44]
cmp ebx, dword [eax + 0x18]
jne 0x717e5c
call fcn.006441b7
push str.Tempo
lea ecx, [esp + 0x24]
call fcn.00403550
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x44]
push eax
mov esi, ebp
mov byte [esp + 0x324], 0xb
call fcn.00412480
mov esi, dword [eax]
mov ecx, dword [eax + 4]
mov byte [esp + 0x31c], 6
cmp dword [esp + 0x38], 8
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], ecx
jb 0x717eac
mov edx, dword [esp + 0x24]
push edx
call fcn.006441c7
add esp, 4
mov edi, dword [ebp + 0x18]
mov ebp, dword [ebp]
test esi, esi
je 0x717eba
cmp esi, ebp
je 0x717ebf
call fcn.006441b7
cmp dword [esp + 0x58], edi
jne 0x717ed6
mov ecx, dword [ebx + 0x18]
call fcn.0058ec10
jmp 0x717ef9
mov eax, dword [eax]
jmp 0x717e4e
lea esi, [esp + 0x54]
call fcn.00417dc0
add eax, 0x1c
cmp dword [eax + 0x18], 8
jb 0x717eed
mov eax, dword [eax + 4]
jmp 0x717ef0
add eax, 4
push eax
call fcn.006446f6
add esp, 4
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 0xd4], eax
mov edx, dword [ebx + 0x18]
xor ecx, ecx
xor esi, esi
call fcn.0058ecc0
mov dword [esp + 0x4c], eax
cmp eax, 0xffffffff
je 0x717f5f
mov edi, dword [esp + 0x3c]
add edi, 4
nop
lea ecx, [esp + 0x26c]
call fcn.00434f60
fild dword [esp + 0x4c]
lea edx, [esp + 0x264]
push edx
fdiv qword [0x82dc58]
push edi
fstp dword [esp + 0x26c]
call fcn.004126f0
mov edx, dword [ebx + 0x18]
inc esi
mov ecx, esi
call fcn.0058ecc0
mov dword [esp + 0x4c], eax
cmp eax, 0xffffffff
jne 0x717f20
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x13c]
call fcn.007154e0
test eax, eax
je 0x717fcc
lea eax, [esp + 0x13c]
push eax
mov edx, str.Song_with_name
lea esi, [esp + 0x60]
call fcn.00406c30
add esp, 4
mov edx, str._already_specified_
mov ecx, eax
lea edi, [esp + 0x20]
mov byte [esp + 0x31c], 0xc
call fcn.00410080
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x2c], 0
jne 0x717fb2
mov byte [eax + 0x2c], 1
lea ecx, [esp + 0x20]
call fcn.00406fb0
lea ecx, [esp + 0x5c]
mov byte [esp + 0x31c], 6
call fcn.00406fb0
lea ecx, [esp + 0x174]
push ecx
call fcn.00411fc0
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x31c], 0xd
mov ecx, dword [edx + 0x30]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
lea edx, [esp + 0x174]
push edx
call eax
test al, al
je 0x718137
mov bl, 0xf
jmp 0x718010
mov eax, dword [esp + 0x174]
cmp eax, 1
jne 0x7180dd
lea edi, [eax + 4]
mov eax, dword [esp + 0x1a8]
push 0x80b8d0
lea ecx, [esp + 0x198]
call fcn.00404150
test eax, eax
jne 0x718177
lea ecx, [esp + 0x264]
push ecx
call fcn.004121b0
mov edx, dword [esp + 0x1c]
push edx
lea edx, [esp + 0x268]
lea ecx, [esp + 0x178]
mov byte [esp + 0x320], 0xe
call fcn.00715a00
test al, al
je 0x718151
lea eax, [esp + 0x264]
push eax
lea ecx, [esp + 0x80]
push ecx
mov ecx, eax
call fcn.00412e70
mov ecx, dword [esp + 0x3c]
push eax
lea edx, [esp + 0x44]
add ecx, 0x3c
push edx
push ecx
mov byte [esp + 0x328], bl
call fcn.00413380
lea esi, [esp + 0x98]
call fcn.00412240
cmp dword [esp + 0x94], 8
jb 0x7180cf
mov eax, dword [esp + 0x80]
push eax
call fcn.006441c7
add esp, 4
lea esi, [esp + 0x264]
call fcn.00412240
jmp 0x7180ef
cmp eax, 3
je 0x7181e2
cmp eax, 2
je 0x71824d
lea ecx, [esp + 0x174]
push ecx
mov byte [esp + 0x320], 6
call fcn.00412070
lea edx, [esp + 0x174]
push edx
call fcn.00411fc0
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x31c], 0xd
mov ecx, dword [eax + 0x30]
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
lea eax, [esp + 0x174]
push eax
call edx
test al, al
jne 0x718010
lea eax, [esp + 0x174]
push eax
mov byte [esp + 0x320], 6
call fcn.00412070
jmp 0x717da2
lea esi, [esp + 0x264]
call fcn.00412240
lea ecx, [esp + 0x174]
push ecx
mov byte [esp + 0x320], 6
call fcn.00412070
jmp 0x717da2
lea edx, [esp + 0x194]
push edx
mov edx, 0x80b8e0
lea esi, [esp + 0x24]
call fcn.00406c30
add esp, 4
mov edx, 0x80b8dc
mov ecx, eax
lea edi, [esp + 0x5c]
mov byte [esp + 0x31c], 0x10
call fcn.00410080
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x2c], 0
jne 0x7181b6
mov byte [eax + 0x2c], 1
lea ecx, [esp + 0x5c]
call fcn.00406fb0
lea ecx, [esp + 0x20]
call fcn.00406fb0
lea eax, [esp + 0x174]
push eax
mov byte [esp + 0x320], 6
call fcn.00412070
jmp 0x717da2
lea ecx, [esp + 0x194]
push ecx
mov edx, 0x80b908
lea esi, [esp + 0x24]
call fcn.00406c30
add esp, 4
mov edx, 0x80b904
mov ecx, eax
lea edi, [esp + 0x5c]
mov byte [esp + 0x31c], 0x11
call fcn.00410080
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x2c], 0
jne 0x718221
mov byte [eax + 0x2c], 1
lea ecx, [esp + 0x5c]
call fcn.00406fb0
lea ecx, [esp + 0x20]
call fcn.00406fb0
lea edx, [esp + 0x174]
push edx
mov byte [esp + 0x320], 6
call fcn.00412070
jmp 0x717da2
xor eax, eax
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x144]
push ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x80], 7
mov dword [esp + 0x7c], 0
mov word [esp + 0x6c], ax
call fcn.00401880
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x78], edx
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x40]
push eax
add ecx, 0x7c
push ecx
lea ebx, [esp + 0x64]
mov byte [esp + 0x324], 0x12
call fcn.004128d0
mov esi, ebx
call fcn.00407150
lea edx, [esp + 0x174]
push edx
mov byte [esp + 0x320], 6
call fcn.00412070
lea ecx, [esp + 0x158]
call fcn.00406fb0
lea ecx, [esp + 0x13c]
call fcn.00406fb0
mov al, 1
mov ecx, dword [esp + 0x314]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2f8]
xor ecx, esp
call fcn.00643db8
add esp, 0x30c
ret 4