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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1abc
call fcn.00454700
mov eax, dword [0x4894c8]
xor eax, esp
mov dword [esp + 0x1ab8], eax
mov eax, dword [str.WaveBGM01]
mov ecx, dword [0x47a81c]
movzx edx, word [0x47a820]
push ebx
push esi
mov esi, dword [0xf205e4]
push edi
xor ebx, ebx
mov dword [esp + 0xcc8], eax
movzx eax, byte [0x47a822]
push 0xf4
mov dword [esp + 0xcd0], ecx
lea ecx, [esp + 0xcd7]
push ebx
mov edi, 1
push ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebx
mov word [esp + 0xcdc], dx
mov byte [esp + 0xcde], al
call fcn.00454750
mov edx, dword [str.WaveBGM02]
mov eax, dword [0x47a810]
movzx ecx, word [0x47a814]
mov dword [esp + 0xdd3], edx
movzx edx, byte [0x47a816]
push 0xf4
mov dword [esp + 0xddb], eax
lea eax, [esp + 0xde2]
push ebx
push eax
mov word [esp + 0xde7], cx
mov byte [esp + 0xde9], dl
call fcn.00454750
mov ecx, dword [str.WaveBGM03]
mov edx, dword [0x47a804]
movzx eax, word [0x47a808]
mov dword [esp + 0xede], ecx
movzx ecx, byte [0x47a80a]
push 0xf4
mov dword [esp + 0xee6], edx
lea edx, [esp + 0xeed]
push ebx
push edx
mov word [esp + 0xef2], ax
mov byte [esp + 0xef4], cl
call fcn.00454750
mov eax, dword [str.WaveBGM04]
mov ecx, dword [0x47a7f8]
movzx edx, word [0x47a7fc]
mov dword [esp + 0xfe9], eax
movzx eax, byte [0x47a7fe]
push 0xf4
mov dword [esp + 0xff1], ecx
lea ecx, [esp + 0xff8]
push ebx
push ecx
mov word [esp + 0xffd], dx
mov byte [esp + 0xfff], al
call fcn.00454750
mov edx, dword [str.WaveBGM05]
mov eax, dword [0x47a7ec]
movzx ecx, word [0x47a7f0]
mov dword [esp + 0x10f4], edx
movzx edx, byte [0x47a7f2]
push 0xf4
mov dword [esp + 0x10fc], eax
lea eax, [esp + 0x1103]
push ebx
push eax
mov word [esp + 0x1108], cx
mov byte [esp + 0x110a], dl
call fcn.00454750
mov ecx, dword [str.WaveBGM06]
mov edx, dword [0x47a7e0]
mov dword [esp + 0x11ff], ecx
mov dword [esp + 0x1203], edx
movzx eax, word [0x47a7e4]
movzx ecx, byte [0x47a7e6]
push 0xf4
lea edx, [esp + 0x120e]
push ebx
push edx
mov word [esp + 0x1213], ax
mov byte [esp + 0x1215], cl
call fcn.00454750
mov eax, dword [str.WaveBGM07]
mov ecx, dword [0x47a7d4]
movzx edx, word [0x47a7d8]
add esp, 0x48
mov dword [esp + 0x12c2], eax
movzx eax, byte [0x47a7da]
push 0xf4
mov dword [esp + 0x12ca], ecx
lea ecx, [esp + 0x12d1]
push ebx
push ecx
mov word [esp + 0x12d6], dx
mov byte [esp + 0x12d8], al
call fcn.00454750
mov edx, dword [str.WaveBGM08]
mov eax, dword [0x47a7c8]
movzx ecx, word [0x47a7cc]
mov dword [esp + 0x13cd], edx
movzx edx, byte [0x47a7ce]
push 0xf4
mov dword [esp + 0x13d5], eax
lea eax, [esp + 0x13dc]
push ebx
push eax
mov word [esp + 0x13e1], cx
mov byte [esp + 0x13e3], dl
call fcn.00454750
push 0x5fa
lea ecx, [esp + 0x14dc]
push ebx
push ecx
call fcn.00454750
mov ecx, esi
imul ecx, ecx, 0x160
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
push 0xc4
shr eax, 0x1f
lea edx, [edx + eax + 0x30]
lea ecx, [esp + 0x70]
push ebx
push ecx
mov dword [0x8a96a4], edi
mov dword [esp + 0x64], edx
mov dword [esp + 0x40], edx
call fcn.00454750
push 0xc4
lea edx, [esp + 0x20c]
push ebx
push edx
call fcn.00454750
push 0xc4
lea eax, [esp + 0x150]
push ebx
push eax
call fcn.00454750
add esp, 0x48
push 0xc4
lea ecx, [esp + 0x434]
push ebx
push ecx
call fcn.00454750
push 0xc4
lea edx, [esp + 0x2b0]
push ebx
push edx
call fcn.00454750
push 0xc4
push ebx
lea eax, [esp + 0x388]
push eax
call fcn.00454750
push 0xc4
lea ecx, [esp + 0x520]
push ebx
push ecx
call fcn.00454750
mov edx, dword [0x489174]
mov eax, dword [0x489170]
mov ecx, dword [0x17916c4]
push edx
push eax
push ecx
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0xab0]
push eax
call fcn.004458f0
mov edx, dword [0x489170]
mov esi, eax
mov eax, dword [0x17916c4]
add esp, 0x44
mov ecx, 0x31
lea edi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x489174]
push ecx
push edx
push eax
lea ecx, [esp + 0x1e4]
push ecx
lea edx, [esp + 0x760]
push edx
call fcn.004458f0
mov edx, dword [0x17916c4]
mov esi, eax
mov eax, dword [0x489174]
push eax
mov ecx, 0x31
lea edi, [esp + 0x1f0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x489170]
push ecx
push edx
lea eax, [esp + 0x130]
push eax
lea ecx, [esp + 0x5e4]
push ecx
call fcn.004458f0
mov edx, dword [0x489174]
push edx
mov esi, eax
mov eax, dword [0x489170]
push eax
mov ecx, 0x31
lea edi, [esp + 0x140]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x17916c4]
push ecx
lea edx, [esp + 0x464]
push edx
lea eax, [esp + 0x918]
push eax
call fcn.004458f0
mov edx, dword [0x17916c4]
mov esi, eax
mov ecx, 0x31
lea edi, [esp + 0x46c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x489170]
push 0x2fd
push ecx
push edx
lea eax, [esp + 0x2e8]
push eax
lea ecx, [esp + 0xc4c]
push ecx
call fcn.004458f0
add esp, 0x50
mov ecx, 0x31
mov esi, eax
mov edx, dword [0x489174]
mov eax, dword [0x489170]
push edx
push eax
lea edi, [esp + 0x2a8]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x17916c4]
push ecx
lea edx, [esp + 0x374]
push edx
lea eax, [esp + 0x698]
push eax
call fcn.004458f0
mov edx, dword [0x489170]
mov esi, eax
mov eax, dword [0x17916c4]
mov ecx, 0x31
lea edi, [esp + 0x37c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x489174]
push ecx
push edx
push eax
lea ecx, [esp + 0x518]
push ecx
lea edx, [esp + 0x83c]
push edx
call fcn.004458f0
mov esi, eax
sub esp, 0x9c
mov ecx, 0x31
lea edi, [esp + 0x5bc]
rep movsd dword es:[edi], dword [esi]
mov edi, esp
lea eax, [esp + 0xa6c]
push str.BGMMode
mov ecx, 0x31
lea esi, [esp + 0x110]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.00446d80
mov esi, eax
add esp, 8
mov ecx, 0x31
lea edi, [esp + 0x10c]
rep movsd dword es:[edi], dword [esi]
mov edi, esp
mov ecx, 0x31
lea esi, [esp + 0x29c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xbfc]
push str.BGMModeC
push ecx
call fcn.00446d80
mov edx, dword [0xf205e4]
push edx
push ebx
push ebx
push ebx
mov esi, eax
push 4
mov ecx, 0x31
lea edi, [esp + 0x2b8]
push 0x478800
rep movsd dword es:[edi], dword [esi]
call fcn.00444af0
mov eax, dword [0xf205e4]
add esp, 0xe4
push eax
push ebx
push ebx
push 1
push 4
push 0x478800
call fcn.00444af0
add esp, 0x18
push ebx
push ebx
push ebx
sub esp, 0xc4
mov ecx, 0x31
mov edx, dword [0x489170]
mov edi, esp
lea esi, [esp + 0x118]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x489174]
push ecx
push edx
push ebx
push ebx
sub esp, 0xc4
mov ecx, 0x31
lea esi, [esp + 0x2b4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00413710
mov eax, dword [0x489174]
add esp, 0x1a4
push ebx
push ebx
push ebx
sub esp, 0xc4
mov edi, esp
push eax
mov ecx, 0x31
lea esi, [esp + 0x1e4]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x489170]
push ecx
push ebx
push ebx
sub esp, 0xc4
mov ecx, 0x31
mov esi, 0x17916bc
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00413710
push ebx
push ebx
push 0x12c
push 0x478800
push 5
call fcn.00415010
add esp, 0x1b8
jmp 0x432220
mov edx, dword [0x489174]
mov eax, dword [0x489170]
push ebx
push ebx
push ebx
sub esp, 0xc4
mov edi, esp
push edx
push eax
push ebx
push ebx
mov ecx, 0x31
lea esi, [esp + 0x128]
rep movsd dword es:[edi], dword [esi]
sub esp, 0xc4
mov ecx, 0x31
lea esi, [esp + 0x2b4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00413710
mov ecx, dword [esp + 0x210]
mov edx, dword [esp + 0x20c]
add esp, 0x1a4
push ecx
push edx
push ebx
push ebx
sub esp, 0xc4
mov ecx, 0x31
lea esi, [esp + 0x11c]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00446080
push eax
call fcn.0044bb50
movzx ebx, al
lea eax, [esp + 0x118]
push 0xffffffffffffffff
push eax
call fcn.00449ed0
xor edi, edi
add esp, 0xe0
cmp ebx, edi
mov dword [esp + 0x28], eax
jne 0x4322f5
mov dword [esp + 0x24], edi
xor edi, edi
cmp dword [esp + 0x20], 1
jne 0x4326b3
lea edx, [esp + 0x38]
push 0xffffffffffffffff
push edx
call fcn.00449f20
add esp, 8
xor edi, edi
test eax, eax
jne 0x432669
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], edi
jmp 0x432695
cmp dword [esp + 0x18], 1
je 0x432309
cmp ebx, 0x6e
je 0x4322c4
cmp ebx, 0x8c
je 0x4322c4
cmp ebx, 0x82
je 0x4322c4
cmp ebx, 0xbe
jl 0x432321
cmp ebx, 0xc5
jle 0x4322c4
cmp ebx, 0xffffffff
je 0x4323a5
cmp ebx, 0xa
jl 0x432330
cmp ebx, 0x14
jle 0x432338
cmp ebx, 0xb4
je 0x4323a5
mov edx, dword [0x489170]
push ebx
push edi
push edi
sub esp, 0xc4
mov edi, esp
push 0
push 0
sub esp, 0xc4
mov ecx, 0x31
lea esi, [esp + 0x1e4]
rep movsd dword es:[edi], dword [esi]
mov edi, esp
mov ecx, 0x31
lea esi, [esp + 0x374]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x489174]
push ecx
push edx
push 0
push 0
sub esp, 0xc4
mov ecx, 0x31
lea esi, [esp + 0x380]
mov edi, esp
mov dword [esp + 0x28c], ebx
rep movsd dword es:[edi], dword [esi]
call fcn.00412190
add esp, 0x270
cmp dword [esp + 0x24], ebx
je 0x4323c6
mov eax, dword [0xf205e8]
push eax
push 0
push 0
push 7
push 1
push str.SYS_OV
call fcn.00444af0
add esp, 0x18
cmp dword [esp + 0x28], 1
mov dword [esp + 0x24], ebx
jne case.0x432429.25
mov edi, dword [esp + 0xc]
cmp edi, ebx
je case.0x432429.25
mov ecx, dword [0xf205e8]
push ecx
push 0
push 0
push 7
push 1
push str.SYS_OK
call fcn.00444af0
lea edx, [esp + 0x44]
push 0xffffffffffffffff
push edx
call fcn.00449ed0
lea eax, [esp + 0x4c]
push eax
call fcn.0044a020
lea esi, [ebx - 0xa]
add esp, 0x24
cmp esi, 0xaa
ja case.0x432429.25
movzx ecx, byte [esi + 0x432a68]
jmp dword [ecx*4 + 0x432a44]
mov edi, dword [esp + 0x14]
push edi
push 0
push 0
push 0
push 4
push 0x478800
mov dword [esp + 0x24], ebx
call fcn.00444af0
imul esi, esi, 0xff
push edi
push 0
push 0xc8
push 0
lea edx, [esp + esi + 0xcf0]
push 2
push edx
call fcn.00444af0
lea eax, [esp + 0x5c]
push 0xffffffffffffffff
push eax
mov dword [esp + 0x50], 1
call fcn.00449ed0
lea ecx, [esp + 0x64]
push ecx
call fcn.0044a020
add esp, 0x3c
jmp case.0x432429.25
mov ebx, 1
cmp dword [esp + 0x18], ebx
je 0x4324a5
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xc], edx
mov edi, edx
cmp edi, 0xb
jge 0x4324ec
test edi, edi
je 0x4324ec
mov esi, dword [esp + 0x14]
push esi
push 0
push 0
push 0
push 4
push 0x478800
call fcn.00444af0
push esi
push 0
push 0xc8
push 0
lea eax, [esp + 0x13e9]
push 2
mov edi, 0x11
push eax
mov dword [esp + 0x3c], edi
call fcn.00444af0
add esp, 0x30
jmp 0x432543
mov esi, dword [esp + 0x14]
push esi
push 0
push 0
push 0
push 4
push 0x478800
call fcn.00444af0
add esp, 0x18
test edi, edi
jne 0x432518
mov dword [esp + 0xc], 0x11
mov edi, dword [esp + 0xc]
jmp 0x43251e
sub edi, ebx
mov dword [esp + 0xc], edi
lea ecx, [edi - 0xa]
push esi
imul ecx, ecx, 0xff
push 0
push 0xc8
push 0
lea edx, [esp + ecx + 0xcd8]
push 2
push edx
call fcn.00444af0
add esp, 0x18
mov dword [esp + 0x1c], edi
lea eax, [esp + 0x2c]
push 0xffffffffffffffff
push eax
mov dword [esp + 0x20], ebx
call fcn.00449ed0
lea ecx, [esp + 0x34]
push ecx
call fcn.0044a020
add esp, 0xc
jmp case.0x432429.25
mov edx, dword [esp + 0x14]
push edx
xor esi, esi
push esi
push esi
push esi
push 4
push 0x478800
call fcn.00444af0
add esp, 0x18
mov dword [esp + 0xc], esi
mov dword [esp + 0x18], esi
jmp case.0x432429.25
mov ebx, 1
cmp dword [esp + 0x18], ebx
je 0x4325a4
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov edi, eax
cmp edi, 0x11
jge 0x4325df
mov esi, dword [esp + 0x14]
push esi
push 0
push 0
push 0
push 4
push 0x478800
call fcn.00444af0
add esp, 0x18
test edi, edi
jne 0x4325d8
mov dword [esp + 0xc], 0xa
mov edi, dword [esp + 0xc]
jmp 0x43251e
add edi, ebx
jmp 0x43251a
mov eax, dword [0xf205e4]
push eax
push 0
push 0
push 0
push 4
push 0x478800
call fcn.00444af0
mov ecx, dword [esp + 0x2c]
push ecx
push 0
push 0xc8
push 0
lea edx, [esp + 0xcf0]
push 2
mov esi, 0xa
push edx
mov dword [esp + 0x3c], esi
call fcn.00444af0
add esp, 0x30
mov dword [esp + 0x1c], esi
jmp 0x432547
mov eax, 0x30
cmp dword [esp + 0x10], eax
jle 0x43263e
sub dword [esp + 0x10], 1
jmp case.0x432429.25
mov dword [esp + 0x10], eax
jmp case.0x432429.25
mov eax, 0x190
cmp dword [esp + 0x10], eax
jge 0x43263e
add dword [esp + 0x10], 1
jmp case.0x432429.25
mov dword [esp + 0x20], 1
jmp 0x4322cf
mov eax, dword [esp + 0x38]
cmp eax, edi
jl 0x432679
cmp eax, dword [0x489170]
jle 0x43267d
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x3c]
cmp ecx, edi
jl 0x43268d
cmp ecx, dword [0x489174]
jle 0x432691
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], eax
cmp eax, 0x30
jge 0x4326a4
mov dword [esp + 0x10], 0x30
jmp 0x4326b3
cmp eax, 0x190
jle 0x4326b3
mov dword [esp + 0x10], 0x190
mov ebx, dword [esp + 0x10]
cmp ebx, dword [esp + 0x34]
je 0x43270a
lea eax, [ebx - 0x30]
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
mov dword [esp + 0x34], ebx
fdiv qword [0x478b40]
call fcn.00454c10
mov esi, eax
cmp esi, edi
mov dword [esp + 0x14], esi
jge 0x4326e7
mov dword [esp + 0x14], edi
jmp 0x4326f4
cmp esi, 0x64
jle 0x4326f8
mov dword [esp + 0x14], 0x64
mov esi, dword [esp + 0x14]
push esi
push edi
call fcn.004442f0
push esi
push 1
call fcn.004442f0
add esp, 0x10
push edi
push 0x1c0
push 0x30
sub esp, 0xc4
mov edi, esp
push 0x1a
add ebx, 0xffffffd0
push ebx
push 0x1c0
push 0x30
mov ecx, 0x31
lea esi, [esp + 0x2b8]
rep movsd dword es:[edi], dword [esi]
sub esp, 0xc4
mov ecx, 0x31
lea esi, [esp + 0x2b4]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00413710
add esp, 0x1a4
cmp dword [esp + 0x18], 1
jne 0x4327c9
mov edx, dword [0x489170]
push 0x82
push 0
push 0
sub esp, 0xc4
mov edi, esp
push 0
push 0
sub esp, 0xc4
mov ecx, 0x31
lea esi, [esp + 0x1e4]
rep movsd dword es:[edi], dword [esi]
mov edi, esp
mov ecx, 0x31
lea esi, [esp + 0x374]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x489174]
push ecx
push edx
push 0
push 0
sub esp, 0xc4
mov ecx, 0x31
lea esi, [esp + 0x380]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00412190
add esp, 0x270
mov eax, dword [esp + 0xc]
test eax, eax
je 0x432838
push eax
mov eax, dword [0x489174]
push 0
push 0
sub esp, 0xc4
mov edi, esp
push 0
push 0
sub esp, 0xc4
mov ecx, 0x31
lea esi, [esp + 0x1e4]
rep movsd dword es:[edi], dword [esi]
mov edi, esp
push eax
mov ecx, 0x31
lea esi, [esp + 0x378]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x489170]
push ecx
push 0
push 0
sub esp, 0xc4
mov ecx, 0x31
lea esi, [esp + 0x380]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00412190
add esp, 0x270
push 1
call dword [0x477080]
mov edx, dword [0x12faa14]
cmp edx, 1
je 0x4328ec
mov eax, dword [0x489174]
push 0
push 0
push 0
sub esp, 0xc4
mov edi, esp
push eax
mov ecx, 0x31
lea esi, [esp + 0x1e4]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x489170]
push ecx
push 0
push 0
sub esp, 0xc4
mov ecx, 0x31
mov esi, 0x17915f8
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.00413710
mov edx, dword [0x489174]
mov eax, dword [0x489170]
add esp, 0x1a4
push 0
push 0
sub esp, 0xc4
mov edi, esp
push edx
push eax
push 0
mov ecx, 0x31
mov esi, 0x17915f8
push 0
rep movsd dword es:[edi], dword [esi]
call fcn.00445770
lea ecx, [esp + 0x11c]
push ecx
call fcn.0044a020
add esp, 0xe0
cmp eax, 1
je 0x43296d
xor ebx, ebx
jmp 0x432220
call fcn.004460a0
lea eax, [esp + 0x48]
push eax
call fcn.00446cd0
lea ecx, [esp + 0x1dc]
push ecx
call fcn.00446cd0
lea edx, [esp + 0x118]
push edx
call fcn.00446cd0
lea eax, [esp + 0x43c]
push eax
call fcn.00446cd0
lea ecx, [esp + 0x2b0]
push ecx
call fcn.00446cd0
lea edx, [esp + 0x37c]
push edx
call fcn.00446cd0
lea eax, [esp + 0x510]
push eax
call fcn.00446cd0
add esp, 0x1c
xor eax, eax
jmp 0x432a1e
mov edx, dword [esp + 0x14]
push edx
push 0
push 0
push 0
push 4
push 0x478800
call fcn.00444af0
add esp, 0x18
mov ecx, dword [0xf205e4]
push ecx
push 0
push 0
push 0
push 4
push 0x478800
call fcn.00444af0
mov edx, dword [0xf205e4]
push edx
push 0
push 0
push 1
push 4
push 0x478800
call fcn.00444af0
lea eax, [esp + 0x78]
push eax
call fcn.00446cd0
lea ecx, [esp + 0x20c]
push ecx
call fcn.00446cd0
lea edx, [esp + 0x148]
push edx
call fcn.00446cd0
lea eax, [esp + 0x46c]
push eax
call fcn.00446cd0
lea ecx, [esp + 0x2e0]
add esp, 0x40
push ecx
call fcn.00446cd0
lea edx, [esp + 0x36c]
push edx
call fcn.00446cd0
lea eax, [esp + 0x500]
push eax
call fcn.00446cd0
mov ecx, dword [0xf205e4]
push ecx
push 0
call fcn.004442f0
mov edx, dword [0xf205e4]
push edx
push 1
call fcn.004442f0
add esp, 0x1c
mov eax, 1
mov ecx, dword [esp + 0x1ac4]
pop edi
pop esi
pop ebx
xor ecx, esp
mov dword [0x8a96a4], 0
mov byte [0x8a96a8], 1
call fcn.004546e4
mov esp, ebp
pop ebp
ret