Function at 0x45cf80
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
mov eax, dword [0x6a4108]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x73e2b8]
mov ecx, dword [0x73e2c0]
mov edx, dword [0x73e2d0]
mov dword [ebp - 0x68], ecx
mov ecx, dword [0x73e2d8]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x68]
push esi
mov esi, dword [0x73e2cc]
mov dword [ebp - 0x54], edx
mov edx, dword [0x73e2c8]
push edi
mov edi, dword [0x73e2b4]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0xe8], 0xa
mov dword [ebp - 0xe4], 0xb
mov dword [ebp - 0xe0], 0x1d
mov dword [ebp - 0xdc], 0xc
mov dword [ebp - 0xd8], 7
mov dword [ebp - 0xd4], 3
mov dword [ebp - 0xa0], 0x8060402
mov byte [ebp - 0x9c], 0xa
mov dword [ebp - 0x80], 0x1a191817
mov byte [ebp - 0x7c], 0x1b
mov dword [ebp - 0xb0], 0xd0e0f13
mov byte [ebp - 0xac], 0xc
mov dword [ebp - 0x90], 0x9070503
mov byte [ebp - 0x8c], 0x14
mov dword [ebp - 0xa8], 0x1f1e1d1c
mov byte [ebp - 0xa4], 0x20
mov dword [ebp - 0x70], 0x8060402
mov byte [ebp - 0x6c], 0xa
mov dword [ebp - 0x78], 0x1f1e1d1c
mov byte [ebp - 0x74], 0x20
mov dword [ebp - 0x88], 0x10111218
mov byte [ebp - 0x84], 0xf
mov dword [ebp - 0x44], 0x9070503
mov byte [ebp - 0x40], 0x19
mov dword [ebp - 0x98], 0x25242322
mov byte [ebp - 0x94], 0x26
mov dword [ebp - 0x20], str.fl_wait_1
mov dword [ebp - 0x1c], str.fl_wait_1
mov dword [ebp - 0x18], str.fl_wait
mov dword [ebp - 0x14], str.fl_wait
mov dword [ebp - 0x10], str.fl_wait
mov dword [ebp - 0xc], str.fl_wait_1
mov dword [ebp - 8], str.fl_wait
mov byte [ebp - 0x49], 0
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xc8], edi
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], edx
mov dword [0x697a64], 9
mov dword [ebp - 0x64], 0
call fcn.004cd300
push 0x36b0
mov dword [ebp - 0xb4], eax
call fcn.004cd310
call fcn.0046b6a0
mov ecx, dword [0x73e698]
push 0x3e8
movsx edi, word [ecx + 0x64]
add edi, dword [0x73e69c]
call fcn.0046b6f0
add esp, 8
cmp eax, 0xfffffffe
je 0x45d160
push 0x3e8
call fcn.0046b660
add esp, 4
push 0x3e8
call fcn.0046b720
mov esi, eax
add esp, 4
cmp esi, 0xfffffffe
je 0x45d19a
push 0
push 0xe
push 0
push edi
push 0
push 0x2ec
push 0x70
push esi
push 0
call fcn.004eecd0
push 0xff
push esi
call fcn.004cb6f0
add esp, 0x2c
call fcn.0043cf20
mov edi, dword [ebp - 0x60]
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 1
mov dword [ebp - 0xfc], 4
mov dword [ebp - 0xf8], 2
mov dword [ebp - 0xf4], 3
mov dword [ebp - 0xf0], 5
mov dword [ebp - 0xec], 6
xor esi, esi
lea ebx, [ebx]
mov eax, dword [ebp + esi*4 - 0x104]
push dword [eax*4 + 0x73e300]
push esi
push edi
call fcn.0046c2d0
inc esi
add esp, 0xc
cmp esi, 7
jl 0x45d1f0
call fcn.0043cf20
cmp al, 1
jne 0x45d21f
push dword [0x73e310]
jmp 0x45d225
push dword [0x73e348]
push 2
push edi
call fcn.0046c2d0
add esp, 0xc
push dword [0x73e3b0]
push 0
push dword [ebp - 0x48]
call fcn.0046c2d0
push dword [0x73e398]
push 0
push dword [ebp - 0x68]
call fcn.0046c2d0
push dword [0x73e2e0]
push 0
push dword [ebp - 0x50]
call fcn.0046c2d0
push dword [0x73e3c0]
push 8
push edi
call fcn.0046c2d0
push 0
push str.ins_mainmenu_chapter_title_tx
push dword [ebp - 0x3c]
call fcn.004c5c20
push 0
push str.ins_mainmenu_select_tx_005
push edi
call fcn.004c5c20
add esp, 0x48
push 0
push str.ins_mainmenu_select_tx_006
push edi
call fcn.004c5c20
lea ecx, [ebp - 0xd0]
mov eax, 0x514
add esp, 0xc
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x50], eax
mov edi, edi
mov edi, dword [ecx]
mov esi, dword [str.fl_in]
cmp edi, dword [ebp - 0x5c]
push eax
cmove esi, dword [str.fl_in_1]
push edi
call fcn.004c5a70
push esi
push edi
call fcn.004c57c0
push 1
push edi
call fcn.004c59b0
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x48]
add eax, 0x64
add ecx, 4
add esp, 0x18
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x48], ecx
cmp eax, 0x7d0
jl 0x45d2b0
call fcn.004c2180
cmp eax, 1
jne 0x45d310
push 0x1e
push eax
push 0
call fcn.004c21a0
add esp, 0xc
jmp 0x45d310
call fcn.004c0280
xor edi, edi
xor esi, esi
lea esp, [esp]
push dword [ebp + esi*4 - 0xd0]
call fcn.004c56f0
xor ecx, ecx
add esp, 4
test al, al
setne cl
inc esi
add edi, ecx
cmp esi, 7
jl 0x45d320
push 0x3e8
call fcn.0046b6f0
movd xmm0, dword [ebp - 0x64]
cvtdq2ps xmm0, xmm0
mov edx, 0xff
addss xmm0, dword [0x627a0c]
cvttss2si ecx, xmm0
cmp ecx, 0xff
cmovg ecx, edx
push ecx
push eax
mov dword [ebp - 0x64], ecx
call fcn.004cb6f0
add esp, 0xc
call fcn.004c0120
call fcn.004ef900
test eax, eax
je 0x45dbc9
call fcn.004ef900
mov ecx, eax
call fcn.004af940
test eax, eax
jne 0x45dbc9
cmp edi, 7
jne 0x45d310
mov esi, 0x73e264
jmp 0x45d3b0
push 0
push dword [esi]
call fcn.004c59b0
add esi, 4
add esp, 8
cmp esi, 0x73e270
jl 0x45d3b0
mov edi, dword [ebp - 0x68]
xor esi, esi
lea esp, [esp]
mov eax, dword [ebp + esi - 0xd0]
cmp eax, dword [ebp - 0x5c]
je 0x45d3ec
cmp eax, edi
je 0x45d3ec
push dword [ebp + esi - 0x20]
push eax
call fcn.004c57c0
jmp 0x45d3f6
push dword [ebp + esi - 0x20]
push eax
call fcn.004c5720
add esi, 4
add esp, 8
cmp esi, 0x1c
jl 0x45d3d0
xor esi, esi
lea edi, [esi + 0xf]
call fcn.004c0280
call fcn.004d3ba0
cmp edi, 0xf
jge 0x45d416
inc edi
cmp byte [ebp - 0x49], 0
je 0x45d522
push dword [ebp - 0x60]
call fcn.004c56f0
push dword [ebp - 0x54]
mov byte [ebp - 0x56], al
call fcn.004c56f0
push dword [ebp - 0x5c]
mov byte [ebp - 0x55], al
call fcn.004c56f0
add esp, 0xc
cmp byte [ebp - 0x56], 0
je 0x45d522
cmp byte [ebp - 0x55], 0
je 0x45d522
test al, al
je 0x45d522
movzx eax, byte [ebp + esi - 0xa0]
push dword [eax*4 + 0x6979e0]
push dword [ebp - 0x60]
call fcn.004c57c0
movzx eax, byte [ebp + esi - 0x70]
push dword [eax*4 + 0x697a68]
push dword [ebp - 0x54]
call fcn.004c57c0
push str.fl_wait
push dword [ebp - 0x5c]
call fcn.004c5720
add esp, 0x18
cmp esi, 2
jne 0x45d4a9
call fcn.0043cf20
lea ecx, [esi + 0x35]
cmp al, 1
jne 0x45d4ac
lea ecx, [esi + 0x32]
mov eax, dword [0x73e698]
push 0x3e8
movsx eax, word [eax + ecx*2]
add eax, dword [0x73e69c]
mov dword [ebp - 0x3c], eax
call fcn.0046b6f0
add esp, 4
cmp eax, 0xfffffffe
je 0x45d4dd
push 0x3e8
call fcn.0046b660
add esp, 4
push 0x3e8
call fcn.0046b720
mov edi, eax
add esp, 4
cmp edi, 0xfffffffe
je 0x45d519
push 0
push 0xe
push 0
push dword [ebp - 0x3c]
push 0
push 0x2ec
push 0x70
push edi
push 0
call fcn.004eecd0
push 0xff
push edi
call fcn.004cb6f0
add esp, 0x2c
mov byte [ebp - 0x49], 0
mov edi, 0xf
push 0x12
call fcn.004d3a60
add esp, 4
test eax, eax
je 0x45d534
test esi, esi
je 0x45d54e
push 0x12
call fcn.004d39a0
add esp, 4
test eax, eax
je 0x45d623
test esi, esi
jle 0x45d623
movzx eax, byte [ebp + esi - 0xb0]
push dword [eax*4 + 0x6979e0]
push dword [ebp - 0x60]
call fcn.004c57c0
movzx eax, byte [ebp + esi - 0x88]
push dword [eax*4 + 0x697a68]
push dword [ebp - 0x54]
call fcn.004c57c0
push str.fl_select_up_1
push dword [ebp - 0x5c]
call fcn.004c57c0
add esp, 0x18
cmp esi, 2
jne 0x45d59d
call fcn.0043cf20
lea ecx, [esi + 0x35]
cmp al, 1
jne 0x45d5a0
lea ecx, [esi + 0x32]
mov eax, dword [0x73e698]
push 0x3e8
movsx eax, word [eax + ecx*2]
add eax, dword [0x73e69c]
mov dword [ebp - 0x3c], eax
call fcn.0046b6f0
add esp, 4
cmp eax, 0xfffffffe
je 0x45d5d1
push 0x3e8
call fcn.0046b660
add esp, 4
push 0x3e8
call fcn.0046b720
mov edi, eax
add esp, 4
cmp edi, 0xfffffffe
je 0x45d60d
push 0
push 0xe
push 0
push dword [ebp - 0x3c]
push 0
push 0x2ec
push 0x70
push edi
push 0
call fcn.004eecd0
push 0xff
push edi
call fcn.004cb6f0
add esp, 0x2c
test esi, esi
mov eax, 1
mov ecx, 0xfffffffc
cmove eax, ecx
sub esi, eax
jmp 0x45d71f
push 0x13
call fcn.004d3a60
add esp, 4
test eax, eax
je 0x45d636
cmp esi, 4
je 0x45d651
push 0x13
call fcn.004d39a0
add esp, 4
test eax, eax
je 0x45d731
cmp esi, 4
jge 0x45d731
movzx eax, byte [ebp + esi - 0x90]
push dword [eax*4 + 0x6979e0]
push dword [ebp - 0x60]
call fcn.004c57c0
movzx eax, byte [ebp + esi - 0x44]
push dword [eax*4 + 0x697a68]
push dword [ebp - 0x54]
call fcn.004c57c0
push str.fl_select_down_1
push dword [ebp - 0x5c]
call fcn.004c57c0
add esp, 0x18
cmp esi, 2
jne 0x45d69d
call fcn.0043cf20
lea ecx, [esi + 0x35]
cmp al, 1
jne 0x45d6a0
lea ecx, [esi + 0x32]
mov eax, dword [0x73e698]
push 0x3e8
movsx eax, word [eax + ecx*2]
add eax, dword [0x73e69c]
mov dword [ebp - 0x3c], eax
call fcn.0046b6f0
add esp, 4
cmp eax, 0xfffffffe
je 0x45d6d1
push 0x3e8
call fcn.0046b660
add esp, 4
push 0x3e8
call fcn.0046b720
mov edi, eax
add esp, 4
cmp edi, 0xfffffffe
je 0x45d70d
push 0
push 0xe
push 0
push dword [ebp - 0x3c]
push 0
push 0x2ec
push 0x70
push edi
push 0
call fcn.004eecd0
push 0xff
push edi
call fcn.004cb6f0
add esp, 0x2c
cmp esi, 4
mov eax, 1
mov ecx, 0xfffffffc
cmove eax, ecx
add esi, eax
push 0x64
push 5
xor edi, edi
mov byte [ebp - 0x49], 1
call fcn.00461100
add esp, 8
movd xmm0, edi
cvtdq2ps xmm0, xmm0
subss xmm0, dword [0x627a08]
andps xmm0, xmmword [0x624460]
mulss xmm0, dword [0x62443c]
mulss xmm0, dword [0x6279fc]
cvttss2si eax, xmm0
push eax
push 0x3e8
call fcn.0046b6f0
add esp, 4
push eax
call fcn.004cb6f0
add esp, 8
call fcn.004c0120
call fcn.004ef900
test eax, eax
je 0x45dbc9
call fcn.004ef900
mov ecx, eax
call fcn.004af940
test eax, eax
jne 0x45dbc9
cmp byte [ebp - 0x49], al
jne 0x45d406
push 0x16
call fcn.004d3a60
add esp, 4
test eax, eax
je 0x45d7d7
cmp esi, 2
jne 0x45d7ce
call fcn.0043cf20
test al, al
jne 0x45d7ce
push 0x64
push 0
call fcn.00461100
add esp, 8
jmp 0x45d406
push 0x64
mov dword [ebp - 0x50], esi
push 8
jmp 0x45d7f5
push 0x17
call fcn.004d3a60
add esp, 4
test eax, eax
je 0x45d406
push 0x64
mov dword [ebp - 0x50], esi
mov esi, 5
push 9
call fcn.00461100
add esp, 8
push 0xff
push 0x3e8
call fcn.0046b6f0
add esp, 4
push eax
call fcn.004cb6f0
add esp, 8
cmp dword [ebp + esi*4 - 0xe8], 0xa
jne 0x45d919
mov al, byte [0x6e620c]
xor cl, cl
shr al, 7
movzx ecx, cl
test al, al
mov eax, 1
cmovne ecx, eax
push 0
mov dword [ebp - 0x3c], ecx
call fcn.0043cf30
add esp, 4
cmp byte [ebp - 0x3c], 1
jne 0x45d85c
mov eax, 0x80
or word [0x6e620c], ax
mov al, byte [0x6e620c]
shr al, 7
test al, 1
jne 0x45d879
push 0x64
push 0
call fcn.00461100
add esp, 8
jmp 0x45d406
mov edx, dword [0x73e698]
mov ecx, dword [0x73e69c]
movsx eax, word [edx + 0xe]
add eax, ecx
mov dword [ebp - 0x2c], eax
movzx eax, word [0x6e61d8]
push 3
movsx eax, word [edx + eax*2 + 0x10]
add eax, ecx
mov dword [ebp - 0x28], eax
movsx eax, word [0x6e633e]
mov dword [ebp - 0x1c], 0x80
movsx eax, word [edx + eax*2]
add eax, ecx
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x32
push 0
mov dword [ebp - 0x18], 0xcc
mov dword [ebp - 0x14], 0x80
mov dword [ebp - 0x10], 0x11e
mov dword [ebp - 0xc], 0x80
mov dword [ebp - 8], 0x144
mov dword [ebp - 0x38], 6
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
call fcn.0045eee0
add esp, 0x18
cmp eax, 0xffffffff
je 0x45d406
test eax, eax
je 0x45d406
mov edi, dword [ebp + esi*4 - 0xe8]
mov dword [ebp - 0x54], edi
cmp edi, 3
jne 0x45d9cb
call fcn.0047de20
test al, al
je 0x45d9cb
mov eax, dword [0x73e698]
push 1
movsx eax, word [eax + 0x80]
add eax, dword [0x73e69c]
mov dword [ebp - 0x44], 0x80
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
push eax
push 0x32
push 0
mov dword [ebp - 0x40], 0xcc
mov dword [ebp - 0x3c], 6
call fcn.0045eee0
add esp, 0x18
mov dword [ebp - 0x3c], eax
lea esi, [edi + 7]
call fcn.004c0280
call fcn.004c0120
call fcn.004ef900
test eax, eax
je 0x45d9c0
call fcn.004ef900
mov ecx, eax
call fcn.004af940
test eax, eax
jne 0x45d9c0
mov eax, esi
dec esi
test eax, eax
je 0x45d9c0
call fcn.004c0280
call fcn.004c0120
call fcn.004ef900
test eax, eax
jne 0x45d996
cmp dword [ebp - 0x3c], 1
jne 0x45d9cb
call fcn.0043d7f0
cmp edi, 0xc
jne 0x45da41
push 0x64
push 0x6e6408
push 0x73e610
call fcn.005c7580
push 0x95
push 0x70306c
push 0x73e4d8
call fcn.005c7580
push 0x1e
push 0x703104
push 0x73e570
call fcn.005c7580
push 0x55
push 0x703127
push 0x73e590
call fcn.005c7580
push 0x25
push 0x703180
push 0x73e5e8
call fcn.005c7580
mov ax, word [0x6e6340]
mov word [0x73e4d4], ax
mov al, byte [0x703207]
add esp, 0x3c
mov byte [0x73e25b], al
cmp edi, 3
jne 0x45da83
mov esi, 0x73e264
jmp 0x45da50
push 1
push dword [esi]
call fcn.004c59b0
add esi, 4
add esp, 8
cmp esi, 0x73e270
jl 0x45da50
mov ecx, dword [ebp - 0x50]
movzx eax, byte [ebp + ecx - 0xa8]
mov edx, dword [eax*4 + 0x6979e0]
movzx eax, byte [ebp + ecx - 0x98]
jmp 0x45da97
mov ecx, dword [ebp - 0x50]
movzx eax, byte [ebp + ecx - 0x80]
mov edx, dword [eax*4 + 0x6979e0]
movzx eax, byte [ebp + ecx - 0x78]
mov eax, dword [eax*4 + 0x697a68]
mov dword [ebp - 0x20], str.fl_wait_1
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], str.fl_out_1
mov dword [ebp - 0x14], str.fl_out
mov dword [ebp - 0x10], str.fl_out
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], str.fl_out
xor esi, esi
lea esp, [esp]
mov eax, dword [ebp + esi - 0xd0]
push dword [ebp + esi - 0x20]
push eax
cmp eax, dword [ebp - 0x68]
jne 0x45dae8
call fcn.004c5720
jmp 0x45daed
call fcn.004c57c0
add esi, 4
add esp, 8
cmp esi, 0x1c
jl 0x45dad0
call fcn.004c0280
xor edi, edi
xor esi, esi
push dword [ebp + esi*4 - 0xd0]
call fcn.004c56f0
xor ecx, ecx
add esp, 4
test al, al
setne cl
inc esi
add edi, ecx
cmp esi, 7
jl 0x45db01
push 0x3e8
call fcn.0046b6f0
movd xmm0, dword [ebp - 0x64]
cvtdq2ps xmm0, xmm0
xor edx, edx
subss xmm0, dword [0x627a0c]
cvttss2si ecx, xmm0
test ecx, ecx
cmovs ecx, edx
push ecx
push eax
mov dword [ebp - 0x64], ecx
call fcn.004cb6f0
add esp, 0xc
call fcn.004c0120
call fcn.004ef900
test eax, eax
je 0x45dbc9
call fcn.004ef900
mov ecx, eax
call fcn.004af940
test eax, eax
jne 0x45dbc9
cmp edi, 7
jne 0x45daf8
xor edi, edi
jmp 0x45db80
mov esi, dword [ebp + edi*4 - 0xd0]
push 0x624a1c
push esi
call fcn.004c57c0
push 0
push esi
call fcn.004c59b0
inc edi
add esp, 0x10
cmp edi, 7
jl 0x45db80
call fcn.0046b620
push dword [ebp - 0xb4]
call fcn.004cd310
mov eax, dword [ebp - 0x54]
add esp, 4
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005c7124
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
mov eax, 0x1e
pop esi
call fcn.005c7124
mov esp, ebp
pop ebp
ret