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

Disassembly:
sub esp, 0x184
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
push ebx
push ebp
mov edx, dword [eax]
mov eax, dword [sym.imp.alleg40.dll_Ordinal_44]
push esi
mov esi, dword [ecx]
push edi
mov edi, dword [eax]
mov eax, 0x10
mov ecx, edi
shl eax, cl
mov ebp, 0x18
mov ecx, esi
shl ebp, cl
mov ecx, edx
xor ebx, ebx
push ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x4c], ebx
or eax, ebp
mov ebp, 8
shl ebp, cl
mov ecx, edi
mov edi, 0xc
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x14], ebx
or eax, ebp
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x90], eax
mov eax, 8
shl eax, cl
mov ecx, esi
mov esi, 4
shl edi, cl
mov ecx, edx
shl esi, cl
or eax, edi
mov edi, 1
mov dword [esp + 0x58], edi
or eax, esi
mov dword [esp + 0x84], eax
mov eax, dword [0x4b5b4c]
lea ecx, [eax + 0xb4d8]
lea edx, [eax + 0xb50c]
lea esi, [eax + 0x9dc]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
mov eax, dword [eax + 0x5cc4]
push eax
mov dword [esp + 0x4c], esi
call fcn.00486bb0
push 0x3c
call fcn.00482b00
call fcn.0042b350
mov dword [0x4a616c], edi
call fcn.00447e60
call fcn.00448140
call fcn.0042a170
call fcn.0042a4f0
mov ecx, dword [0x4b5b4c]
mov edx, dword [ecx + 0xab2c]
push edx
call fcn.0040b060
mov eax, dword [0x4b5b4c]
add esp, 0x10
mov dword [esp + 0x168], 0x4a75e4
mov dword [esp + 0x16c], 0x4a75f0
mov dword [esp + 0x170], str.Time_Limit
mov dword [esp + 0x174], str.Game_Speed
mov dword [esp + 0x178], str.Wav_Volume
mov dword [esp + 0x17c], str.Midi_Volume
mov dword [esp + 0x180], str.Input_Config
mov dword [esp + 0x184], str.Team_Mode_Config
mov dword [esp + 0x18c], 0x4a764c
mov dword [esp + 0x188], str.Load_Save
mov dword [esp + 0x190], str.Return_to_Main_Menu
mov dword [eax + 0xc084], ebx
lea ecx, [esp + 0x168]
lea edx, [esp + 0x154]
lea eax, [esp + 0x144]
mov dword [esp + 0x154], str.Key_Config
mov dword [esp + 0x158], str.Joystick_Type
mov dword [esp + 0x15c], str.Joystick_Config
mov dword [esp + 0x160], 0x4a76a8
mov dword [esp + 0x164], 0x4a76b8
mov dword [esp + 0x144], str.1P_VS_Team_Advantage
mov dword [esp + 0x148], str.If_player_KOed
mov dword [esp + 0x14c], str.Default_Values
mov dword [esp + 0x150], str.Return_to_Options
mov dword [esp + 0x120], ecx
mov dword [esp + 0x128], edx
mov dword [esp + 0x124], eax
call fcn.00417400
xor ebp, ebp
mov ecx, dword [0x4b5b4c]
add ecx, 0xb1d4
push ecx
call fcn.0040c520
add esp, 4
xor edi, edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ebp
call fcn.00447e60
call fcn.0042aed0
call fcn.0042b460
test eax, eax
je 0x4306c3
call fcn.0042b3f0
mov dword [esp + 0x2c], eax
call fcn.00448120
test eax, eax
je 0x4306d5
call fcn.004480d0
mov dword [esp + 0x64], eax
lea edx, [esp + 0x64]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.00415550
add esp, 8
call fcn.0042a480
test eax, eax
je 0x4306f7
call fcn.0042a370
mov edi, eax
cmp dword [esp + 0x78], ebp
je 0x43070b
xor edi, edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x78], ebp
lea ecx, [esp + 0x98]
push 2
push ecx
push edi
call fcn.00429a20
mov dword [esp + 0x4c], edx
mov edx, dword [0x4b5b4c]
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0x5ce0]
push eax
call fcn.004048a0
mov edx, dword [0x4b5b4c]
add esp, 0x10
cmp dword [edx + 0xb620], 0x16
je 0x430750
cmp dword [edx + 0xb624], 0x16
jne 0x430766
cmp dword [esp + 0x64], 0xb
jne 0x430766
mov ecx, 1
mov dword [esp + 0x64], ebp
mov dword [esp + 0x2c], ecx
jmp 0x43076b
mov ecx, 1
mov eax, ebx
sub eax, ebp
je 0x4307ea
dec eax
je 0x4307be
dec eax
jne 0x430826
mov edi, 5
mov dword [esp + 0x5c], 0x1d
mov dword [esp + 0x6c], edi
mov dword [esp + 0x4c], 0x32
mov dword [esp + 0x58], 0x104
mov dword [esp + 0x70], 0x69
mov dword [esp + 0x74], 0xd
mov dword [esp + 0x7c], 0x82
mov dword [esp + 0x54], 2
jmp 0x43082a
mov edi, 4
mov eax, 0xdc
mov dword [esp + 0x6c], edi
mov dword [esp + 0x5c], 0x31
mov dword [esp + 0x4c], 0x32
mov dword [esp + 0x58], eax
mov dword [esp + 0x70], 0x50
jmp 0x430814
mov edi, 0xb
mov eax, 0xb4
mov dword [esp + 0x6c], edi
mov dword [esp + 0x5c], 0x45
mov dword [esp + 0x4c], 0x32
mov dword [esp + 0x58], eax
mov dword [esp + 0x70], 0xa9
mov dword [esp + 0x74], 0xd
mov dword [esp + 0x7c], eax
mov dword [esp + 0x54], ecx
jmp 0x43082a
mov edi, dword [esp + 0x6c]
cmp dword [esp + 0x28], ebp
je 0x430847
mov ecx, dword [esp + 0x40]
cmp dword [esp + ecx*4 + 0x1c], 8
jne 0x4308ca
cmp ebx, ebp
jne 0x4308ca
mov ecx, dword [esp + 0x3c]
test cl, 1
je 0x430890
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + eax*4 + 0x1c]
lea eax, [esp + eax*4 + 0x1c]
dec ecx
mov dword [eax], ecx
jns 0x430866
lea ecx, [edi - 1]
mov dword [eax], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov edx, dword [edx + 0xa8f0]
push ebp
push eax
push ecx
push edx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x38], ebp
call fcn.0044e2d0
mov edx, dword [0x4b5b4c]
mov ecx, dword [esp + 0x4c]
add esp, 0x10
test cl, 4
je 0x4308ce
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + eax*4 + 0x1c]
lea eax, [esp + eax*4 + 0x1c]
inc ecx
cmp ecx, edi
mov dword [eax], ecx
jl 0x4308aa
mov dword [eax], ebp
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push ebp
push ecx
mov ecx, dword [edx + 0xa8f0]
push eax
push ecx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x38], ebp
call fcn.0044e2d0
add esp, 0x10
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x54], 1
jne 0x4308ec
mov edx, dword [esp + 0x40]
lea eax, [edx*4]
lea edx, [esp + 0x20]
sub edx, eax
mov eax, dword [esp + eax + 0x1c]
mov dword [edx], eax
mov ebp, ecx
mov edx, 1
and ebp, 0xff0
neg ebp
sbb ebp, ebp
neg ebp
test cl, 8
mov dword [esp + 0x24], ebp
je 0x430910
mov edi, edx
mov dword [esp + 0x18], edi
jmp 0x430914
mov edi, dword [esp + 0x18]
test cl, 2
je 0x43091d
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x28]
xor eax, eax
cmp ecx, eax
je 0x430965
mov ecx, dword [esp + 0x2c]
cmp edi, eax
jne 0x430933
cmp ecx, edx
jne 0x430937
mov dword [esp + 0x60], eax
cmp dword [esp + 0x14], eax
je 0x430941
mov dword [esp + 0x60], edx
cmp ebp, eax
jne 0x430949
cmp ecx, edx
jne 0x43094d
mov dword [esp + 0x50], edx
xor edi, edi
xor ebp, ebp
cmp ecx, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], ebp
jne 0x430965
mov dword [esp + 0x2c], eax
cmp ebx, eax
jne 0x430bf9
mov ecx, dword [esp + 0x40]
mov edx, dword [0x4b5b4c]
mov ebx, dword [esp + ecx*4 + 0x1c]
cmp ebx, 9
mov edi, dword [edx + ebx*4 + 0xc064]
ja case.0x43098b.6
jmp dword [ebx*4 + 0x4321d0]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4309a0
cmp edi, 1
jle 0x4309a0
dec edi
mov eax, dword [esp + 0x14]
test eax, eax
je case.0x43098b.6
cmp edi, 8
jge case.0x43098b.6
inc edi
jmp case.0x43098b.6
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4309cb
cmp edi, 0x1e
jle 0x4309cb
sub edi, 0xa
mov eax, dword [esp + 0x14]
test eax, eax
je case.0x43098b.6
cmp edi, 0x12c
jge case.0x43098b.6
add edi, 0xa
jmp case.0x43098b.6
mov eax, dword [esp + 0x18]
test eax, eax
je 0x430a16
cmp edi, 0x14
jle 0x430a02
cmp edi, 0x63
je 0x430a07
sub edi, 0x14
jmp 0x430a16
cmp edi, 0x63
jne 0x430a0c
sub edi, 0x13
jmp 0x430a16
cmp edi, 0xffffffff
jne 0x430a16
mov edi, 0x63
mov eax, dword [esp + 0x14]
test eax, eax
je case.0x43098b.6
cmp edi, 0x50
jge 0x430a37
cmp edi, 0xffffffff
je 0x430a34
add edi, 0x14
jmp case.0x43098b.6
cmp edi, 0x50
jne 0x430a43
mov edi, 0x63
jmp case.0x43098b.6
cmp edi, 0x63
jne case.0x43098b.6
or edi, 0xffffffff
jmp case.0x43098b.6
mov eax, dword [esp + 0x18]
test eax, eax
je 0x430a62
cmp edi, 0xfffffff7
jle 0x430a62
dec edi
mov eax, dword [esp + 0x14]
test eax, eax
je case.0x43098b.6
cmp edi, 9
jge case.0x43098b.6
inc edi
jmp case.0x43098b.6
mov eax, dword [esp + 0x18]
test eax, eax
je 0x430a7f
test edi, edi
jle 0x430a7f
dec edi
mov eax, dword [esp + 0x14]
test eax, eax
je case.0x43098b.6
cmp edi, 0x64
jge case.0x43098b.6
inc edi
jmp case.0x43098b.6
mov edx, dword [esp + 0x18]
xor eax, eax
cmp edx, eax
je 0x430a9b
xor edi, edi
cmp dword [esp + 0x14], eax
je 0x430aa6
mov edi, 1
cmp dword [esp + 0x28], 1
jne case.0x43098b.6
cmp dword [esp + 0x50], eax
je case.0x43098b.6
jmp 0x430adb
mov edx, dword [esp + 0x28]
mov eax, 1
cmp edx, eax
jne case.0x43098b.6
mov edx, dword [esp + 0x50]
test edx, edx
je case.0x43098b.6
cmp dword [esp + 0x60], eax
jne 0x430ad9
call fcn.00482090
mov ecx, dword [esp + 0x40]
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], eax
mov eax, dword [0x4b5b4c]
mov dword [eax + ebx*4 + 0xc064], edi
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x430b40
mov eax, dword [esp + 0x2c]
cmp eax, 1
jne 0x430b10
mov ebp, eax
mov dword [esp + ecx*4 + 0x1c], 0xa
mov dword [esp + 0x24], ebp
jmp 0x430b4c
cmp eax, 0x3b
jne 0x430b28
mov ebp, 1
mov dword [esp + ecx*4 + 0x1c], 6
mov dword [esp + 0x24], ebp
jmp 0x430b4c
cmp eax, 0x3c
jne 0x430b40
mov ebp, 1
mov dword [esp + ecx*4 + 0x1c], 7
mov dword [esp + 0x24], ebp
jmp 0x430b4c
test ebp, ebp
je case.0x430b5c.10
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + ecx*4 + 0x1c]
add eax, 0xfffffffa
cmp eax, 4
ja case.default.0x430b5c
jmp dword [eax*4 + 0x4321f8]
mov ecx, dword [esi + 0x14]
mov eax, dword [0x4b5b4c]
mov edx, dword [esi + 0x10]
xor ebp, ebp
push ebp
push ecx
mov ecx, dword [eax + 0xa8f0]
push edx
push ecx
call fcn.0044e2d0
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ebx, 2
add esp, 0x10
mov dword [esp + 0x12c], edx
mov dword [esp + 0x138], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
jmp 0x430680
mov ecx, dword [esi + 0x14]
mov eax, dword [0x4b5b4c]
mov edx, dword [esi + 0x10]
xor ebp, ebp
push ebp
push ecx
mov ecx, dword [eax + 0xa8f0]
push edx
push ecx
call fcn.0044e2d0
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ebx, 1
add esp, 0x10
mov dword [esp + 0x12c], edx
mov dword [esp + 0x138], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
jmp 0x430680
cmp ebx, 2
jne 0x430e48
mov eax, dword [esp + 0x40]
mov edx, dword [esp + eax*4 + 0x1c]
add eax, 0x9a1
lea ecx, [edx + eax*4]
add eax, ecx
mov ecx, dword [0x4b5b4c]
shl eax, 2
dec edx
mov dword [esp + 0x68], eax
mov ecx, dword [eax + ecx]
mov dword [esp + 0x30], ecx
mov esi, ecx
jne 0x430d98
test edi, edi
je 0x430c3f
test ecx, ecx
je 0x430c3f
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x14]
test edx, edx
je 0x430c54
test ecx, ecx
jne 0x430c54
mov ecx, 1
mov dword [esp + 0x30], ecx
cmp ecx, esi
je 0x430d98
mov edx, dword [0x4b5b4c]
xor ebp, ebp
mov dword [esp + 0x34], ebp
mov ebx, 0xb620
mov dword [eax + edx], ecx
mov eax, dword [0x4b5b4c]
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov esi, dword [edx + eax + 0xc098]
test esi, esi
setne cl
mov dword [ebx + eax - 8], ecx
mov eax, dword [0x4b5b4c]
mov ecx, dword [ebx + eax - 8]
test ecx, ecx
je 0x430cbb
lea esi, [eax + ebp + 0xb5a8]
lea edi, [eax + ebp + 0xb540]
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x4b5b4c]
mov ecx, dword [esp + 0x30]
mov dword [ebx + eax], ecx
jmp 0x430cf1
lea edx, [eax + ebp + 0xb540]
push 0x34
push edx
call fcn.00418f20
mov eax, dword [0x4b5b4c]
push 0x80
mov dword [ebx + eax], 0
mov ecx, dword [0x4b5b4c]
lea edx, [ecx + ebp + 0xb540]
push edx
call fcn.00482900
add esp, 0x10
mov edx, dword [esp + 0x34]
add ebx, 4
add edx, 0x14
add ebp, 0x34
cmp ebx, 0xb628
mov dword [esp + 0x34], edx
jl 0x430c70
mov ecx, dword [0x4b5b4c]
mov eax, dword [ecx + 0xb618]
test eax, eax
mov eax, dword [0x4b5fa4]
jne 0x430d38
mov edx, dword [ecx + 0xb61c]
test edx, edx
jne 0x430d38
test eax, eax
je 0x430d38
call fcn.00447da0
jmp 0x430d98
mov edx, dword [ecx + 0xc060]
test edx, edx
jne 0x430d98
test eax, eax
jne 0x430d98
mov ecx, dword [0x4b5b4c]
xor esi, esi
cmp dword [ecx + 0xb61c], esi
setne al
push eax
mov eax, dword [ecx + eax*4 + 0xb620]
push eax
call fcn.00447c10
add esp, 8
test eax, eax
jne 0x430d86
mov ecx, dword [0x4b5b4c]
mov dword [ecx + 0xb61c], esi
mov edx, dword [0x4b5b4c]
mov dword [edx + 0xb618], esi
jmp 0x430d98
push 0x4a7718
call fcn.00415ef0
add esp, 4
call fcn.00426310
mov ecx, dword [esp + 0x68]
mov edx, dword [0x4b5b4c]
mov eax, dword [esp + 0x30]
mov dword [ecx + edx], eax
mov eax, dword [esp + 0x2c]
cmp eax, 1
jne 0x430db9
mov eax, 4
jmp 0x430dcc
cmp eax, 0x3b
jne 0x430dc2
xor eax, eax
jmp 0x430dcc
cmp eax, 0x3c
jne 0x430ddf
mov eax, 2
mov ebp, 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebp
jmp 0x430deb
mov ebp, dword [esp + 0x24]
test ebp, ebp
je case.0x430dfc.1
mov edi, dword [esp + 0x40]
mov eax, dword [esp + edi*4 + 0x1c]
cmp eax, 4
ja case.0x430dfc.1
jmp dword [eax*4 + 0x43220c]
mov esi, dword [esp + 0x44]
mov edx, dword [0x4b5b4c]
xor ebp, ebp
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
push ebp
push eax
mov eax, dword [edx + 0xa8f0]
push ecx
push eax
call fcn.0044e2d0
mov ecx, dword [esp + 0x13c]
mov edx, dword [esp + 0x148]
add esp, 0x10
xor ebx, ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], ebx
jmp 0x430680
cmp ebx, edx
jne 0x431145
mov eax, dword [esp + 0x40]
mov ecx, dword [0x4b5b4c]
mov edx, dword [esp + eax*4 + 0x1c]
lea edi, [esp + eax*4 + 0x1c]
mov eax, dword [ecx + edx*4 + 0xc0bc]
mov ecx, edx
sub ecx, 0
je 0x430e90
dec ecx
jne 0x430eb2
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x430e80
test eax, eax
jle 0x430e80
dec eax
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x430eb2
cmp eax, 1
jge 0x430eb2
inc eax
jmp 0x430eb2
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x430ea0
cmp eax, 0x64
jle 0x430ea0
sub eax, 0xa
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x430eb2
cmp eax, 0x12c
jge 0x430eb2
add eax, 0xa
mov ecx, dword [0x4b5b4c]
mov dword [ecx + edx*4 + 0xc0bc], eax
mov eax, dword [esp + 0x2c]
cmp eax, 1
jne 0x430ed9
mov ebp, 1
mov dword [edi], 3
mov dword [esp + 0x24], ebp
jmp 0x430ee1
test ebp, ebp
je case.0x430b5c.10
mov edi, dword [edi]
sub edi, 2
je 0x4310fb
dec edi
jne 0x431145
mov edx, dword [esi + 0x1c]
mov ecx, dword [0x4b5b4c]
mov eax, dword [esi + 0x18]
xor ebp, ebp
push ebp
push edx
mov edx, dword [ecx + 0xa8f0]
push eax
push edx
call fcn.0044e2d0
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x148]
add esp, 0x10
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], ebx
jmp 0x430680
mov edx, dword [esi + 0x14]
mov ecx, dword [0x4b5b4c]
mov eax, dword [esi + 0x10]
xor ebp, ebp
push ebp
push edx
mov edx, dword [ecx + 0xa8f0]
push eax
push edx
call fcn.0044e2d0
add esp, 0x10
mov dword [esp + 0x28], 1
mov dword [esp + 0x60], ebp
mov dword [esp + 0x24], ebp
jmp case.0x430b5c.10
mov eax, dword [esi + 0x14]
mov edx, dword [0x4b5b4c]
mov ecx, dword [esi + 0x10]
push 0
push eax
mov eax, dword [edx + 0xa8f0]
push ecx
push eax
call fcn.0044e2d0
mov ecx, dword [esp + 0x50]
mov eax, dword [0x4b5b4c]
add esp, 0x10
mov edx, dword [esp + ecx*4 + 0x1c]
mov ecx, dword [eax + edx*4 + 0xc064]
test ecx, ecx
jne 0x430fa7
call fcn.004820f0
jmp 0x430fac
call fcn.00482430
mov eax, 1
xor ebp, ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x24], ebp
jmp case.0x430b5c.10
mov esi, dword [esp + 0x44]
mov eax, dword [0x4b5b4c]
push 0
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
push ecx
mov ecx, dword [eax + 0xa8f0]
push edx
push ecx
call fcn.0044e2d0
push str.Config_keys_menu_n
call fcn.00415ef0
mov edx, dword [esp + 0x5c]
push edx
push 0
call fcn.00432250
push str.Return_from_config_keys_menu_n
mov dword [esp + 0x68], eax
call fcn.00415ef0
mov eax, dword [esi + 0x1c]
mov edx, dword [0x4b5b4c]
mov ecx, dword [esi + 0x18]
push 0
push eax
mov eax, dword [edx + 0xa8f0]
push ecx
push eax
call fcn.0044e2d0
add esp, 0x30
xor ebp, ebp
mov dword [esp + 0x24], ebp
jmp case.0x430b5c.10
mov eax, dword [0x4b5b4c]
mov ecx, dword [eax + 0xb618]
test ecx, ecx
jne 0x43104a
mov ecx, dword [eax + 0xb61c]
test ecx, ecx
je 0x4310b2
mov esi, dword [esp + 0x44]
mov eax, dword [eax + 0xa8f0]
push 0
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
push ecx
push edx
push eax
call fcn.0044e2d0
push str.Config_pads_menu_n
call fcn.00415ef0
mov ecx, dword [esp + 0x5c]
push ecx
push 1
call fcn.00432250
push str.Return_from_config_pads_menu_n
mov dword [esp + 0x68], eax
call fcn.00415ef0
mov edx, dword [esi + 0x1c]
mov ecx, dword [0x4b5b4c]
mov eax, dword [esi + 0x18]
push 0
push edx
mov edx, dword [ecx + 0xa8f0]
push eax
push edx
call fcn.0044e2d0
add esp, 0x30
xor ebp, ebp
mov dword [esp + 0x24], ebp
jmp case.0x430b5c.10
mov esi, dword [esp + 0x44]
xor ebp, ebp
mov dword [esp + 0x24], ebp
jmp case.0x430b5c.10
mov esi, dword [esp + 0x44]
mov edx, dword [0x4b5b4c]
xor ebp, ebp
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
push ebp
push eax
mov eax, dword [edx + 0xa8f0]
push ecx
push eax
call fcn.0044e2d0
mov edx, dword [0x4b5b4c]
lea ecx, [edi + edi*4]
add esp, 0x10
mov dword [esp + 0x24], ebp
mov dword [edx + ecx*4 + 0xc098], ebp
jmp case.0x430b5c.10
mov eax, dword [esi + 0x14]
mov edx, dword [0x4b5b4c]
mov ecx, dword [esi + 0x10]
xor ebp, ebp
push ebp
push eax
mov eax, dword [edx + 0xa8f0]
push ecx
push eax
call fcn.0044e2d0
mov ecx, dword [0x4b5b4c]
add esp, 0x10
mov dword [esp + 0x24], ebp
mov dword [ecx + 0xc0bc], 0xc8
mov edx, dword [0x4b5b4c]
mov dword [edx + 0xc0c0], ebp
jmp 0x431145
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x10]
mov eax, dword [0x4b5b4c]
push 0
push 0
mov ecx, dword [eax + 0xab2c]
push ecx
call fcn.0040aa70
mov edx, dword [0x4b5b4c]
mov eax, dword [edx + 0xab2c]
push eax
call fcn.0040ad10
mov ecx, dword [0x4b5b4c]
add esp, 0x10
mov eax, dword [ecx + 0xb408]
test eax, eax
jne 0x43210e
call fcn.00448800
mov edx, dword [0x4b5b4c]
push 0
mov eax, dword [edx + 0xab2c]
push eax
call fcn.0040aca0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
lea esi, [ecx + eax]
mov ecx, dword [esp + 0x94]
lea edi, [edx + ebx + 0xf]
push ecx
lea edx, [esi - 1]
add eax, 0xfffffff2
lea ecx, [edi - 1]
push edx
push ecx
lea edx, [ebx - 0xf]
push eax
push edx
call fcn.00489a40
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x9c]
lea ebp, [esi - 2]
lea eax, [ebx - 0x10]
push edx
lea ebx, [ecx - 0xd]
push ebp
push eax
push ebx
push eax
call fcn.00489a40
mov eax, dword [esp + 0xb0]
push eax
push ebp
push edi
push ebx
push edi
call fcn.00489a40
mov ecx, dword [esp + 0x90]
mov ebp, dword [esp + 0xc4]
mov edx, dword [esp + 0xa0]
add esp, 0x44
lea eax, [ecx - 0xf]
add edi, 0xfffffffe
push ebp
push eax
lea ebx, [edx - 0xe]
push edi
push eax
push ebx
call fcn.00489a40
push ebp
push esi
push edi
push esi
push ebx
call fcn.00489a40
mov eax, dword [esp + 0x38]
add esp, 0x28
test eax, eax
jne 0x431295
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov eax, 0x1f
mov edx, 0x3f
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or eax, edx
mov edx, 0x1f
shl edx, cl
or eax, edx
push eax
mov eax, dword [0x4b6c4c]
cdq
sub eax, edx
mov edx, dword [0x4b5b4c]
sar eax, 1
push 0x14
push eax
mov eax, dword [edx + 0x5cd8]
push eax
push str.OPTIONS
jmp 0x43140f
mov eax, dword [esp + 0x10]
cmp eax, 2
jne 0x4313ba
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x1f
mov ecx, dword [eax]
mov eax, 0x3f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
mov eax, dword [0x4b6c4c]
push edx
push 0x14
cdq
sub eax, edx
mov edx, dword [0x4b5b4c]
sar eax, 1
push eax
mov eax, dword [edx + 0x5cd8]
push eax
push str.INPUT_CONFIG
call fcn.0041b080
mov ecx, dword [esp + 0x60]
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x1f
mov edi, dword [esp + 0x6c]
lea esi, [ecx - 3]
mov ecx, dword [eax]
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov eax, 0x3f
mov ebx, dword [esp + 0x70]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x10
shl eax, cl
or edx, eax
mov eax, edi
push edx
push esi
cdq
and edx, 3
add eax, edx
mov edx, dword [0x4b5b4c]
sar eax, 2
add eax, ebx
push eax
mov eax, dword [edx + 0x5cd8]
push eax
push 0x4a77ac
call fcn.0041b080
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x10
mov ecx, dword [eax]
mov eax, 0x20
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
lea eax, [edi + edi*2]
push edx
push esi
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ebx
push eax
mov edx, dword [0x4b5b4c]
mov eax, dword [edx + 0x5cd8]
push eax
push 0x4a77b8
call fcn.0041b080
add esp, 0x3c
jmp 0x431417
cmp eax, 1
jne 0x431417
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x1f
mov ecx, dword [eax]
mov eax, 0x3f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
mov eax, dword [0x4b6c4c]
push edx
push 0x14
cdq
sub eax, edx
mov edx, dword [0x4b5b4c]
sar eax, 1
push eax
mov eax, dword [edx + 0x5cd8]
push eax
push str.TEAM_MODE_CONFIG
call fcn.0041b080
add esp, 0x14
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov eax, ecx
mov ebx, dword [esp + 0x54]
imul eax, dword [esp + 0x58]
cdq
sub eax, edx
xor edx, edx
sar eax, 1
mov esi, dword [esp + 0x6c]
cmp ebx, 1
setne dl
inc edx
mov dword [esp + 0x94], edx
xor edx, edx
cmp esi, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], edx
jle 0x431d07
mov esi, dword [esp + 0x5c]
add eax, esi
mov esi, 7
mov dword [esp + 0x90], eax
mov eax, dword [esp + ecx*4 + 0x1c]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x120]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
jmp 0x431496
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov esi, 7
mov edi, dword [esp + 0x90]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x54]
cmp edi, 2
jne 0x4314bc
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x4314b6
sub ecx, esi
jmp 0x4314b8
add ecx, esi
mov dword [esp + 0x14], ecx
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov esi, 0x18
mov ebp, 0x30
mov edi, dword [ecx]
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ebx, dword [ecx]
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
mov dword [esp + 0x68], ecx
shl esi, cl
mov ecx, ebx
shl ebp, cl
mov ecx, edi
or esi, ebp
mov ebp, 0x18
shl ebp, cl
or esi, ebp
test eax, eax
jne 0x431505
cmp edx, 0xa
je 0x431524
cmp edx, 8
jne 0x431528
jmp 0x431524
cmp eax, 2
jne 0x43151a
test edx, edx
je 0x431524
cmp edx, 3
je 0x431524
cmp edx, 1
jne 0x431528
jmp 0x431524
cmp eax, 1
jne 0x431528
cmp edx, 3
jne 0x431528
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x88]
lea ebp, [ecx + edx]
mov edx, dword [esp + 0x4c]
imul ebp, dword [esp + 0x74]
add ebp, edx
cmp ecx, eax
jne 0x431618
mov eax, dword [esp + 0x48]
shl eax, 2
mov ecx, eax
and ecx, 0x8000007f
jns 0x431563
dec ecx
or ecx, 0xffffff80
inc ecx
cmp ecx, 0x40
jge 0x431579
and eax, 0x8000003f
jns 0x431574
dec eax
or eax, 0xffffffc0
inc eax
add eax, 0x20
jmp 0x43158f
mov edx, eax
and edx, 0x8000003f
jns 0x431588
dec edx
or edx, 0xffffffc0
inc edx
mov eax, 0x5f
sub eax, edx
mov edx, eax
mov ecx, ebx
sar eax, 2
sar edx, 3
shl eax, cl
mov ecx, dword [esp + 0x68]
mov esi, edx
shl esi, cl
mov ecx, edi
shl edx, cl
mov ecx, dword [esp + 0x14]
or eax, esi
or eax, edx
mov dword [esp + 0x84], eax
push eax
lea eax, [ebp + 3]
push eax
mov eax, dword [esp + 0x60]
cdq
idiv dword [esp + 0x9c]
lea edx, [eax + ecx + 4]
lea eax, [ebp - 0xa]
push edx
add ecx, 0xfffffffb
push eax
push ecx
call fcn.00489680
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov eax, dword [sym.imp.alleg40.dll_Ordinal_44]
mov edx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov esi, 0x1f
mov edi, dword [ecx]
mov ecx, dword [eax]
mov ebx, dword [edx]
mov dword [esp + 0x7c], ecx
shl esi, cl
mov edx, 0x3f
mov ecx, ebx
shl edx, cl
mov eax, 0x1f
mov ecx, edi
shl eax, cl
mov ecx, dword [esp + 0x44]
add esp, 0x14
or esi, edx
or esi, eax
mov eax, dword [esp + 0x10]
cmp eax, 2
mov eax, dword [0x4b5b4c]
jne 0x431660
cmp ecx, 2
jne 0x431660
mov ecx, dword [eax + 0xb618]
test ecx, ecx
jne 0x431660
mov ecx, dword [eax + 0xb61c]
test ecx, ecx
jne 0x431660
mov ecx, dword [esp + 0x68]
mov esi, 0x12
shl esi, cl
mov edx, 0x20
mov ecx, ebx
shl edx, cl
mov ecx, edi
or esi, edx
mov edx, 0x10
shl edx, cl
or esi, edx
mov edx, dword [eax + 0x5cd8]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x30]
push esi
push ebp
push ecx
mov ecx, dword [eax + ebx*4]
push edx
push ecx
call fcn.0041b020
mov eax, dword [esp + 0x24]
add esp, 0x14
test eax, eax
mov byte [esp + 0xa0], 0
jne 0x431854
mov edx, dword [0x4b5b4c]
cmp ebx, 8
mov eax, dword [edx + ebx*4 + 0xc064]
ja case.0x4316ac.6
jmp dword [ebx*4 + 0x432220]
cmp eax, 3
jge 0x4316d4
mov ecx, dword [str.Easy]
mov dl, byte [0x4a77dc]
mov dword [esp + 0xa0], ecx
mov byte [esp + 0xa4], dl
jmp 0x43171e
cmp eax, 5
jle 0x4316f5
mov ecx, dword [str.Hard]
mov dl, byte [0x4a77e4]
mov dword [esp + 0xa0], ecx
mov byte [esp + 0xa4], dl
jmp 0x43171e
mov ecx, dword [0x4a77e8]
mov dx, word [0x4a77ec]
mov dword [esp + 0xa0], ecx
mov cl, byte [0x4a77ee]
mov word [esp + 0xa4], dx
mov byte [esp + 0xa6], cl
push eax
lea edi, [esp + 0xa4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x4a77f0
lea edx, [esp + ecx + 0xa8]
jmp 0x431a65
push eax
lea eax, [esp + 0xa4]
push 0x4a77f4
push eax
jmp 0x431a66
cmp eax, 0xffffffff
je 0x43176c
push eax
lea ecx, [esp + 0xa4]
push 0x4a77fc
push ecx
jmp 0x431a66
mov edx, dword [0x4a7800]
mov al, byte [0x4a7804]
mov dword [esp + 0xa0], edx
mov byte [esp + 0xa4], al
jmp case.0x4316ac.6
test eax, eax
jne 0x4317bb
mov ecx, dword [str.Normal]
mov dx, word [0x4a780c]
mov al, byte [0x4a780e]
mov dword [esp + 0xa0], ecx
mov word [esp + 0xa4], dx
mov byte [esp + 0xa6], al
jmp case.0x4316ac.6
jle 0x4317d0
push eax
lea ecx, [esp + 0xa4]
push str.Fast__i
push ecx
jmp 0x431a66
neg eax
push eax
push str.Slow__i
jmp 0x431a5e
test eax, eax
jne 0x4317f2
mov eax, dword [0x4a7820]
mov dword [esp + 0xa0], eax
jmp case.0x4316ac.6
cmp eax, 0x64
jne 0x431809
mov ecx, dword [0x4a7824]
mov dword [esp + 0xa0], ecx
jmp case.0x4316ac.6
push eax
push 0x4a7828
jmp 0x431a5e
test eax, eax
jne 0x431836
mov eax, dword [str.Load]
mov cl, byte [0x4a7830]
mov dword [esp + 0xa0], eax
mov byte [esp + 0xa4], cl
jmp case.0x4316ac.6
mov edx, dword [str.Save]
mov al, byte [0x4a7838]
mov dword [esp + 0xa0], edx
mov byte [esp + 0xa4], al
jmp case.0x4316ac.6
cmp eax, 2
jne 0x4319e5
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 0x9a1]
mov ecx, dword [0x4b5b4c]
lea edx, [ebx + eax*4]
add eax, edx
mov edi, dword [ecx + eax*4]
mov eax, ebx
dec eax
jne 0x431990
test edi, edi
jne 0x4318ad
mov edx, dword [str.Disabled]
mov eax, dword [0x4a7840]
mov cl, byte [0x4a7844]
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], eax
mov byte [esp + 0xa8], cl
jmp 0x431990
cmp edi, 1
jne 0x4318d0
mov edx, dword [0x4a7848]
mov al, byte [0x4a784c]
mov dword [esp + 0xa0], edx
mov byte [esp + 0xa4], al
jmp 0x431990
cmp edi, 4
jl 0x4318f5
cmp edi, 8
jg 0x4318f5
push edi
lea ecx, [esp + 0xa4]
push str._i_button
push ecx
call fcn.00492257
add esp, 0xc
jmp 0x431990
cmp edi, 0x14
jne 0x431931
mov edx, dword [str.Sidewinder]
mov eax, dword [0x4a7860]
mov cx, word [0x4a7864]
mov dword [esp + 0xa0], edx
mov dl, byte [0x4a7866]
mov dword [esp + 0xa4], eax
mov word [esp + 0xa8], cx
mov byte [esp + 0xaa], dl
jmp 0x431990
cmp edi, 0x15
jne 0x431951
mov eax, dword [str.SNESKey]
mov ecx, dword [0x4a786c]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
jmp 0x431990
cmp edi, 0x16
jne 0x431971
mov edx, dword [str.PSX_Pad]
mov eax, dword [0x4a7874]
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], eax
jmp 0x431990
cmp edi, 0x17
jne 0x431990
mov ecx, dword [str.N64_Pad]
mov edx, dword [0x4a787c]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], edx
mov eax, dword [0x4b5b4c]
mov ecx, dword [esp + 0x34]
mov edx, dword [eax + ecx*4 + 0xb618]
test edx, edx
jne case.0x4316ac.6
test edi, edi
je case.0x4316ac.6
mov edx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov esi, 0x10
mov eax, 0x20
mov ecx, dword [edx]
mov edx, 0x12
shl esi, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
or esi, eax
mov eax, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [eax]
shl edx, cl
or esi, edx
jmp case.0x4316ac.6
cmp eax, 1
jne case.0x4316ac.6
mov ecx, dword [0x4b5b4c]
mov eax, dword [ecx + ebx*4 + 0xc0bc]
mov ecx, ebx
sub ecx, 0
je 0x431a58
dec ecx
jne case.0x4316ac.6
test eax, eax
jne 0x431a20
lea edx, [esp + 0xa0]
push str.Team_loses
push edx
call fcn.00492257
add esp, 8
jmp case.0x4316ac.6
cmp eax, 1
jne 0x431a3c
lea eax, [esp + 0xa0]
push str.AI_keeps_fighting
push eax
call fcn.00492257
add esp, 8
jmp case.0x4316ac.6
cmp eax, 2
jne case.0x4316ac.6
lea ecx, [esp + 0xa0]
push str.Control_AI
push ecx
call fcn.00492257
add esp, 8
jmp case.0x4316ac.6
push eax
push str._i__
lea edx, [esp + 0xa8]
push edx
call fcn.00492257
add esp, 0xc
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x14]
mov edx, dword [0x4b5b4c]
push esi
lea edi, [ecx + eax]
push ebp
mov eax, dword [edx + 0x5cd8]
push edi
lea ecx, [esp + 0xac]
push eax
push ecx
call fcn.0041b050
mov eax, dword [esp + 0x24]
add esp, 0x14
test eax, eax
jne 0x431b96
cmp ebx, 6
jne 0x431af4
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x10
mov ecx, dword [eax]
mov eax, 0x3f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
push edx
mov edx, dword [0x4b5b4c]
push ebp
push edi
mov eax, dword [edx + 0x5cd8]
push eax
push 0x4a78b4
jmp 0x431cea
cmp ebx, 7
jne 0x431b43
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x10
mov ecx, dword [eax]
mov eax, 0x3f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
push edx
mov edx, dword [0x4b5b4c]
push ebp
push edi
mov eax, dword [edx + 0x5cd8]
push eax
push 0x4a78bc
jmp 0x431cea
cmp ebx, 0xa
jne 0x431cf2
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x10
mov ecx, dword [eax]
mov eax, 0x3f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
push edx
mov edx, dword [0x4b5b4c]
push ebp
push edi
mov eax, dword [edx + 0x5cd8]
push eax
push 0x4a78c4
jmp 0x431cea
mov eax, dword [esp + 0x10]
cmp eax, 2
jne 0x431c9b
cmp dword [esp + 0x34], 1
jne 0x431cf2
test ebx, ebx
jne 0x431bfc
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x10
mov ecx, dword [eax]
mov eax, 0x3f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
push edx
mov edx, dword [0x4b5b4c]
push ebp
push edi
mov eax, dword [edx + 0x5cd8]
push eax
push 0x4a78cc
jmp 0x431cea
cmp ebx, 2
jne 0x431c4b
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x10
mov ecx, dword [eax]
mov eax, 0x3f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
push edx
mov edx, dword [0x4b5b4c]
push ebp
push edi
mov eax, dword [edx + 0x5cd8]
push eax
push 0x4a78d4
jmp 0x431cea
cmp ebx, 4
jne 0x431cf2
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x10
mov ecx, dword [eax]
mov eax, 0x3f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
push edx
mov edx, dword [0x4b5b4c]
push ebp
push edi
mov eax, dword [edx + 0x5cd8]
push eax
push 0x4a78dc
jmp 0x431cea
cmp eax, 1
jne 0x431cf2
cmp ebx, 3
jne 0x431cf2
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x10
mov ecx, dword [eax]
mov eax, 0x3f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
push edx
mov edx, dword [0x4b5b4c]
push ebp
push edi
mov eax, dword [edx + 0x5cd8]
push eax
push 0x4a78e4
call fcn.0041b050
add esp, 0x14
mov eax, dword [esp + 0x6c]
inc ebx
cmp ebx, eax
mov dword [esp + 0x30], ebx
jl 0x431485
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x54], 1
je 0x431d1c
inc ecx
cmp ecx, 2
mov dword [esp + 0x34], ecx
jl 0x43141d
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4320ec
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0xc
mov ecx, dword [eax]
mov eax, 0xe
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 7
shl eax, cl
or edx, eax
push edx
mov edx, dword [0x4b6c4c]
add edx, 0xffffff9c
push 0x42c60000
mov dword [esp + 0x40], edx
push ecx
fild dword [esp + 0x44]
fstp dword [esp]
push 0x42c60000
push 0x42c80000
call fcn.00487a70
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov eax, 0xc
mov edx, 0xe
add esp, 0x14
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or eax, edx
mov edx, 7
shl edx, cl
or eax, edx
mov edx, dword [0x4b6c4c]
add edx, 0xffffff9c
push eax
mov dword [esp + 0x3c], edx
push 0x43030000
fild dword [esp + 0x40]
push ecx
fstp dword [esp]
push 0x43030000
push 0x42c80000
call fcn.00487a70
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov eax, 0xc
mov edx, 0xe
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or eax, edx
mov edx, 7
shl edx, cl
or eax, edx
push eax
push 0x43020000
push 0x42c60000
push 0x42c80000
push 0x42c60000
call fcn.00487a70
mov edx, dword [0x4b6c4c]
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
add edx, 0xffffff9d
mov eax, 0xc
mov ecx, dword [ecx]
mov dword [esp + 0x60], edx
fild dword [esp + 0x60]
shl eax, cl
mov edx, 0xe
fstp dword [esp + 0x60]
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or eax, edx
mov edx, 7
shl edx, cl
or eax, edx
push eax
mov eax, dword [esp + 0x64]
push 0x43020000
push eax
push 0x42c80000
push eax
call fcn.00487a70
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x11
mov ecx, dword [eax]
mov eax, 0x15
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0xa
shl eax, cl
or edx, eax
push edx
mov edx, dword [0x4b6c4c]
add edx, 0xffffff9c
push 0x82
push edx
push 0x64
push 0x64
call fcn.00489500
mov eax, dword [esp + 0x90]
add esp, 0x50
mov eax, dword [esp + eax*4 + 0x1c]
cmp eax, 9
jne 0x43204d
mov eax, dword [esp + 0x60]
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, dword [sym.imp.alleg40.dll_Ordinal_40]
test eax, eax
mov eax, dword [ecx]
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov edx, dword [edx]
mov ebx, dword [ecx]
jne 0x431f5d
mov esi, 0x1f
mov ecx, ebx
shl esi, cl
mov edi, 0x3f
mov ecx, edx
shl edi, cl
mov ecx, eax
or esi, edi
mov edi, 0x1f
shl edi, cl
mov ecx, ebx
mov ebx, 0x30
or esi, edi
mov edi, 0x18
shl edi, cl
mov ecx, edx
mov edx, 0x18
shl ebx, cl
mov ecx, eax
mov eax, dword [esp + 0x84]
shl edx, cl
push eax
push 0x7f
or edi, ebx
push 0x9d
push 0x73
push 0x8e
or edi, edx
jmp 0x431fb1
mov esi, 0x18
mov ecx, ebx
shl esi, cl
mov edi, 0x30
mov ecx, edx
shl edi, cl
mov ecx, eax
or esi, edi
mov edi, 0x18
shl edi, cl
mov ecx, ebx
mov ebx, 0x3f
or esi, edi
mov edi, 0x1f
shl edi, cl
mov ecx, edx
mov edx, 0x1f
shl ebx, cl
mov ecx, eax
mov eax, dword [esp + 0x84]
shl edx, cl
push eax
push 0x7f
or edi, ebx
push 0xb4
push 0x73
push 0xa2
or edi, edx
call fcn.00489680
mov eax, dword [sym.imp.alleg40.dll_Ordinal_36]
mov edx, 0x1f
add esp, 0x14
mov ecx, dword [eax]
mov eax, 0x3f
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov ecx, dword [ecx]
shl eax, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, eax
mov eax, 0x1f
shl eax, cl
or edx, eax
push edx
mov edx, dword [0x4b5b4c]
push 0x70
push 0x9f
mov eax, dword [edx + 0x5cd8]
push eax
push str.Confirm
call fcn.0041b080
mov ecx, dword [0x4b5b4c]
push esi
push 0x7d
push 0x9a
mov edx, dword [ecx + 0x5cd8]
push edx
push 0x4a78f4
call fcn.0041b050
mov eax, dword [0x4b5b4c]
push edi
push 0x7d
push 0xa4
mov ecx, dword [eax + 0x5cd8]
push ecx
push 0x4a78f8
call fcn.0041b020
add esp, 0x3c
jmp 0x4320ec
cmp eax, 8
jne 0x4320ec
mov eax, dword [0x4b5b4c]
mov edx, 0x1f
mov ecx, dword [eax + 0xc084]
test ecx, ecx
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_36]
mov ecx, dword [ecx]
jne 0x4320ac
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov esi, 0x3f
mov ecx, dword [ecx]
shl esi, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, esi
mov esi, 0x1f
shl esi, cl
or edx, esi
push edx
mov edx, dword [eax + 0x5cd8]
push 0x76
push 0x9f
push edx
push str.Options_Loaded
jmp 0x4320e4
shl edx, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_40]
mov esi, 0x3f
mov ecx, dword [ecx]
shl esi, cl
mov ecx, dword [sym.imp.alleg40.dll_Ordinal_44]
mov ecx, dword [ecx]
or edx, esi
mov esi, 0x1f
shl esi, cl
or edx, esi
push edx
mov edx, dword [eax + 0x5cd8]
push 0x76
push 0x9f
push edx
push str.Options_Saved
call fcn.0041b080
add esp, 0x14
mov eax, dword [0x4b5b4c]
push 1
mov ecx, dword [eax + 0xab2c]
push ecx
call fcn.0040aca0
mov esi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
add esp, 8
cmp dword [esp + 0x2c], 0x58
jne 0x43211a
call fcn.00417700
mov edx, dword [0x4b5b4c]
mov eax, dword [edx + 0xc934]
test eax, eax
jne 0x43212f
call fcn.00482b50
mov eax, dword [0x4b5b4c]
mov ecx, dword [eax + 0xb408]
test ecx, ecx
jne 0x43214d
mov ecx, dword [eax + 0x5cf8]
test ecx, ecx
je 0x43214d
call sub.alleg40.dll_Ordinal_745
call fcn.004174e0
mov eax, dword [0x4b5b4c]
mov ecx, dword [eax + 0xb408]
test ecx, ecx
jne 0x432166
call fcn.00448830
call fcn.00417420
mov ecx, dword [esp + 0x48]
inc ecx
test ebp, ebp
mov dword [esp + 0x48], ecx
je 0x43067e
mov ecx, dword [esp + 0x1c]
mov eax, 0xa
cmp ecx, eax
je 0x432193
cmp dword [esp + 0x20], eax
jne 0x43067e
test ebx, ebx
jne 0x43067e
call fcn.00417400
mov ecx, dword [esi + 0x1c]
mov eax, dword [0x4b5b4c]
mov edx, dword [esi + 0x18]
push ebx
push ecx
mov ecx, dword [eax + 0xa8f0]
push edx
push ecx
call fcn.0044e2d0
add esp, 0x10
mov dword [0x4a616c], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x184
ret