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

Disassembly:
sub esp, 0x2f4
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov dword [esp + 0x14], ebp
mov eax, dword [ebp + 4]
mov esi, str.WOLlist
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x488630
test cl, cl
je 0x48862c
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x488630
add eax, 2
add esi, 2
test cl, cl
jne 0x488608
xor eax, eax
jmp 0x488635
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x488647
mov cl, byte [ebp + 0x777]
test cl, cl
setne al
mov dword [ebp + 0x18], eax
push str.HOSTHEADTOHEAD
call fcn.00411e70
add esp, 4
test al, al
jne 0x488701
push str.CLIENTMULTIPLAYER
call fcn.00411e70
add esp, 4
test al, al
jne 0x488701
push str.HOST_MP2
call fcn.00411e70
add esp, 4
test al, al
jne 0x488701
push str.JOIN_MP2
call fcn.00411e70
add esp, 4
test al, al
jne 0x488701
push str.IPXLOBBY
call fcn.00411e70
add esp, 4
test al, al
je 0x488755
mov eax, dword [0x798490]
add eax, 0x418
push eax
call fcn.004916b0
add esp, 4
test eax, eax
je 0x488755
mov eax, dword [ebp + 4]
mov esi, str.playerList
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x4886f3
test cl, cl
je 0x4886ef
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x4886f3
add eax, 2
add esi, 2
test cl, cl
jne 0x4886cb
xor eax, eax
jmp 0x4886f8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x488755
jmp 0x48aab0
mov eax, dword [0x798490]
add eax, 0x418
push eax
call fcn.004916b0
add esp, 4
test eax, eax
jne 0x488755
mov eax, dword [ebp + 4]
mov esi, str.playerList
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x488748
test cl, cl
je 0x488744
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x488748
add eax, 2
add esi, 2
test cl, cl
jne 0x488720
xor eax, eax
jmp 0x48874d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x48aab0
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x18], ecx
add ecx, eax
mov edi, dword [esp + 0x308]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x1c], edx
add edx, ecx
mov dword [esp + 0x24], edx
mov edx, dword [ebp + 0x77c]
test edx, edx
jne 0x4887c3
mov edx, dword [ebp + 0x808]
test edx, edx
jne 0x4887c3
mov edx, dword [0x4eb018]
push str.CEditBox::Draw___fBackImage
push edx
push ecx
push eax
call fcn.0042ef90
add esp, 0x10
lea ecx, [esp + 0x18]
mov dword [ebp + 0x808], eax
push 0
push 0
push ecx
push edi
push 0
push 0
push eax
call fcn.0042fac0
add esp, 0x1c
mov eax, dword [ebp + 0x808]
test eax, eax
je 0x4887e7
mov edx, dword [ebp + 0xc]
push 0
push 0
push 0
push eax
mov eax, dword [ebp + 8]
push edx
push eax
push edi
call fcn.0042fac0
add esp, 0x1c
jmp 0x488818
mov edx, dword [ebp + 0x784]
mov ecx, dword [0x7975a0]
mov eax, dword [ecx + edx*4]
mov edx, dword [eax + 4]
push edx
mov eax, edx
mov edx, dword [ebp + 0x77c]
push eax
mov eax, dword [ecx + edx*4]
lea edx, [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
push edx
push edi
call fcn.0042d660
add esp, 0x14
mov ecx, dword [ebp + 0x14]
mov al, 1
cmp ecx, 0x24
mov byte [esp + 0x3b], al
jl 0x488830
mov cl, byte [ebp + 0x814]
test cl, cl
je 0x488836
xor al, al
mov byte [esp + 0x3b], al
xor ecx, ecx
mov dword [esp + 0x48], 0
mov cl, byte [ebp + 0x779]
mov edx, ecx
mov ecx, dword [esp + 0x1c]
add ecx, edx
test al, al
mov dword [esp + 0x24], ecx
je 0x48885b
sub dword [esp + 0x20], 0x10
mov eax, dword [ebp + 0x7f4]
mov si, word [ebp + 0x79c]
test eax, eax
je 0x48894d
mov eax, dword [ebp + 0x808]
inc esi
test eax, eax
jne 0x4888de
cmp word [ebp + 0x7e8], 0
jne 0x4888af
mov eax, dword [ebp + 0x77c]
mov ecx, dword [0x7975a0]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 4]
push edx
mov eax, edx
mov edx, dword [ebp + 0x784]
push eax
mov eax, dword [ecx + edx*4]
lea edx, [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
push edx
jmp 0x4888d5
mov al, byte [ebp + 0x815]
test al, al
jne 0x4888de
mov eax, dword [ebp + 0x77c]
mov ecx, dword [0x7975a0]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 4]
lea eax, [esp + 0x18]
mov ecx, edx
push edx
push ecx
push edx
push eax
push edi
call fcn.0042d660
add esp, 0x14
mov ecx, dword [ebp + 0x780]
mov edx, dword [0x7975a0]
push 0xffffffffffffffff
mov eax, dword [edx + ecx*4]
mov dl, byte [ebp + 0x775]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
push edx
add ecx, 5
push eax
push ecx
push 1
push str.EmptySlot
call fcn.0048dc10
add esp, 4
push eax
call fcn.0048dcc0
add esp, 8
push eax
push edi
call fcn.0042dc00
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
xor eax, eax
add esp, 0x1c
mov al, byte [ebp + 0x779]
mov dword [esp + 0x48], 1
add edx, eax
add ecx, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ecx
cmp si, word [ebp + 0x78a]
mov dword [esp + 0x28], esi
jae 0x48a630
jmp 0x488967
mov edi, dword [esp + 0x308]
mov al, byte [ebp + 0x7f8]
mov esi, dword [esp + 0x28]
test al, al
je 0x4889c7
mov edx, dword [ebp + 0x7fc]
and esi, 0xffff
mov dword [esp + 0x34], esi
cmp byte [edx + esi], 0
je 0x488a44
mov al, byte [ebp + 0x815]
test al, al
jne 0x488a44
mov eax, dword [ebp + 0x77c]
mov ecx, dword [0x7975a0]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 4]
push edx
mov eax, edx
mov edx, dword [ebp + 0x784]
push eax
mov eax, dword [ecx + edx*4]
lea edx, [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
push edx
jmp 0x488a3b
and esi, 0xffff
xor eax, eax
mov ax, word [ebp + 0x7e8]
mov dword [esp + 0x34], esi
lea ecx, [esi + 1]
cmp eax, ecx
jne 0x488a15
mov al, byte [ebp + 0x815]
test al, al
jne 0x488a15
mov edx, dword [ebp + 0x77c]
mov ecx, dword [0x7975a0]
mov eax, dword [ecx + edx*4]
mov edx, dword [eax + 4]
push edx
mov eax, edx
mov edx, dword [ebp + 0x784]
push eax
mov eax, dword [ecx + edx*4]
lea edx, [esp + 0x20]
mov ecx, dword [eax + 4]
push ecx
push edx
jmp 0x488a3b
mov eax, dword [ebp + 0x808]
test eax, eax
jne 0x488a44
mov eax, dword [ebp + 0x77c]
mov ecx, dword [0x7975a0]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 4]
lea eax, [esp + 0x18]
mov ecx, edx
push edx
push ecx
push edx
push eax
push edi
call fcn.0042d660
add esp, 0x14
mov ecx, dword [ebp + 0x790]
lea eax, [esi*4]
mov dword [esp + 0x2c], eax
cmp dword [ecx + eax], 0
je 0x48a5ec
mov al, byte [0x4f3d48]
mov bl, 2
test al, al
mov byte [esp + 0x10], bl
je 0x489357
mov edx, dword [esp + 0x14]
mov edi, str.userWOLlist
mov ebp, dword [edx + 4]
mov esi, ebp
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x488aa8
test al, al
je 0x488aa4
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x488aa8
add esi, 2
add edi, 2
test al, al
jne 0x488a80
xor eax, eax
jmp 0x488aad
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x488fb6
mov edi, str.playerList
mov esi, ebp
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x488ae4
test al, al
je 0x488ae0
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x488ae4
add esi, 2
add edi, 2
test al, al
jne 0x488abc
xor eax, eax
jmp 0x488ae9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x488fb6
mov edi, str.WOLlist
mov esi, ebp
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x488b20
test al, al
je 0x488b1c
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x488b20
add esi, 2
add edi, 2
test al, al
jne 0x488af8
xor eax, eax
jmp 0x488b25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.default.0x488b3b
mov eax, dword [0x4f3d14]
cmp eax, 7
ja case.default.0x488b3b
jmp dword [eax*4 + 0x48aad0]
cmp word [esp + 0x28], 0
jbe case.default.0x488b3b
mov ecx, dword [0x4f2020]
test ecx, ecx
je case.default.0x488b3b
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add eax, 2
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa0], eax
mov esi, dword [ecx]
add esi, eax
push 1
mov dword [esp + 0xac], esi
mov esi, dword [ecx + 4]
push 1
push ecx
add esi, edx
push edx
mov edx, dword [esp + 0x318]
lea ecx, [esp + 0xb0]
push eax
push ecx
push edx
mov dword [esp + 0xc8], esi
call fcn.00430770
mov eax, dword [0x4f2020]
add esp, 0x1c
jmp 0x489636
cmp word [esp + 0x28], 0
jbe case.default.0x488b3b
mov ecx, dword [0x4f2038]
test ecx, ecx
je case.default.0x488b3b
mov edx, dword [esp + 0x18]
push 1
push 1
push ecx
lea eax, [edx + 2]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], edx
mov esi, dword [ecx]
push edx
add esi, eax
push eax
mov dword [esp + 0x1bc], esi
mov esi, dword [ecx + 4]
mov ecx, dword [esp + 0x31c]
lea eax, [esp + 0x1b4]
add esi, edx
push eax
push ecx
mov dword [esp + 0x1c8], esi
call fcn.00430770
mov edx, dword [0x4f2038]
add esp, 0x1c
mov bl, byte [edx]
jmp 0x489638
cmp word [esp + 0x28], 0
jbe case.default.0x488b3b
mov ecx, dword [0x4f202c]
test ecx, ecx
je case.default.0x488b3b
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0xc4], edi
lea edx, [eax - 1]
mov eax, dword [esp + 0x18]
add eax, 2
mov dword [esp + 0xc0], eax
mov esi, dword [ecx]
add esi, eax
mov dword [esp + 0xc8], esi
mov esi, dword [ecx + 4]
add esi, edi
mov dword [esp + 0xcc], esi
mov esi, dword [0x4f40a0]
test esi, esi
je case.default.0x488b3b
cmp dword [0x4f409c], edx
jbe case.default.0x488b3b
mov edx, dword [esi + edx*4]
mov esi, dword [edx + 0x10]
test esi, esi
je case.default.0x488b3b
push 1
push 1
push ecx
mov ecx, dword [esp + 0x314]
push edi
push eax
lea eax, [esp + 0xd4]
push eax
push ecx
call fcn.00430770
mov edx, dword [0x4f202c]
add esp, 0x1c
mov bl, byte [edx]
jmp 0x489638
cmp word [esp + 0x28], 0
jbe case.default.0x488b3b
mov ecx, dword [0x4f2030]
test ecx, ecx
je case.default.0x488b3b
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x144], esi
lea edx, [eax - 1]
mov eax, dword [esp + 0x18]
add eax, 2
mov dword [esp + 0x140], eax
mov edi, dword [ecx]
add edi, eax
mov dword [esp + 0x148], edi
mov edi, dword [ecx + 4]
add edi, esi
mov esi, dword [0x4f40a8]
test esi, esi
mov dword [esp + 0x14c], edi
je case.default.0x488b3b
cmp dword [0x4f40a4], edx
jbe case.default.0x488b3b
push 1
push 1
push ecx
mov ecx, dword [esp + 0x28]
push ecx
push eax
mov eax, dword [esp + 0x31c]
lea edx, [esp + 0x154]
push edx
push eax
call fcn.00430770
mov ecx, dword [0x4f2030]
add esp, 0x1c
mov bl, byte [ecx]
jmp 0x489638
cmp word [esp + 0x28], 0
jbe case.default.0x488b3b
mov edx, dword [esp + 0x18]
mov eax, dword [0x4f3cfc]
mov esi, dword [esp + 0x1c]
push 1
mov eax, dword [eax*4 + 0x4f1e00]
lea ecx, [edx + 2]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], esi
mov edi, dword [eax]
push 1
push eax
push esi
lea edx, [edx + edi + 2]
push ecx
mov ecx, dword [esp + 0x31c]
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 4]
lea eax, [esp + 0x64]
add edx, esi
push eax
push ecx
mov dword [esp + 0x78], edx
call fcn.00430770
mov edx, dword [0x4f3cfc]
add esp, 0x1c
mov eax, dword [edx*4 + 0x4f1e00]
jmp 0x489636
cmp word [esp + 0x28], 0
jbe case.default.0x488b3b
mov ecx, dword [0x4f2024]
test ecx, ecx
je case.default.0x488b3b
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
add eax, 2
push 1
lea esi, [edx - 1]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], edx
mov edi, dword [ecx]
push 1
add edi, eax
push ecx
mov dword [esp + 0xf4], edi
mov edi, dword [ecx + 4]
add edi, edx
push edx
mov dword [esp + 0xfc], edi
mov edi, dword [esp + 0x318]
lea ecx, [esp + 0xf0]
push eax
push ecx
push edi
call fcn.00430770
mov edx, dword [0x4f2024]
mov eax, dword [0x4f40b0]
add esp, 0x1c
mov bl, byte [edx]
add bl, 4
test eax, eax
mov byte [esp + 0x10], bl
je case.default.0x488b3b
cmp esi, dword [0x4f40ac]
jae case.default.0x488b3b
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x1c]
test ch, 1
je case.default.0x488b3b
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
and ecx, 0xff
push 1
push 1
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x24]
mov edx, dword [0x4f203c]
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], ecx
push edx
mov esi, dword [edx]
push ecx
add esi, eax
push eax
mov dword [esp + 0x19c], esi
mov esi, dword [edx + 4]
lea eax, [esp + 0x194]
add esi, ecx
push eax
push edi
mov dword [esp + 0x1a8], esi
call fcn.00430770
mov ecx, dword [0x4f203c]
add esp, 0x1c
mov dl, byte [ecx]
add dl, 2
add bl, dl
jmp 0x48963b
mov eax, dword [esp + 0x28]
test ax, ax
jbe case.default.0x488b3b
mov ecx, dword [0x4f2024]
test ecx, ecx
je case.default.0x488b3b
cmp ax, 1
jne 0x488f4c
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add eax, 2
mov dword [esp + 0x104], edx
mov dword [esp + 0x100], eax
mov esi, dword [ecx]
add esi, eax
push 1
mov dword [esp + 0x10c], esi
mov esi, dword [ecx + 4]
push 1
add esi, edx
push ecx
push edx
mov dword [esp + 0x11c], esi
push eax
lea ecx, [esp + 0x114]
jmp 0x489472
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
push 1
mov eax, dword [edi*4 + 0x4f1df8]
lea ecx, [edx + 2]
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], esi
mov ebx, dword [eax]
push 1
push eax
push esi
lea edx, [edx + ebx + 2]
push ecx
mov ecx, dword [esp + 0x31c]
mov dword [esp + 0x17c], edx
mov edx, dword [eax + 4]
lea eax, [esp + 0x174]
add edx, esi
push eax
push ecx
mov dword [esp + 0x188], edx
call fcn.00430770
mov edx, dword [edi*4 + 0x4f1df8]
add esp, 0x1c
mov bl, byte [edx]
jmp 0x489638
cmp dword [0x4f3d14], 7
jne case.default.0x488b3b
mov eax, dword [0x4f3d10]
cmp eax, 4
je 0x489088
cmp eax, 5
je 0x489088
mov eax, dword [0x4f2034]
test eax, eax
je 0x489088
mov byte [esp + 0x33], 1
call fcn.004198f0
test al, al
je 0x48901c
mov eax, dword [0x4f40b8]
test eax, eax
je 0x48901c
mov ecx, dword [esp + 0x34]
mov edx, dword [0x4f40b4]
cmp edx, ecx
jbe 0x48901c
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + edx]
test byte [eax], 1
je 0x48901c
xor al, al
jmp 0x489020
mov al, byte [esp + 0x33]
test al, al
je 0x489088
mov ecx, dword [esp + 0x18]
mov edx, dword [0x4f2034]
push 1
push 1
lea eax, [ecx + 2]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
mov esi, dword [edx]
push edx
add esi, eax
push ecx
mov dword [esp + 0x98], esi
mov esi, dword [edx + 4]
push eax
mov eax, dword [esp + 0x31c]
lea edx, [esp + 0x94]
add esi, ecx
push edx
push eax
mov dword [esp + 0xa8], esi
call fcn.00430770
mov ecx, dword [0x4f2034]
add esp, 0x1c
mov bl, byte [ecx]
add bl, 4
mov byte [esp + 0x10], bl
push str.HOSTINETGAME
call fcn.00411ed0
add esp, 4
test al, al
jne 0x4890ae
push str.CLIENTINETGAME
call fcn.00411ed0
add esp, 4
test al, al
je 0x489181
mov edx, dword [esp + 0x14]
mov edi, str.playerList
mov esi, dword [edx + 4]
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x4890e2
test al, al
je 0x4890de
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x4890e2
add esi, 2
add edi, 2
test al, al
jne 0x4890ba
xor eax, eax
jmp 0x4890e7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x489181
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
push 1
lea eax, [eax + eax*4]
mov dword [esp + 0x98], esi
push 1
mov cl, byte [eax*8 + 0x4f28b2]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x4c], cl
and eax, 0xff
mov ecx, dword [esp + 0x4c]
and ecx, 0xff
lea edx, [ebp + eax]
mov dword [esp + 0x98], edx
add ebp, eax
lea edi, [ecx*4 + 0x795640]
mov ecx, dword [ecx*4 + 0x795640]
push ecx
push esi
mov eax, dword [ecx]
push edx
mov edx, dword [esp + 0x31c]
add ebp, eax
mov dword [esp + 0xac], ebp
mov eax, dword [ecx + 4]
lea ecx, [esp + 0xa4]
add eax, esi
push ecx
push edx
mov dword [esp + 0xb8], eax
call fcn.00430770
mov eax, dword [edi]
add esp, 0x1c
mov cl, byte [eax]
add cl, 2
add bl, cl
mov byte [esp + 0x10], bl
mov ecx, dword [0x4f40b8]
test ecx, ecx
je 0x489219
mov edx, dword [0x4f40b4]
mov eax, dword [esp + 0x34]
cmp edx, eax
jbe 0x489219
mov edi, dword [esp + 0x2c]
mov eax, dword [0x4f40e4]
mov ecx, dword [ecx + edi]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x70]
test eax, eax
jne 0x489219
mov ecx, dword [0x4f2028]
test ecx, ecx
je 0x489219
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
and edx, 0xff
push 1
add eax, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov esi, dword [ecx]
push 1
add esi, eax
push ecx
mov dword [esp + 0x74], esi
mov esi, dword [ecx + 4]
add esi, edx
push edx
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x318]
lea ecx, [esp + 0x70]
push eax
push ecx
push esi
call fcn.00430770
mov edx, dword [0x4f2028]
add esp, 0x1c
mov al, byte [edx]
add al, 2
add bl, al
mov byte [esp + 0x10], bl
jmp 0x489224
mov esi, dword [esp + 0x308]
mov edi, dword [esp + 0x2c]
push str.HOSTINETGAME
call fcn.00411ed0
add esp, 4
test al, al
jne case.default.0x488b3b
push str.CLIENTINETGAME
call fcn.00411ed0
add esp, 4
test al, al
jne case.default.0x488b3b
mov eax, dword [0x4f40b8]
test eax, eax
je case.default.0x488b3b
mov ecx, dword [esp + 0x34]
mov edx, dword [0x4f40b4]
cmp edx, ecx
jbe case.default.0x488b3b
mov ecx, dword [0x4f2050]
test ecx, ecx
je 0x4892db
mov edx, dword [eax + edi]
test byte [edx], 1
je 0x4892db
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
and eax, 0xff
push 1
add eax, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov edi, dword [ecx]
push 1
add edi, eax
push ecx
push edx
mov dword [esp + 0x88], edi
mov edi, dword [ecx + 4]
push eax
lea eax, [esp + 0x84]
add edi, edx
push eax
push esi
mov dword [esp + 0x98], edi
call fcn.00430770
mov ecx, dword [0x4f2050]
add esp, 0x1c
mov dl, byte [ecx]
add dl, 2
add bl, dl
jmp 0x48963b
mov ecx, dword [0x4f2054]
test ecx, ecx
je case.default.0x488b3b
mov eax, dword [eax + edi]
test byte [eax], 2
je case.default.0x488b3b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
and edx, 0xff
push 1
add eax, edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edx
mov edi, dword [ecx]
push 1
add edi, eax
push ecx
mov dword [esp + 0xc4], edi
mov edi, dword [ecx + 4]
push edx
lea ecx, [esp + 0xc0]
push eax
add edi, edx
push ecx
push esi
mov dword [esp + 0xd8], edi
call fcn.00430770
mov edx, dword [0x4f2054]
add esp, 0x1c
mov al, byte [edx]
add al, 2
add bl, al
jmp 0x48963b
mov eax, dword [0x797e34]
cmp eax, 2
je 0x489373
cmp eax, 4
je 0x489373
cmp eax, 3
jne case.default.0x488b3b
mov ebp, dword [esp + 0x14]
push str.HOSTHEADTOHEAD
call fcn.00411ed0
add esp, 4
test al, al
jne 0x489529
push str.CLIENTMULTIPLAYER
call fcn.00411ed0
add esp, 4
test al, al
jne 0x489529
push str.HOST_MP2
call fcn.00411ed0
add esp, 4
test al, al
jne 0x489529
push str.JOIN_MP2
call fcn.00411ed0
add esp, 4
test al, al
jne 0x489529
push str.IPXLOBBY
call fcn.00411ed0
add esp, 4
test al, al
je case.default.0x488b3b
mov eax, dword [0x4f2030]
test eax, eax
je case.default.0x488b3b
cmp word [esp + 0x28], 0
jbe 0x48948d
mov esi, dword [ebp + 4]
mov edi, str.gameList
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x489425
test al, al
je 0x489421
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x489425
add esi, 2
add edi, 2
test al, al
jne 0x4893fd
xor eax, eax
jmp 0x48942a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x48948d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [0x4f2024]
add eax, 2
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
mov esi, dword [edx]
push 1
add esi, eax
push 1
mov dword [esp + 0xe0], esi
mov esi, dword [edx + 4]
add esi, ecx
push edx
push ecx
mov dword [esp + 0xec], esi
push eax
lea ecx, [esp + 0xe4]
mov edx, dword [esp + 0x31c]
push ecx
push edx
call fcn.00430770
mov eax, dword [0x4f2024]
add esp, 0x1c
jmp 0x489636
mov esi, dword [ebp + 4]
mov edi, str.playerList
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x4894bd
test al, al
je 0x4894b9
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x4894bd
add esi, 2
add edi, 2
test al, al
jne 0x489495
xor eax, eax
jmp 0x4894c2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.default.0x488b3b
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [0x4f2034]
add eax, 2
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], ecx
mov esi, dword [edx]
push 1
add esi, eax
push 1
mov dword [esp + 0x100], esi
mov esi, dword [edx + 4]
push edx
mov edx, dword [esp + 0x314]
add esi, ecx
push ecx
lea ecx, [esp + 0x100]
push eax
push ecx
push edx
mov dword [esp + 0x118], esi
call fcn.00430770
mov eax, dword [0x4f2034]
add esp, 0x1c
jmp 0x489636
mov esi, dword [ebp + 4]
mov edi, str.playerList
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x489559
test al, al
je 0x489555
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x489559
add esi, 2
add edi, 2
test al, al
jne 0x489531
xor eax, eax
jmp 0x48955e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.default.0x488b3b
mov bl, byte [esp + 0x28]
mov byte [esp + 0x4c], al
mov eax, dword [0x798490]
inc bl
add eax, 0x418
push eax
call fcn.004916b0
mov ecx, dword [0x798490]
add esp, 4
mov edi, eax
call fcn.004a04c0
mov ecx, dword [0x798490]
push 0
call fcn.004a07a0
mov esi, eax
test esi, esi
je 0x4895d1
mov ecx, dword [esi + 8]
push ecx
call fcn.004916b0
add esp, 4
cmp eax, edi
jne 0x4895b5
dec bl
test bl, bl
je 0x4895c1
mov esi, dword [esi]
test esi, esi
jne 0x4895a3
jmp 0x4895d1
mov edx, dword [esi + 8]
push edx
call fcn.004916f0
add esp, 4
mov byte [esp + 0x4c], al
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
and eax, 0xff
lea ecx, [edi + 2]
mov dword [esp + 0x114], edx
lea esi, [eax*4 + 0x795640]
mov dword [esp + 0x110], ecx
push 1
push 1
mov eax, dword [esi]
push eax
push edx
mov ebx, dword [eax]
push ecx
lea ecx, [esp + 0x124]
lea edi, [edi + ebx + 2]
push ecx
mov dword [esp + 0x130], edi
mov edi, dword [eax + 4]
add edi, edx
mov edx, dword [esp + 0x320]
push edx
mov dword [esp + 0x138], edi
call fcn.00430770
mov eax, dword [esi]
add esp, 0x1c
mov bl, byte [eax]
add bl, 4
mov byte [esp + 0x10], bl
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
mov eax, dword [0x7975a0]
push 0xffffffffffffffff
mov ecx, dword [ebp + 0x798]
mov edx, dword [ecx + esi]
mov ecx, dword [eax + edx*4]
mov al, byte [ebp + 0x775]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x24]
and edx, 0xff
push ecx
add edx, eax
mov eax, dword [ebp + 0x790]
push edx
mov edx, dword [esp + 0x31c]
mov ecx, dword [eax + esi]
push ecx
push edx
call fcn.0042dc00
mov eax, dword [ebp + 0x790]
add esp, 0x1c
mov ecx, dword [eax + esi]
push 0
push ecx
call fcn.0042dfb0
add bl, al
mov al, byte [0x4f3d48]
add esp, 8
mov byte [esp + 0x10], bl
test al, al
je 0x48a074
mov edx, ebp
mov edi, str.userWOLlist
mov ebp, dword [edx + 4]
mov esi, ebp
mov al, byte [esi]
mov cl, al
cmp al, byte [edi]
jne 0x4896ec
test cl, cl
je 0x4896e8
mov al, byte [esi + 1]
mov cl, al
cmp al, byte [edi + 1]
jne 0x4896ec
add esi, 2
add edi, 2
test cl, cl
jne 0x4896c8
xor ecx, ecx
jmp 0x4896f1
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x489be5
mov edi, str.playerList
mov esi, ebp
mov al, byte [esi]
mov cl, al
cmp al, byte [edi]
jne 0x489724
test cl, cl
je 0x489720
mov al, byte [esi + 1]
mov cl, al
cmp al, byte [edi + 1]
jne 0x489724
add esi, 2
add edi, 2
test cl, cl
jne 0x489700
xor ecx, ecx
jmp 0x489729
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x489be5
mov esi, str.WOLlist
mov eax, ebp
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x489760
test cl, cl
je 0x48975c
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x489760
add eax, 2
add esi, 2
test cl, cl
jne 0x489738
xor eax, eax
jmp 0x489765
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x48977b.0
mov eax, dword [0x4f3d14]
cmp eax, 7
ja case.0x48977b.0
jmp dword [eax*4 + 0x48aaf0]
cmp word [esp + 0x28], 0
jbe case.0x48977b.0
mov ecx, dword [esp + 0x34]
lea eax, [ecx - 1]
mov ecx, dword [0x4f409c]
cmp ecx, eax
jle case.0x48977b.0
mov edx, dword [0x4f40a0]
mov eax, dword [edx + eax*4]
lea edx, [esp + 0x1f0]
mov ecx, dword [eax + 0xc]
push ecx
push str.___d_
push edx
call fcn.004b0670
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
add esp, 0xc
mov ecx, dword [eax + 0x798]
mov al, byte [eax + 0x775]
push 0xffffffffffffffff
mov ecx, dword [ecx + edx]
mov edx, dword [0x7975a0]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x24]
and edx, 0xff
push ecx
mov ecx, dword [esp + 0x318]
add edx, eax
lea eax, [esp + 0x200]
push edx
push eax
push ecx
call fcn.0042dc00
add esp, 0x1c
lea edx, [esp + 0x1f0]
push 0
push edx
call fcn.0042dfb0
add esp, 8
jmp case.0x48977b.0
cmp word [esp + 0x28], 0
jbe case.0x48977b.0
mov eax, dword [esp + 0x34]
mov ecx, dword [0x4f40a4]
dec eax
cmp ecx, eax
jle case.0x48977b.0
mov ecx, dword [0x4f40a8]
mov edx, dword [ecx + eax*4]
lea ecx, [esp + 0x1cc]
mov eax, dword [edx + 0xc]
push eax
push str.___d_
push ecx
call fcn.004b0670
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov edx, dword [eax + 0x798]
push 0xffffffffffffffff
mov edx, dword [edx + ecx]
mov ecx, dword [0x7975a0]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 4]
mov dl, byte [eax + 0x775]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x24]
and ecx, 0xff
add ecx, edx
push eax
mov eax, dword [esp + 0x318]
lea edx, [esp + 0x1dc]
push ecx
push edx
push eax
call fcn.0042dc00
add esp, 0x1c
lea ecx, [esp + 0x1cc]
push 0
push ecx
call fcn.0042dfb0
add esp, 8
jmp case.0x48977b.0
cmp word [esp + 0x28], 0
jbe case.0x48977b.0
mov edx, dword [esp + 0x34]
mov eax, dword [0x4f40ac]
dec edx
cmp eax, edx
jle case.0x48977b.0
mov esi, dword [0x4f3cf4]
mov eax, dword [esp + 0x20]
mov ecx, eax
add eax, 0xfffffffe
mov ebx, dword [esi]
mov dword [esp + 0x138], eax
mov eax, dword [0x4f40b0]
sub ecx, ebx
mov ebx, dword [esp + 0x1c]
sub ecx, 2
lea edi, [edx*4]
mov dword [esp + 0x130], ecx
lea ebp, [ebx + 1]
push 1
mov dword [esp + 0x138], ebp
mov edx, dword [eax + edi]
mov eax, 0x10624dd3
push 1
mov edx, dword [edx + 0x28]
push esi
imul edx, dword [esi + 4]
imul edx
sar edx, 6
mov esi, dword [esp + 0x314]
mov eax, edx
shr eax, 0x1f
add edx, eax
push ebp
lea eax, [esp + 0x140]
push ecx
lea edx, [edx + ebx + 1]
push eax
push esi
mov dword [esp + 0x158], edx
call fcn.00430770
mov ecx, dword [0x4f40b0]
add esp, 0x1c
mov edx, dword [ecx + edi]
lea ecx, [esp + 0x1e4]
mov eax, dword [edx + 0xc]
push eax
push 0x4e8e80
push ecx
call fcn.004b0670
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov edx, dword [eax + 0x798]
push 0xffffffffffffffff
mov edx, dword [edx + ecx]
mov ecx, dword [0x7975a0]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 4]
mov dl, byte [eax + 0x775]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x18]
push edx
push eax
mov eax, dword [esp + 0x28]
and ecx, 0xff
lea edx, [esp + 0x1f4]
add ecx, eax
push ecx
push edx
push esi
call fcn.0042dc00
add esp, 0x1c
lea eax, [esp + 0x1e4]
push 0
push eax
call fcn.0042dfb0
add esp, 8
jmp case.0x48977b.0
cmp word [esp + 0x28], 0
jbe case.0x48977b.0
mov ecx, dword [esp + 0x34]
mov eax, dword [0x4f40ac]
lea edx, [ecx - 1]
cmp eax, edx
jle case.0x48977b.0
mov esi, dword [0x4f3cf4]
mov eax, dword [esp + 0x20]
mov ecx, eax
lea edi, [edx*4]
mov ebx, dword [esi]
mov edx, dword [0x4f40b0]
sub ecx, ebx
mov ebx, dword [esp + 0x1c]
sub ecx, 2
add eax, 0xfffffffe
lea ebp, [ebx + 1]
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], ebp
mov dword [esp + 0x158], eax
mov eax, dword [edx + edi]
push 1
push 1
push esi
mov edx, dword [eax + 0x28]
mov eax, 0x10624dd3
imul edx, dword [esi + 4]
imul edx
sar edx, 6
mov esi, dword [esp + 0x314]
mov eax, edx
shr eax, 0x1f
add edx, eax
push ebp
lea eax, [esp + 0x160]
push ecx
lea edx, [edx + ebx + 1]
push eax
push esi
mov dword [esp + 0x178], edx
call fcn.00430770
mov ecx, dword [0x4f40b0]
add esp, 0x1c
mov edi, dword [ecx + edi]
lea ecx, [esp + 0x1c0]
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
push edx
push eax
push str.__d__d
push ecx
call fcn.004b0670
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
add esp, 0x10
mov edx, dword [eax + 0x798]
push 0xffffffffffffffff
mov edx, dword [edx + ecx]
mov ecx, dword [0x7975a0]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 4]
mov dl, byte [eax + 0x775]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x18]
push edx
push eax
mov eax, dword [esp + 0x28]
and ecx, 0xff
lea edx, [esp + 0x1d0]
add ecx, eax
push ecx
push edx
push esi
call fcn.0042dc00
add esp, 0x1c
lea eax, [esp + 0x1c0]
push 0
push eax
call fcn.0042dfb0
add esp, 8
jmp case.0x48977b.0
cmp word [esp + 0x28], 0
jbe case.0x48977b.0
mov ecx, dword [esp + 0x34]
lea eax, [ecx - 1]
mov ecx, dword [0x4f4094]
cmp ecx, eax
jle case.0x48977b.0
mov edx, dword [0x4f4098]
mov eax, dword [edx + eax*4]
lea edx, [esp + 0x1fc]
mov ecx, dword [eax + 0xc]
dec ecx
push ecx
push str.___d_
push edx
call fcn.004b0670
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
add esp, 0xc
mov ecx, dword [eax + 0x798]
mov al, byte [eax + 0x775]
push 0xffffffffffffffff
mov ecx, dword [ecx + edx]
mov edx, dword [0x7975a0]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x24]
and edx, 0xff
push ecx
mov ecx, dword [esp + 0x318]
add edx, eax
lea eax, [esp + 0x20c]
push edx
push eax
push ecx
call fcn.0042dc00
add esp, 0x1c
lea edx, [esp + 0x1fc]
push 0
push edx
call fcn.0042dfb0
add esp, 8
jmp case.0x48977b.0
cmp dword [0x4f3d14], 7
jne case.0x48977b.0
mov eax, dword [0x4f3d10]
cmp eax, 4
je 0x489da2
cmp eax, 5
je 0x489da2
mov eax, dword [0x4f40bc]
test eax, eax
je 0x489cb8
mov ecx, dword [esp + 0x2c]
cmp dword [eax + ecx], 1
jl 0x489cb8
mov esi, ecx
mov edx, dword [eax + esi]
push edx
push 1
push str.Rank
call fcn.0048dc10
add esp, 4
push eax
call fcn.0048dcc0
add esp, 8
push eax
lea eax, [esp + 0x270]
push str.___s__ld_
push eax
call fcn.004b0670
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
add esp, 0x10
mov ecx, dword [eax + 0x798]
push 0xffffffffffffffff
mov edx, dword [ecx + esi]
mov ecx, dword [0x7975a0]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 4]
mov dl, byte [eax + 0x775]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x18]
push edx
and ecx, 0xff
push eax
mov eax, dword [esp + 0x318]
add ecx, ebp
lea edx, [esp + 0x278]
push ecx
push edx
push eax
call fcn.0042dc00
add esp, 0x1c
lea ecx, [esp + 0x268]
push 0
push ecx
jmp 0x489f64
mov edx, dword [esp + 0x2c]
mov eax, dword [0x4f40b8]
mov edi, 0x4f1018
mov esi, dword [eax + edx]
add esi, 0x24
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x489cf4
test al, al
je 0x489cf0
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x489cf4
add esi, 2
add edi, 2
test al, al
jne 0x489ccc
xor eax, eax
jmp 0x489cf9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x489f72
mov eax, dword [0x4db9d0]
cmp eax, 1
jl 0x489f72
push eax
push 1
push str.Rank
call fcn.0048dc10
add esp, 4
push eax
call fcn.0048dcc0
add esp, 8
push eax
lea eax, [esp + 0x2a4]
push str.___s__ld_
push eax
call fcn.004b0670
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x28]
add esp, 0x10
mov ecx, dword [eax + 0x798]
mov al, byte [eax + 0x775]
push 0xffffffffffffffff
mov ecx, dword [ecx + edx]
mov edx, dword [0x7975a0]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x18]
and edx, 0xff
push eax
add edx, edi
push ecx
mov ecx, dword [esp + 0x318]
lea eax, [esp + 0x2ac]
push edx
push eax
push ecx
call fcn.0042dc00
add esp, 0x1c
lea edx, [esp + 0x29c]
push 0
push edx
jmp 0x489f64
mov edi, str.__ERROR_
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + 0x208]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0x794]
mov edx, dword [esp + 0x2c]
mov eax, dword [ecx + edx]
sub eax, 0
je 0x489e33
dec eax
je 0x489e0b
dec eax
jne 0x489e61
push 1
push str.Ordos
call fcn.0048dc10
add esp, 4
push eax
call fcn.0048dcc0
add esp, 8
push eax
lea eax, [esp + 0x20c]
push str.___s_
push eax
jmp 0x489e59
push 1
push str.Harkonnen
call fcn.0048dc10
add esp, 4
push eax
call fcn.0048dcc0
add esp, 8
lea ecx, [esp + 0x208]
push eax
push str.___s_
push ecx
jmp 0x489e59
push 1
push str.Atreides
call fcn.0048dc10
add esp, 4
push eax
call fcn.0048dcc0
add esp, 8
lea edx, [esp + 0x208]
push eax
push str.___s_
push edx
call fcn.004b0670
add esp, 0xc
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
mov edx, dword [0x7975a0]
push 0xffffffffffffffff
mov eax, dword [esi + 0x798]
mov ebp, dword [esp + 0x30c]
mov ecx, dword [eax + edi]
mov eax, dword [edx + ecx*4]
mov dl, byte [esi + 0x775]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x24]
and ecx, 0xff
push eax
add ecx, edx
lea edx, [esp + 0x218]
push ecx
push edx
push ebp
call fcn.0042dc00
add esp, 0x1c
lea eax, [esp + 0x208]
push 0
push eax
call fcn.0042dfb0
add bl, al
mov eax, dword [esp + 0x3c]
add esp, 8
mov byte [esp + 0x10], bl
lea ecx, [eax + eax*4]
mov eax, dword [ecx*8 + 0x4f28ac]
cmp eax, 1
jl 0x489f72
push eax
push 1
push str.Rank
call fcn.0048dc10
add esp, 4
push eax
call fcn.0048dcc0
add esp, 8
lea edx, [esp + 0x2d4]
push eax
push str.___s__ld_
push edx
call fcn.004b0670
mov eax, dword [esi + 0x798]
mov edx, dword [0x7975a0]
add esp, 0x10
mov ecx, dword [eax + edi]
push 0xffffffffffffffff
mov eax, dword [edx + ecx*4]
mov dl, byte [esi + 0x775]
mov esi, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xff
push edx
add ecx, esi
push eax
lea edx, [esp + 0x2e0]
push ecx
push edx
push ebp
call fcn.0042dc00
add esp, 0x1c
lea eax, [esp + 0x2d0]
push 0
push eax
call fcn.0042dfb0
add esp, 8
add bl, al
mov byte [esp + 0x10], bl
mov eax, dword [0x4f3d10]
cmp eax, 4
je 0x489f85
cmp eax, 5
jne case.0x48977b.0
mov eax, dword [0x4f40b4]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jbe case.0x48977b.0
mov edx, dword [esp + 0x2c]
mov esi, dword [0x4f40b8]
mov edx, dword [esi + edx]
test byte [edx], 1
je 0x48a002
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov edx, dword [0x4f204c]
and eax, 0xff
add eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], ecx
mov esi, dword [edx]
push 1
add esi, eax
push 1
mov dword [esp + 0x180], esi
mov esi, dword [edx + 4]
push edx
push ecx
push eax
mov eax, dword [esp + 0x31c]
lea edx, [esp + 0x184]
add esi, ecx
push edx
mov dword [esp + 0x194], esi
push eax
jmp 0x48a5e0
cmp eax, ecx
jbe case.0x48977b.0
mov al, byte [ecx + 0x4f3c78]
test al, al
je case.0x48977b.0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
and ecx, 0xff
push 1
push 1
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x24]
mov edx, dword [0x4f2048]
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], ecx
push edx
mov esi, dword [edx]
push ecx
add esi, eax
push eax
mov dword [esp + 0x1ac], esi
mov esi, dword [edx + 4]
add esi, ecx
mov ecx, dword [esp + 0x31c]
lea eax, [esp + 0x1a4]
mov dword [esp + 0x1b0], esi
push eax
push ecx
jmp 0x48a5e0
mov eax, dword [0x797e34]
cmp eax, 2
je 0x48a08c
cmp eax, 4
je 0x48a08c
cmp eax, 3
jne case.0x48977b.0
push str.HOSTHEADTOHEAD
call fcn.00411ed0
add esp, 4
test al, al
jne 0x48a3e5
push str.CLIENTMULTIPLAYER
call fcn.00411ed0
add esp, 4
test al, al
jne 0x48a3e5
push str.HOST_MP2
call fcn.00411ed0
add esp, 4
test al, al
jne 0x48a3e5
push str.JOIN_MP2
call fcn.00411ed0
add esp, 4
test al, al
jne 0x48a3e5
push str.IPXLOBBY
call fcn.00411ed0
add esp, 4
test al, al
je case.0x48977b.0
mov edi, dword [ebp + 4]
mov esi, str.gameList
mov eax, edi
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x48a127
test cl, cl
je 0x48a123
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x48a127
add eax, 2
add esi, 2
test cl, cl
jne 0x48a0ff
xor eax, eax
jmp 0x48a12c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x48a294
mov eax, dword [0x797e34]
mov byte [esp + 0x3c], 8
cmp eax, 2
jne 0x48a14a
mov byte [esp + 0x3c], 6
jmp 0x48a165
cmp eax, 4
je 0x48a160
cmp eax, 3
je 0x48a160
cmp eax, 5
jne 0x48a165
mov byte [esp + 0x3c], 4
jmp 0x48a165
mov byte [esp + 0x3c], 2
mov edi, dword [esp + 0x28]
test di, di
je case.0x48977b.0
mov ecx, dword [0x798490]
xor ebx, ebx
call fcn.004a04c0
mov ecx, dword [0x798490]
push ebx
call fcn.004a07a0
mov esi, eax
test esi, esi
je 0x48a1c2
mov eax, dword [esi + 8]
push eax
call fcn.00491660
add esp, 4
test al, al
je 0x48a1a7
add edi, 0xffff
test di, di
je 0x48a1b4
mov esi, dword [esi]
test esi, esi
jne 0x48a191
jmp 0x48a1c2
mov ecx, dword [esi + 8]
push ecx
call fcn.004916b0
add esp, 4
mov ebx, eax
test ebx, ebx
mov byte [esp + 0x40], 0
je 0x48a203
mov ecx, dword [0x798490]
call fcn.004a04c0
mov ecx, dword [0x798490]
push 0
call fcn.004a07a0
mov esi, eax
test esi, esi
je 0x48a203
mov edx, dword [esi + 8]
push edx
call fcn.004916b0
add esp, 4
cmp eax, ebx
jne 0x48a1fd
inc byte [esp + 0x40]
mov esi, dword [esi]
test esi, esi
jne 0x48a1e9
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
and eax, 0xff
and ecx, 0xff
push eax
push ecx
lea edx, [esp + 0x1e0]
push str.__d__d
push edx
call fcn.004b0670
mov eax, dword [ebp + 0x798]
mov ecx, dword [esp + 0x3c]
add esp, 0x10
mov edx, dword [eax + ecx]
mov eax, dword [0x7975a0]
push 0xffffffffffffffff
mov ecx, dword [eax + edx*4]
mov al, byte [ebp + 0x775]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x24]
and edx, 0xff
push ecx
mov ecx, dword [esp + 0x318]
add edx, eax
lea eax, [esp + 0x1e8]
push edx
push eax
push ecx
call fcn.0042dc00
add esp, 0x1c
lea edx, [esp + 0x1d8]
push 0
push edx
call fcn.0042dfb0
add esp, 8
jmp case.0x48977b.0
mov esi, str.playerList
mov eax, edi
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x48a2c3
test cl, cl
je 0x48a2bf
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x48a2c3
add eax, 2
add esi, 2
test cl, cl
jne 0x48a29b
xor eax, eax
jmp 0x48a2c8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x48977b.0
mov ecx, dword [0x79759c]
push eax
push str.gameList
call fcn.004795f0
test eax, eax
je case.0x48977b.0
mov cx, word [eax + 0x7e8]
cmp cx, 1
jbe case.0x48977b.0
mov eax, dword [eax + 0x794]
dec ecx
and ecx, 0xffff
mov edi, dword [eax + ecx*4]
test edi, edi
je case.0x48977b.0
mov bl, byte [esp + 0x28]
mov ecx, dword [0x798490]
mov byte [esp + 0x228], 0
inc bl
call fcn.004a04c0
mov ecx, dword [0x798490]
push 0
call fcn.004a07a0
mov esi, eax
test esi, esi
je 0x48a37e
mov ecx, dword [esi + 8]
push ecx
call fcn.004916b0
add esp, 4
cmp eax, edi
jne 0x48a350
dec bl
test bl, bl
je 0x48a35c
mov esi, dword [esi]
test esi, esi
jne 0x48a33e
jmp 0x48a37e
mov edx, dword [esi + 8]
push edx
call fcn.004914a0
add esp, 4
push eax
lea eax, [esp + 0x22c]
push str.___s_
push eax
call fcn.004b0670
add esp, 0xc
mov ecx, dword [ebp + 0x798]
mov edx, dword [esp + 0x2c]
push 0xffffffffffffffff
mov eax, dword [ecx + edx]
mov ecx, dword [0x7975a0]
mov edx, dword [ecx + eax*4]
mov cl, byte [ebp + 0x775]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x24]
and eax, 0xff
push edx
mov edx, dword [esp + 0x318]
add eax, ecx
lea ecx, [esp + 0x238]
push eax
push ecx
push edx
call fcn.0042dc00
add esp, 0x1c
lea eax, [esp + 0x228]
push 0
push eax
call fcn.0042dfb0
add esp, 8
jmp case.0x48977b.0
mov esi, dword [ebp + 4]
mov edi, str.playerList
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x48a415
test al, al
je 0x48a411
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x48a415
add esi, 2
add edi, 2
test al, al
jne 0x48a3ed
xor eax, eax
jmp 0x48a41a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x48977b.0
mov byte [esp + 0x248], al
mov al, byte [esp + 0x28]
inc al
mov byte [esp + 0x3a], al
mov eax, dword [0x798490]
add eax, 0x418
push eax
call fcn.004916b0
mov ecx, dword [0x798490]
add esp, 4
mov edi, eax
call fcn.004a04c0
mov ecx, dword [0x798490]
push 0
call fcn.004a07a0
mov esi, eax
mov byte [esp + 0x33], 0
test esi, esi
je 0x48a4c1
mov ecx, dword [esi + 8]
push ecx
call fcn.004916b0
add esp, 4
cmp eax, edi
jne 0x48a47f
dec byte [esp + 0x3a]
mov al, byte [esp + 0x3a]
test al, al
je 0x48a48f
mov esi, dword [esi]
test esi, esi
jne 0x48a46b
jmp 0x48a4c1
mov edx, dword [esi + 8]
push edx
call fcn.004914a0
add esp, 4
push eax
lea eax, [esp + 0x24c]
push str.___s_
push eax
call fcn.004b0670
mov ecx, dword [esi + 8]
add esp, 0xc
push ecx
call fcn.00491660
add esp, 4
mov byte [esp + 0x33], al
mov edx, dword [ebp + 0x798]
mov eax, dword [esp + 0x2c]
push 0xffffffffffffffff
mov esi, dword [esp + 0x30c]
mov ecx, dword [edx + eax]
mov edx, dword [0x7975a0]
mov eax, dword [edx + ecx*4]
mov dl, byte [ebp + 0x775]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x18]
and ecx, 0xff
push edx
add ecx, ebp
push eax
lea edx, [esp + 0x258]
push ecx
push edx
push esi
call fcn.0042dc00
add esp, 0x1c
lea eax, [esp + 0x248]
push 0
push eax
call fcn.0042dfb0
add bl, al
mov al, byte [esp + 0x3b]
add esp, 8
mov byte [esp + 0x10], bl
test al, al
je 0x48a583
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
and ecx, 0xff
push 1
push 1
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x24]
mov edx, dword [0x4f204c]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], ecx
push edx
mov edi, dword [edx]
push ecx
add edi, eax
push eax
mov dword [esp + 0x1cc], edi
mov edi, dword [edx + 4]
add edi, ecx
lea eax, [esp + 0x1c4]
mov dword [esp + 0x1d0], edi
push eax
jmp 0x48a5df
mov ecx, dword [esp + 0x34]
mov al, byte [ecx + 0x4f3c78]
test al, al
je case.0x48977b.0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
and edx, 0xff
add eax, edx
mov edx, dword [0x4f2048]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], ecx
mov edi, dword [edx]
push 1
add edi, eax
push 1
mov dword [esp + 0x130], edi
mov edi, dword [edx + 4]
push edx
add edi, ecx
push ecx
lea ecx, [esp + 0x130]
push eax
mov dword [esp + 0x140], edi
push ecx
push esi
call fcn.00430770
add esp, 0x1c
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
xor eax, eax
mov al, byte [ebp + 0x779]
add edi, eax
add esi, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], edi
inc eax
mov dword [esp + 0x24], esi
cmp ax, word [ebp + 0x788]
mov dword [esp + 0x48], eax
je 0x48a630
mov eax, dword [esp + 0x28]
inc eax
cmp ax, word [ebp + 0x78a]
mov dword [esp + 0x28], eax
jb 0x488960
push str.HOSTHEADTOHEAD
call fcn.00411e70
add esp, 4
test al, al
je 0x48a7c3
mov eax, dword [ebp + 4]
mov esi, str.playerList
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x48a675
test cl, cl
je 0x48a671
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x48a675
add eax, 2
add esi, 2
test cl, cl
jne 0x48a64d
xor eax, eax
jmp 0x48a67a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x48a7c3
mov ax, word [ebp + 0x78a]
mov ebx, 6
xor ecx, ecx
sub ebx, eax
mov cl, byte [0x4e3b0c]
mov dword [esp + 0x44], ebx
cmp ecx, ebx
jbe 0x48a6a6
mov byte [0x4e3b0c], bl
mov ecx, dword [0x79759c]
push str.HOSTHEADTOHEAD
call fcn.00470f10
mov ecx, dword [0x79759c]
push eax
push str.aiBar
call fcn.00479870
mov ecx, eax
test ecx, ecx
je 0x48a904
mov eax, dword [ecx + 0x7b0]
mov dword [ecx + 0x7b8], ebx
cmp eax, ebx
jbe 0x48a77f
mov eax, dword [ecx + 0x7a4]
mov esi, ebx
cmp ebx, eax
jae 0x48a6f3
mov esi, eax
mov edi, dword [ecx + 0x7a8]
cmp esi, edi
jbe 0x48a6ff
mov esi, edi
mov eax, dword [ecx + 0x7b4]
cmp esi, eax
jae 0x48a70b
mov esi, eax
cmp esi, ebx
jbe 0x48a711
mov esi, ebx
cmp dword [ecx + 0x7b0], esi
je 0x48a77f
mov ebx, dword [ecx + 0x10]
mov eax, 0x66666667
imul ebx
sar edx, 1
mov eax, edx
mov dword [ecx + 0x7b0], esi
shr eax, 0x1f
add edx, eax
mov eax, ebx
mov ebp, edx
mov edx, dword [ecx + 0x7a4]
sub eax, ebp
sub esi, edx
imul eax, esi
sub edi, edx
xor edx, edx
div edi
mov edx, dword [ecx + 8]
mov ebx, dword [esp + 0x44]
mov dword [ecx + 0x18], 1
add eax, edx
mov edx, dword [ecx + 0x14]
mov dword [ecx + 0x7bc], eax
add eax, ebp
mov ebp, dword [esp + 0x14]
mov dword [ecx + 0x7c4], eax
mov eax, dword [ecx + 0xc]
add edx, eax
mov dword [ecx + 0x7c0], eax
mov dword [ecx + 0x7c8], edx
xor eax, eax
mov al, byte [0x4e3b0c]
mov esi, eax
mov eax, dword [ecx + 0x7a4]
cmp esi, eax
jae 0x48a794
mov esi, eax
mov edi, dword [ecx + 0x7a8]
cmp esi, edi
jbe 0x48a7a0
mov esi, edi
mov eax, dword [ecx + 0x7b4]
cmp esi, eax
jae 0x48a7ac
mov esi, eax
cmp esi, ebx
jbe 0x48a7b2
mov esi, ebx
cmp dword [ecx + 0x7b0], esi
je 0x48a904
jmp 0x48a8a2
push str.CLIENTMULTIPLAYER
call fcn.00411e70
add esp, 4
test al, al
je 0x48a904
mov eax, dword [ebp + 4]
mov esi, str.playerList
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x48a808
test cl, cl
je 0x48a804
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x48a808
add eax, 2
add esi, 2
test cl, cl
jne 0x48a7e0
xor eax, eax
jmp 0x48a80d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x48a904
mov ax, word [ebp + 0x78a]
xor edx, edx
mov dl, byte [0x4e3b0c]
mov ecx, eax
mov eax, 6
sub eax, ecx
cmp edx, eax
jbe 0x48a836
mov byte [0x4e3b0c], al
mov ecx, dword [0x79759c]
push str.CLIENTMULTIPLAYER
call fcn.00470f10
mov ecx, dword [0x79759c]
push eax
push str.aiBar
call fcn.00479870
mov ecx, eax
test ecx, ecx
je 0x48a904
xor eax, eax
mov al, byte [0x4e3b0c]
mov esi, eax
mov eax, dword [ecx + 0x7a4]
cmp esi, eax
jae 0x48a876
mov esi, eax
mov edi, dword [ecx + 0x7a8]
cmp esi, edi
jbe 0x48a882
mov esi, edi
mov eax, dword [ecx + 0x7b4]
cmp esi, eax
jae 0x48a88e
mov esi, eax
mov eax, dword [ecx + 0x7b8]
cmp esi, eax
jbe 0x48a89a
mov esi, eax
cmp dword [ecx + 0x7b0], esi
je 0x48a904
mov dword [ecx + 0x7b0], esi
mov ebx, dword [ecx + 0x10]
mov eax, 0x66666667
imul ebx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ebx
mov ebp, edx
mov edx, dword [ecx + 0x7a4]
sub eax, ebp
sub esi, edx
imul eax, esi
sub edi, edx
xor edx, edx
div edi
mov edx, dword [ecx + 8]
add eax, edx
mov dword [ecx + 0x7bc], eax
add eax, ebp
mov dword [ecx + 0x7c4], eax
mov eax, dword [ecx + 0xc]
mov ebp, dword [esp + 0x14]
mov dword [ecx + 0x7c0], eax
mov edx, dword [ecx + 0x14]
add edx, eax
mov dword [ecx + 0x7c8], edx
mov dword [ecx + 0x18], 1
mov al, byte [esp + 0x3b]
mov byte [0x4f3d44], 0
test al, al
je 0x48aa69
mov eax, dword [ebp + 0x7a0]
test eax, eax
je 0x48a9b4
mov eax, dword [ebp + 0x800]
mov ecx, dword [0x7975a0]
mov edi, dword [esp + 0x308]
mov edx, dword [ecx + eax*4]
lea ecx, [ebp + 0x7d4]
mov eax, dword [edx + 4]
push eax
push ecx
push edi
call fcn.0042d140
mov ecx, dword [ebp + 0x804]
add esp, 0xc
test ecx, ecx
je 0x48a97d
mov edx, dword [ebp + 0x7c8]
lea eax, [ebp + 0x7c4]
push 1
push 1
push ecx
mov ecx, dword [eax]
push edx
push ecx
push eax
push edi
call fcn.00430770
add esp, 0x1c
jmp 0x48aa46
mov edx, dword [ebp + 0x784]
mov ecx, dword [0x7975a0]
push 0
mov eax, dword [ecx + edx*4]
mov edx, dword [eax + 4]
push edx
push 0x4f0f18
push edx
mov eax, edx
mov edx, dword [ebp + 0x780]
push eax
mov eax, dword [ecx + edx*4]
lea edx, [ebp + 0x7c4]
mov ecx, dword [eax + 4]
push ecx
push edx
jmp 0x48aa3d
mov al, byte [ebp + 0x814]
test al, al
jne 0x48aa69
mov eax, dword [ebp + 0x800]
mov ecx, dword [0x7975a0]
mov edi, dword [esp + 0x308]
lea esi, [ebp + 0x7d4]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx + 4]
push eax
push esi
push edi
call fcn.0042d140
mov eax, dword [ebp + 0x804]
add esp, 0xc
test eax, eax
je 0x48aa11
mov ecx, dword [ebp + 0x7d8]
mov edx, dword [esi]
push 1
push 1
push eax
push ecx
push edx
push esi
push edi
call fcn.00430770
add esp, 0x1c
jmp 0x48aa46
mov eax, dword [ebp + 0x784]
mov ecx, dword [0x7975a0]
push 0
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 4]
push edx
push 0x4f0f18
push edx
mov eax, edx
mov edx, dword [ebp + 0x780]
push eax
mov eax, dword [ecx + edx*4]
mov ecx, dword [eax + 4]
push ecx
push esi
push edi
call fcn.0042d5d0
add esp, 0x20
mov esi, dword [esp + 0x30c]
mov ecx, dword [ebp + 0x7f0]
push esi
push edi
call fcn.00485610
mov ecx, dword [ebp + 0x7ec]
push esi
push edi
call fcn.00485610
jmp 0x48aa70
mov edi, dword [esp + 0x308]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
add eax, edx
mov edx, dword [ebp + 0x800]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x1c], eax
add eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [0x7975a0]
mov ecx, dword [eax + edx*4]
lea eax, [esp + 0x18]
mov edx, dword [ecx + 4]
push edx
push eax
push edi
call fcn.0042d140
add esp, 0xc
mov cl, byte [ebp + 0x777]
xor eax, eax
test cl, cl
setne al
pop edi
mov dword [ebp + 0x18], eax
pop esi
pop ebp
pop ebx
add esp, 0x2f4
ret 8