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

Disassembly:
sub esp, 0x298
push ebx
push ebp
push esi
push edi
or eax, 0xffffffff
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, dword [0x85c26c]
cdq
sub eax, edx
mov esi, eax
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
sar esi, 1
mov dword [esp + 0x18], 0x10
mov dword [esp + 0x2c], 0x1b
mov dword [esp + 0x1c], esi
mov dword [esp + 0xa4], eax
call fcn.004b3c80
push esi
push 0x1b
push 0x10
lea ebx, [esp + 0x44]
call fcn.004b3d30
add esp, 0xc
push 1
mov ecx, ebx
push ecx
push 0x1b
mov eax, 0x10
call fcn.004b3b10
mov edi, dword [0x8ccbe8]
mov dword [esp + 0x34], eax
mov al, byte [edi + 0xc]
add esp, 0xc
test al, al
jne case.0x4b5cb1.534
push 4
call fcn.005354b8
add esp, 4
test eax, eax
je 0x4b4f6b
mov esi, eax
call fcn.00503be0
jmp 0x4b4f6d
xor eax, eax
mov edx, dword [edi + 0x10]
mov dword [0x8ccc40], eax
mov dword [eax], edx
xor ebx, ebx
lea esp, [esp]
call fcn.004b27e0
inc ebx
cmp ebx, 3
jl 0x4b4f80
mov ebp, dword [esp + 0x14]
nop
mov al, byte [0x8ccc27]
test al, al
jne 0x4b6000
mov eax, dword [0x8ccbe8]
mov cl, byte [eax + 0xc]
test cl, cl
mov word [0x86e330], 0
je 0x4b4fbf
push 0
push eax
call fcn.004b2b90
jmp 0x4b505b
mov esi, dword [0x85c268]
mov edi, dword [0x85c26c]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x28]
push ecx
push 0
push 0
push str.pauseMenuBG.dds
mov dword [esp + 0x24], 0x300
mov dword [esp + 0x38], 0x400
call fcn.004ceb00
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
add esp, 0x14
push 0
push 0xffffffffffffffff
push esi
push edi
push 0
push 0
push edx
push ecx
push 0
push 0
push eax
call fcn.004af500
add esp, 0x2c
push 9
push str._PAUSEMENU
mov esi, 0x8ebf58
call fcn.004f7660
mov eax, dword [0x85c26c]
push 0
push 0xffffffffffffffff
push 4
cdq
push 0xffffffffffffffff
sub eax, edx
push 0x64
sar eax, 1
push 0xc
push eax
mov eax, dword [0x8cb56c]
push 0x86bb48
mov dword [0x85c11c], 0x64
call fcn.004b0b40
add esp, 0x28
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
cmp edi, ebx
mov dword [esp + 0x10], edi
jg 0x4b533c
xor esi, esi
lea edx, [edi - 0x13]
cmp edx, 8
ja case.0x4b5080.21
movzx eax, byte [edi + 0x4b609d]
jmp dword [eax*4 + 0x4b60a4]
mov ecx, dword [0x8ccbe8]
mov al, byte [ecx + 0xc]
test al, al
je case.0x4b5080.20
mov eax, edi
mov dword [esp + 0x24], 0xffffffff
call fcn.004b3600
cmp edi, ebp
jne 0x4b5100
mov ecx, dword [0x85c268]
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x28]
push 0xa0
sar edx, 1
push 0xc0204080
mov eax, edx
shr eax, 0x1f
add eax, edx
push 0x18
add eax, esi
lea edx, [ecx + 0x20]
push edx
push eax
mov eax, dword [esp + 0x30]
add eax, eax
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
push eax
push 0
push 0
push 0
push 0
push 0
mov dword [esp + 0x50], 0xffffcc00
call fcn.004af500
add esp, 0x2c
mov eax, dword [esp + 0x10]
call fcn.004b38d0
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov ecx, dword [0x85c268]
mov bl, al
add ebp, ebp
mov eax, ebp
sub eax, edx
cdq
sub eax, edx
mov edi, eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + esi + 0xc]
mov dword [esp + 0x20], ecx
push 0
fild dword [esp + 0x24]
sar edi, 1
fild dword [0x8d3390]
push 0x41400000
fmul dword [0x7158d8]
faddp st(1)
call fcn.005f275c
fild dword [0x8d338c]
lea edx, [edi + 0xc]
mov dword [esp + 0x28], edx
fmul dword [0x7158d8]
push eax
fiadd dword [esp + 0x2c]
call fcn.005f275c
push eax
push 0x8d3358
call fcn.004bc130
test bl, bl
mov eax, 0x80ffffff
jne 0x4b5191
mov eax, dword [esp + 0x24]
mov ecx, dword [0x85c268]
push 0
push 0xffffffffffffffff
push 1
push eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
push 0x64
add eax, esi
push eax
lea ecx, [edi + 0x18]
push ecx
push 0x86bb48
xor eax, eax
call fcn.004b0b40
add esp, 0x20
test bl, bl
jne 0x4b522a
mov bx, word [esp + 0x10]
mov eax, 0x66666667
imul dword [0x85c268]
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dx, word [0x86e330]
movsx eax, dx
shl eax, 1
add ecx, esi
mov word [eax + 0x86e1a0], bx
mov ebx, dword [esp + 0x28]
mov word [eax + 0x86de80], cx
add ecx, 0x18
mov word [eax + 0x86e010], di
lea edi, [ebx + edi + 0x20]
inc dx
mov word [eax + 0x86dcf0], di
mov word [eax + 0x86db60], cx
mov word [0x86e330], dx
jmp 0x4b522e
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + edx*4 + 0x38]
test ecx, ecx
je 0x4b52d8
mov eax, dword [ecx]
call dword [eax + 4]
test eax, eax
je 0x4b52d8
jmp 0x4b5250
cmp eax, 0x8ec0b4
je 0x4b5260
mov eax, dword [eax + 4]
test eax, eax
jne 0x4b5250
jmp 0x4b52d8
mov ecx, dword [0x85c268]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x24]
push eax
push 0
push 0
push str.SliderBar.dds
lea edi, [ecx + esi + 9]
mov dword [esp + 0x38], 0x10
mov dword [esp + 0x34], 0x100
call fcn.004ceb00
add esp, 0x14
mov ecx, eax
push 0
push 0xffffffffffffffff
push 8
lea eax, [ebx + ebp]
cdq
push 0xbe
sub eax, edx
mov edx, dword [esp + 0x34]
push edi
sar eax, 1
sub eax, 0xae
push eax
mov eax, dword [esp + 0x38]
push edx
push eax
push 0
push 0
push ecx
call fcn.004af500
add esp, 0x2c
mov eax, 0x66666667
imul dword [0x85c268]
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ebx + ebp]
cdq
sub eax, edx
sar eax, 1
sub eax, 0xae
push eax
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x3c]
add ecx, esi
push edx
call fcn.004b3960
mov eax, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x44]
push ecx
call fcn.004b47a0
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
add esp, 0x10
add esi, 0x1a
mov ebx, dword [esp + 0x2c]
inc edi
cmp edi, ebx
mov dword [esp + 0x10], edi
jle 0x4b5071
mov edi, dword [esp + 0x18]
cmp edi, ebx
jg 0x4b53e9
jmp 0x4b5350
cmp ebp, 0xffffffff
je 0x4b53e0
mov ecx, dword [esp + edi*4 + 0x38]
test ecx, ecx
je 0x4b53e0
mov edx, dword [ecx]
call dword [edx + 4]
test eax, eax
je 0x4b53e0
lea ebx, [ebx]
cmp eax, 0x8ec0b4
je 0x4b5380
mov eax, dword [eax + 4]
test eax, eax
jne 0x4b5370
jmp 0x4b53e0
mov esi, dword [esp + edi*4 + 0x38]
test esi, esi
je 0x4b53af
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
test eax, eax
je 0x4b53a5
cmp eax, 0x8ec0b4
je 0x4b5469
mov eax, dword [eax + 4]
test eax, eax
jne 0x4b5393
xor al, al
neg al
sbb eax, eax
and eax, esi
mov esi, eax
mov al, byte [esi + 0xf2]
test al, al
jne 0x4b5470
fld dword [esi + 0x2a0]
fdiv dword [esi + 0x2a8]
fimul dword [esi + 0x290]
fadd dword [0x70de8c]
call fcn.005f275c
push eax
call fcn.0050dd00
inc edi
cmp edi, ebx
jle 0x4b5350
mov esi, dword [0x8de30c]
cmp dword [esp + 0x30], esi
mov edx, dword [0x8de310]
jne 0x4b5401
cmp dword [esp + 0x34], edx
je 0x4b543b
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
call fcn.0042c6c0
mov esi, eax
cmp esi, 0xffffffff
je 0x4b5435
cmp esi, ebp
je 0x4b5435
push 0xffffffffffffffff
push 0xbf800000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x36
push 0x8ca278
call fcn.00488920
add esp, 0x1c
mov ebp, esi
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x18], 0x10
jne 0x4b5501
cmp word [0x728b74], 1
mov dword [esp + 0x10], 0x8cccd0
lea edx, [esp + 0x10]
jae 0x4b5488
mov eax, dword [0x728ba0]
push eax
push str.Beta_Version__s_n
jmp 0x4b5494
mov al, 1
jmp 0x4b53a7
mov ecx, dword [0x8de30c]
mov edx, dword [0x8de310]
mov ebp, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
jmp 0x4b5437
mov ecx, dword [0x728ba0]
push ecx
push str.Version__s_n
call fcn.004f3ce0
mov ecx, dword [0x85c268]
mov eax, 0x2aaaaaab
imul ecx
add esp, 8
push 0
mov esi, dword [esp + 0x14]
push 0xffffffffffffffff
mov eax, edx
shr eax, 0x1f
add eax, edx
push 2
sub ecx, eax
push 0xffffffffffffff80
push 0x32
push ecx
mov ecx, dword [0x85c26c]
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
sub ecx, eax
push ecx
push esi
xor eax, eax
mov dword [0x85c11c], 0x32
call fcn.004b0b40
lea eax, [esi - 8]
add esp, 0x20
test eax, eax
je 0x4b5501
cmp eax, 0x8cccc8
je 0x4b5501
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
mov edi, dword [0x8ccbe8]
mov al, byte [edi + 0xc]
test al, al
push 0
je 0x4b551c
call fcn.004b2e50
mov edi, eax
jmp 0x4b55a6
push 0
push 0
call fcn.004d1a40
add esp, 0xc
push str.Menu
call fcn.0042e1a0
mov edi, eax
mov eax, dword [0x86db5c]
add esp, 4
test eax, eax
je 0x4b55a2
push edi
push str.Menu
lea ecx, [esp + 0x1b0]
push str._s__03X
push ecx
call dword [sym.imp.MSVCR71.dll_sprintf]
mov ecx, dword [0x86db5c]
mov edx, dword [ecx]
add esp, 0x10
lea eax, [esp + 0x1a8]
push eax
mov ebx, ecx
call dword [edx + 4]
mov ecx, dword [ebx + 8]
mov esi, dword [ecx + eax*4]
test esi, esi
je 0x4b55a2
jmp 0x4b5580
mov eax, dword [esi + 4]
mov edx, dword [ebx]
push eax
lea ecx, [esp + 0x1ac]
push ecx
mov ecx, ebx
call dword [edx + 8]
test al, al
jne 0x4b559f
mov esi, dword [esi]
test esi, esi
jne 0x4b5580
jmp 0x4b55a2
mov edi, dword [esi + 8]
mov ebx, dword [esp + 0x2c]
cmp edi, 0xd
jne 0x4b55b1
lea edi, [ebp + 0x200]
cmp edi, 0x1b
jne 0x4b55d3
push 0xbf800000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x2e
or esi, 0xffffffff
xor eax, eax
or ecx, 0xffffffff
call fcn.00488840
add esp, 0x10
jmp 0x4b5609
cmp edi, 0x20e
jg 0x4b5ca2
je 0x4b595d
cmp edi, 0x128
jg 0x4b5807
je 0x4b57a0
cmp edi, 0x125
jg 0x4b56e4
je 0x4b568f
mov eax, edi
dec eax
je 0x4b6000
sub eax, 0x1a
jne case.default.0x4b5816
mov eax, 3
call fcn.0042e700
cmp dword [esp + 0x18], 0x10
je 0x4b6000
cmp edi, 0x215
je 0x4b6000
mov eax, dword [0x85c26c]
cdq
sub eax, edx
sar eax, 1
push eax
push 0x1b
push 0x10
lea ebx, [esp + 0x44]
mov dword [esp + 0x24], 0x10
mov dword [esp + 0x38], 0x1b
mov dword [esp + 0x28], eax
call fcn.004b3d30
add esp, 0xc
push 1
mov ecx, ebx
push ecx
push 0x1b
mov eax, 0x10
call fcn.004b3b10
add esp, 0xc
or ebp, 0xffffffff
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ebp
jmp case.default.0x4b5816
cmp ebp, 0xffffffff
je case.default.0x4b5816
mov eax, dword [esp + ebp*4 + 0x38]
test eax, eax
je case.default.0x4b5816
mov cl, byte [eax + 0xf3]
test cl, cl
jne case.default.0x4b5816
push eax
push 0x8ec0b4
call fcn.00487920
add esp, 8
test al, al
je case.default.0x4b5816
mov eax, dword [esp + ebp*4 + 0x38]
push eax
push 0x8ec0b4
call fcn.004492f0
add esp, 8
call fcn.0050de30
jmp case.default.0x4b5816
sub edi, 0x126
je 0x4b5748
dec edi
jne case.0x4b5cb1.534
cmp ebp, 0xffffffff
je case.default.0x4b5816
mov eax, dword [esp + ebp*4 + 0x38]
test eax, eax
je case.default.0x4b5816
mov cl, byte [eax + 0xf3]
test cl, cl
jne case.default.0x4b5816
push eax
push 0x8ec0b4
call fcn.00487920
add esp, 8
test al, al
je case.default.0x4b5816
mov eax, dword [esp + ebp*4 + 0x38]
push eax
push 0x8ec0b4
call fcn.004492f0
add esp, 8
call fcn.0050de00
jmp case.default.0x4b5816
mov esi, dword [esp + 0x18]
lea esp, [esp]
cmp ebp, 0xffffffff
jne 0x4b5759
mov ebp, ebx
jmp 0x4b575a
dec ebp
cmp ebp, esi
jge 0x4b5760
mov ebp, ebx
mov eax, 4
call fcn.004a22e0
lea eax, [ebp - 0x13]
cmp eax, 8
ja case.0x4b5779.21
movzx edx, byte [eax + 0x4b60c8]
jmp dword [edx*4 + 0x4b60bc]
mov eax, dword [0x8ccbe8]
mov cl, byte [eax + 0xc]
test cl, cl
je case.0x4b5779.22
mov eax, ebp
call fcn.004b38d0
test al, al
jne case.0x4b5779.22
mov dword [esp + 0x14], ebp
jmp case.default.0x4b5816
mov esi, dword [esp + 0x18]
cmp ebp, 0xffffffff
jne 0x4b57ad
mov ebp, esi
jmp 0x4b57ae
inc ebp
cmp ebp, ebx
jle 0x4b57b4
mov ebp, esi
push 0xffffffffffffffff
push 0xbf800000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x36
push 0x8ca278
call fcn.00488920
lea eax, [ebp - 0x13]
add esp, 0x1c
cmp eax, 8
ja case.0x4b57df.21
movzx ecx, byte [eax + 0x4b60e0]
jmp dword [ecx*4 + 0x4b60d4]
mov edx, dword [0x8ccbe8]
mov al, byte [edx + 0xc]
test al, al
je case.0x4b57df.22
mov eax, ebp
call fcn.004b38d0
test al, al
jne case.0x4b57df.22
mov dword [esp + 0x14], ebp
jmp case.default.0x4b5816
lea eax, [edi - 0x205]
cmp eax, 4
ja case.default.0x4b5816
jmp dword [eax*4 + 0x4b60ec]
mov bl, byte [0x7283b9]
test bl, bl
sete al
mov byte [0x7283b9], al
push 0xbf800000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x33
or esi, 0xffffffff
xor eax, eax
or ecx, 0xffffffff
call fcn.00488840
add esp, 0x10
jmp case.default.0x4b5816
mov bl, byte [0x8ccc34]
push 0xbf800000
test bl, bl
sete cl
push 0xffffffffffffffff
mov byte [0x8ccc34], cl
push 0xffffffffffffffff
push 0x33
or esi, 0xffffffff
xor eax, eax
mov ecx, 0xffffffff
call fcn.00488840
add esp, 0x10
jmp case.default.0x4b5816
mov bl, byte [0x7283ba]
test bl, bl
sete dl
mov byte [0x7283ba], dl
jmp 0x4b582d
mov eax, 0xb
call fcn.0042e700
push str.You_must_restart_the_game_for_this_nsetting_to_take_full_effect._n
mov esi, 0x8ebf58
call fcn.004f7660
add esp, 4
push 0
push 0x30
call fcn.00487950
mov eax, dword [0x8ccbe8]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 4]
add esp, 8
test ecx, ecx
je 0x4b58cd
inc dword [ecx + 4]
or byte [ecx + 0x20], 1
dec dword [ecx + 4]
jne 0x4b58dc
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [0x85c268]
push 0
push 0
cdq
push 0xffffffffffffffff
push 0
push 0
and edx, 3
add eax, edx
sar eax, 2
push 0xffffffffffffffff
inc eax
push 0
push str.pauseMenuBG.dds
push eax
mov eax, dword [0x85c26c]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, 0x10
push eax
mov word [0x86e330], 0
call fcn.00430160
mov cl, byte [0x8ccc35]
add esp, 0x28
test cl, cl
mov ecx, dword [0x8ccbe8]
sete al
mov byte [0x8ccc35], al
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x4b5945
inc dword [ecx + 4]
and byte [ecx + 0x20], 0xfe
dec dword [ecx + 4]
jne case.0x4b5cb1.534
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.default.0x4b5816
mov eax, 0xc
call fcn.0042e700
push str.Select_the_3D_Sound_Driver_n_Default_n
mov esi, 0x8ebf58
call fcn.004f7660
or eax, 0xffffffff
mov ecx, 0x40
lea edi, [esp + 0xac]
rep stosd dword es:[edi], eax
mov eax, dword [0x8ccd88]
add esp, 4
xor ebp, ebp
test eax, eax
mov dword [esp + 0x10], 0x8cccd0
jbe 0x4b5b01
cmp ebp, eax
lea ecx, [esp + 0xac]
mov dword [esp + 0x20], ecx
jae 0x4b5af3
mov al, byte [ebp + 0x8cc6c0]
test al, al
je 0x4b5af3
mov ebx, dword [ebp*4 + 0x8cc800]
lea eax, [esp + 0x10]
call fcn.00412f10
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
call fcn.00412df0
call fcn.004b19d0
add esp, 4
test al, al
je 0x4b5af3
mov esi, dword [esp + 0x10]
push str.Miles_Fast_2D_Positional_Audio
push esi
call dword [sym.imp.MSVCR71.dll__stricmp]
add esp, 8
test eax, eax
jne 0x4b5a11
mov dword [esp + 0xa8], ebp
jmp 0x4b5af3
mov eax, dword [esp + 0x20]
mov dword [eax], ebp
add eax, 4
mov edi, 0x86bb48
mov dword [esp + 0x20], eax
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4b5a24
mov dx, word [0x6fde48]
mov word [edi], dx
mov edi, dword [0x8ccd88]
cmp ebp, edi
jb 0x4b5a44
xor eax, eax
jmp 0x4b5a4b
mov eax, dword [ebp*4 + 0x8cc800]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4b5a50
sub eax, edx
cmp eax, 0x2b
jbe 0x4b5a95
cmp ebp, edi
jb 0x4b5a66
xor eax, eax
jmp 0x4b5a6d
mov eax, dword [ebp*4 + 0x8cc800]
push 0x28
push eax
push 0x86bb48
call dword [sym.imp.MSVCR71.dll_strncat]
mov edi, 0x86bb48
add esp, 0xc
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4b5a84
mov eax, dword [0x70c6f0]
mov dword [edi], eax
jmp 0x4b5adb
mov eax, dword [esi - 8]
test eax, eax
jge 0x4b5ab0
mov eax, dword [esi - 4]
test eax, eax
je 0x4b5aad
mov byte [esi], 0
mov dword [esi - 4], 0
mov dword [esi - 4], eax
mov eax, esi
mov edx, esi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4b5ab4
mov edi, 0x86bb48
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4b5ac3
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x86bb48
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4b5ae1
mov cx, word [0x6fc888]
mov word [edi], cx
mov eax, dword [0x8ccd88]
inc ebp
cmp ebp, eax
jb 0x4b59b4
mov edx, dword [0x8ccbe8]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4b5b14
inc dword [ecx + 4]
or byte [ecx + 0x20], 1
dec dword [ecx + 4]
jne 0x4b5b23
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [0x8ccbe8]
mov cl, byte [eax + 0xc]
mov eax, dword [0x85c268]
push 0
push 0
cdq
push 0xffffffffffffffff
push 0
and edx, 7
add eax, edx
push 0
sar eax, 3
push 0xffffffffffffffff
inc eax
push 0
push str.pauseMenuBG.dds
push eax
mov eax, dword [0x85c26c]
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
mov dword [0x85c11c], 0x64
mov word [0x86e330], 0
call fcn.00430160
mov ecx, dword [0x8ccbe8]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 4]
add esp, 0x28
test ecx, ecx
mov esi, eax
je 0x4b5b8d
inc dword [ecx + 4]
mov edi, 0xfffe
and word [ecx + 0x20], di
dec dword [ecx + 4]
jne 0x4b5ba1
mov eax, dword [ecx]
push 1
call dword [eax]
test esi, esi
jl 0x4b5c7c
mov esi, dword [esp + esi*4 + 0xa8]
cmp esi, dword [0x8ccd88]
jb 0x4b5bbc
xor ebx, ebx
jmp 0x4b5bc3
mov ebx, dword [esi*4 + 0x8cc800]
push ecx
mov eax, esp
call fcn.00412cb0
call fcn.004d5290
add esp, 4
push str.You_must_restart_the_game_for_this_nsetting_to_take_full_effect._n
mov esi, 0x8ebf58
call fcn.004f7660
add esp, 4
push 0
push 0x30
call fcn.00487950
mov ecx, dword [0x8ccbe8]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 4]
add esp, 8
test ecx, ecx
je 0x4b5c04
inc dword [ecx + 4]
or byte [ecx + 0x20], 1
dec dword [ecx + 4]
jne 0x4b5c13
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, 0xc
call fcn.0042e700
mov eax, dword [0x85c268]
push 0
push 0
cdq
push 0xffffffffffffffff
push 0
push 0
and edx, 3
add eax, edx
sar eax, 2
push 0xffffffffffffffff
inc eax
push 0
push str.pauseMenuBG.dds
push eax
mov eax, dword [0x85c26c]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, 0x10
push eax
call fcn.00430160
mov ecx, dword [0x8ccbe8]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 4]
add esp, 0x28
test ecx, ecx
je 0x4b5c6d
inc dword [ecx + 4]
and word [ecx + 0x20], di
dec dword [ecx + 4]
jne 0x4b5c7c
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff8
je case.0x4b5cb1.534
cmp eax, 0x8cccc8
je case.0x4b5cb1.534
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
jmp case.0x4b5cb1.534
lea eax, [edi - 0x20f]
cmp eax, 0xb
ja case.0x4b5cb1.534
jmp dword [eax*4 + 0x4b6100]
push 0xbf800000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x2d
or esi, 0xffffffff
xor eax, eax
or ecx, 0xffffffff
call fcn.00488840
mov eax, dword [0x85c26c]
cdq
sub eax, edx
sar eax, 1
sub eax, 0x20
push eax
push 9
push 0
lea ebx, [esp + 0x54]
mov dword [esp + 0x34], 0
mov dword [esp + 0x48], 9
mov dword [esp + 0x38], eax
call fcn.004b3d30
add esp, 0x1c
push 1
mov edx, ebx
push edx
push 9
xor eax, eax
jmp 0x4b5677
push 0xbf800000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x2d
or esi, 0xffffffff
xor eax, eax
or ecx, 0xffffffff
call fcn.00488840
mov eax, dword [0x85c26c]
cdq
sub eax, edx
sar eax, 1
push eax
push 0xf
push 0xa
lea ebx, [esp + 0x54]
mov dword [esp + 0x34], 0xa
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x38], eax
call fcn.004b3d30
add esp, 0x1c
push 1
mov eax, ebx
push eax
push 0xf
mov eax, 0xa
jmp 0x4b5677
mov al, byte [0x86db52]
test al, al
sete cl
mov byte [0x86db52], cl
jmp case.default.0x4b5816
mov al, byte [0x86db53]
test al, al
sete dl
mov byte [0x86db53], dl
jmp case.default.0x4b5816
call fcn.004aeeb0
jmp case.default.0x4b5816
mov eax, 0xc
call fcn.0042e700
mov eax, dword [0x8ccbe8]
mov al, byte [eax + 0xc]
mov ecx, dword [0x8cb560]
mov edx, dword [0x8cb564]
push 0x728aa8
test al, al
push ecx
sete al
push 0x728a90
push edx
push eax
call fcn.004b8360
add esp, 0x14
test al, al
je case.default.0x4b5816
jmp 0x4b6000
mov eax, 0xc
call fcn.0042e700
mov ecx, dword [0x8ccbe8]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x4b5dfe
inc dword [ecx + 4]
or byte [ecx + 0x20], 1
dec dword [ecx + 4]
jne 0x4b5e0d
mov eax, dword [ecx]
push 1
call dword [eax]
push str.Divide_plunder_in_town_and_then_retire_to_see_the_conclusion_of_your_story__otherwise_you_will_lose_all_unsaved_progress_in_the_current_game._Are_you_sure_you_want_to_quit__n_Yes__n_No_n
mov esi, 0x8ebf58
call fcn.004f7660
add esp, 4
push 0
push 0x28
call fcn.00487950
mov eax, dword [0x85c268]
mov ecx, dword [0x85c26c]
push 0
push 0
push 0xffffffffffffffff
cdq
push 0
push 0
and edx, 3
add eax, edx
push 0xffffffffffffffff
sar eax, 2
push 0
inc eax
push str.pauseMenuBG.dds
push eax
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
mov word [0x86e330], 0
call fcn.00430160
mov edx, dword [0x8ccbe8]
mov esi, eax
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 4]
add esp, 0x30
test ecx, ecx
je 0x4b5e86
inc dword [ecx + 4]
and byte [ecx + 0x20], 0xfe
dec dword [ecx + 4]
jne 0x4b5e95
mov edx, dword [ecx]
push 1
call dword [edx]
test esi, esi
jne case.0x4b5cb1.534
mov byte [0x8ccc27], 1
mov byte [0x8ccc26], 1
jmp case.default.0x4b5816
mov eax, 0xc
call fcn.0042e700
push str.Are_you_sure_you_want_to_quit__n_Yes__n_No_n
mov esi, 0x8ebf58
call fcn.004f7660
mov eax, dword [0x8ccbe8]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 4]
add esp, 4
test ecx, ecx
je 0x4b5ede
inc dword [ecx + 4]
or byte [ecx + 0x20], 1
dec dword [ecx + 4]
jne 0x4b5eed
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [0x85c268]
push 0
push 0
cdq
push 0xffffffffffffffff
push 0
push 0
and edx, 3
add eax, edx
sar eax, 2
push 0xffffffffffffffff
inc eax
push 0
push str.pauseMenuBG.dds
push eax
mov eax, dword [0x85c26c]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, 0x10
push eax
mov word [0x86e330], 0
call fcn.00430160
mov esi, eax
mov eax, dword [0x8ccbe8]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 4]
add esp, 0x28
test ecx, ecx
je 0x4b5f47
inc dword [ecx + 4]
and byte [ecx + 0x20], 0xfe
dec dword [ecx + 4]
jne 0x4b5f56
mov edx, dword [ecx]
push 1
call dword [edx]
test esi, esi
jne case.default.0x4b5816
mov al, byte [esp + 0x2ac]
test al, al
mov esi, 0x8ebf58
push str.quit
je 0x4b5f8e
call fcn.004f7660
add esp, 4
push 1
push 0
push 0x86bb48
call fcn.00401ee0
add esp, 0xc
jmp 0x4b5fef
mov dword [esp + 0x20], 0x8cccd0
call fcn.004f7660
mov ebx, eax
add esp, 4
lea eax, [esp + 0x1c]
call fcn.00412f10
mov eax, dword [0x7246f0]
sub eax, 0
je 0x4b5fc4
dec eax
jne 0x4b5fe6
mov eax, dword [esp + 0x1c]
push 0
push eax
push str.battle
jmp 0x4b5fd0
mov ecx, dword [esp + 0x1c]
push 0
push ecx
push str.arrival
mov esi, 0x8ebf58
call fcn.004f7660
add esp, 4
push eax
call fcn.00401d10
add esp, 0xc
lea ecx, [esp + 0x1c]
call fcn.00412fb0
mov dword [0x7246f0], 2
mov byte [0x8ccc27], 1
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
lea ebx, [esp + 0x44]
call fcn.004b3d30
mov eax, dword [0x8ccbf0]
xor ebx, ebx
add esp, 0xc
cmp eax, ebx
je 0x4b602c
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [0x8ccbf0], ebx
mov edx, dword [0x8ccbe8]
cmp byte [edx + 0xc], bl
jne 0x4b6054
mov eax, dword [0x8ccc40]
cmp eax, ebx
je 0x4b604f
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [0x8ccc40], ebx
call fcn.004b2860
mov word [0x86e330], bx
jmp 0x4b6060
push ebx
call fcn.0042e1a0
add esp, 4
cmp eax, ebx
jne 0x4b6060
push str.Config.ini
mov dword [0x86e35c], ebx
mov dword [0x86e360], ebx
call fcn.004d2ee0
add esp, 4
push fcn.00578fd0
push 0x1c
push 4
lea eax, [esp + 0x44]
push eax
call fcn.00412770
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x298
ret