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

Disassembly:
sub esp, 0xd0
mov eax, dword [esp + 0xd4]
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov dword [esp + 0x18], closesocket
mov dword [esp + 0x20], eax
call fcn.004181c0
push 0x1000000
call fcn.0040934d
mov edx, dword [0x17d6144]
add esp, 4
push 0x9c4
lea ecx, [esp + 0xd0]
push ecx
mov ebp, eax
or edi, 0xffffffff
push edx
mov dword [esp + 0x28], ebp
mov dword [0x17b6478], edi
call fcn.00434040
add esp, 0xc
test eax, eax
jle 0x42fb97
call fcn.004184d0
cmp byte [0x47b101], 0
jne 0x42fbae
cmp dword [esp + 0xcc], 3
jne 0x42fe84
mov esi, dword [esp + 0xdc]
test esi, esi
je 0x42f962
cmp dword [esi + 8], 0
je 0x42f962
cmp dword [esi + 0xc], 2
jb 0x42f962
mov eax, dword [esi + 8]
mov al, byte [eax]
jmp 0x42f964
or al, 0xff
movzx eax, al
add eax, 0xfffffff8
cmp eax, 9
ja case.0x42f973.9
jmp dword [eax*4 + 0x42ff50]
test esi, esi
je 0x42f99c
mov ecx, dword [esi + 0xc]
cmp ecx, 8
ja 0x42f99c
mov eax, dword [esi + 8]
test eax, eax
je 0x42f99c
push ecx
push eax
lea ecx, [esp + 0x30]
push ecx
call fcn.00411a90
add esp, 0xc
cmp dword [esp + 0xe4], 0
jne 0x42fbb8
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xe4], edx
jmp case.0x42f973.9
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
dec eax
push eax
inc ecx
push ecx
lea edx, [ebx + ebp]
push edx
call fcn.00411a90
mov eax, dword [esi + 0xc]
add esp, 0xc
lea ebx, [ebx + eax - 1]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub eax, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xfa
jl case.0x42f973.9
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.00419120
add esp, 8
test eax, eax
je case.0x42f973.9
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x28]
call fcn.00423ef0
mov ebp, dword [0x47aee4]
mov eax, ebp
imul eax, ebx
xor edx, edx
div dword [esp + 0xe8]
mov edi, dword [0x47b70c]
add esp, 4
push 0xffff
sar edi, 1
push edi
push eax
push 0
mov eax, edi
call fcn.0041e0c0
add edi, 0xfffffff6
mov ecx, ebp
push str.Downloading_Map__Esc_to_Quit_
sar ecx, 1
push edi
sub ecx, 0x48
or edi, 0xffffffff
call fcn.0041f420
add esp, 0x18
cmp dword [0x47972c], 0
je 0x42fa97
mov eax, dword [0x479718]
mov edx, dword [0x4716ec]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x80]
mov dword [0x47972c], 0
call eax
call fcn.004186a0
mov ebp, dword [esp + 0x1c]
or edi, 0xffffffff
jmp case.0x42f973.9
test esi, esi
je 0x42facd
mov ecx, dword [esi + 0xc]
cmp ecx, 0x24
ja 0x42facd
mov eax, dword [esi + 8]
test eax, eax
je 0x42facd
push ecx
push eax
lea ecx, [esp + 0xb0]
push ecx
call fcn.00411a90
add esp, 0xc
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb4]
movzx edi, byte [esp + 0xa9]
lea edx, [esp + 0xbc]
push edx
mov edx, dword [esp + 0xb0]
push eax
movzx eax, byte [esp + 0xb9]
push ecx
movzx ecx, byte [esp + 0xbc]
push edx
call fcn.004393d0
add esp, 0x10
or edi, 0xffffffff
jmp case.0x42f973.9
test esi, esi
je 0x42fb34
mov ecx, dword [esi + 0xc]
cmp ecx, 2
ja 0x42fb34
mov eax, dword [esi + 8]
test eax, eax
je 0x42fb34
push ecx
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00411a90
add esp, 0xc
movzx ecx, byte [esp + 0x15]
imul ecx, ecx, 0x398
mov dword [ecx + 0x471e7c], 0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x42fb56
push esi
call eax
add esp, 4
test byte [esi + 4], 4
jne 0x42fb69
mov edx, dword [esi + 8]
push edx
call dword [0x4465e0]
add esp, 4
push esi
call dword [0x4465e0]
mov ecx, dword [0x17d6144]
add esp, 4
push 0x9c4
lea eax, [esp + 0xd0]
push eax
push ecx
call fcn.00434040
add esp, 0xc
test eax, eax
jg 0x42f924
cmp dword [0x17b6478], 0
jge 0x42fe8e
mov eax, str.Server_Timeout:_version_mismatch_or_map_transfer_fail
call fcn.00419c40
mov eax, str.Quit_map_transfer
call fcn.00419c40
call fcn.00427050
mov edx, dword [esp + 0x2c]
push edx
call fcn.0042f8c0
mov eax, dword [esi + 0x10]
add esp, 4
test eax, eax
je 0x42fbd7
push esi
call eax
add esp, 4
test byte [esi + 4], 4
jne 0x42fbea
mov eax, dword [esi + 8]
push eax
call dword [0x4465e0]
add esp, 4
push esi
call dword [0x4465e0]
add esp, 4
push ebp
call fcn.004092d3
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret
test esi, esi
je 0x42fc2d
mov ecx, dword [esi + 0xc]
cmp ecx, 0x28
ja 0x42fc2d
mov eax, dword [esi + 8]
test eax, eax
je 0x42fc2d
push ecx
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.00411a90
add esp, 0xc
movzx edi, byte [esp + 0x81]
mov ebp, edi
imul ebp, ebp, 0x398
cmp dword [ebp + 0x471e7c], 0
jne 0x42fc74
mov eax, dword [esp + 0x84]
movzx ecx, byte [esp + 0x94]
lea edx, [esp + 0x95]
push edx
push 0x7f7f7f
push 0
push eax
mov eax, 2
call fcn.004393d0
add esp, 0x10
jmp 0x42fc98
mov ecx, dword [esp + 0x84]
cmp ecx, dword [ebp + 0x471e74]
je 0x42fc8a
mov eax, edi
call fcn.00438e10
movzx ecx, byte [esp + 0x94]
mov dword [ebp + 0x471e48], ecx
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
push edx
push eax
movzx eax, byte [esp + 0x89]
call fcn.004391d0
mov ebp, dword [esp + 0x24]
add esp, 8
or edi, 0xffffffff
test esi, esi
je 0x42fce1
mov ecx, dword [esi + 0xc]
cmp ecx, 0x4c
ja 0x42fce1
mov eax, dword [esi + 8]
test eax, eax
je 0x42fce1
push ecx
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.00411a90
add esp, 0xc
movzx edx, byte [esp + 0x31]
mov eax, dword [esp + 0x38]
mov dword [0x17b6478], edx
mov dword [0x16a68cc], eax
test eax, eax
jne 0x42fdf8
fild dword [esp + 0x4c]
mov eax, dword [esp + 0x3c]
fld qword [0x441940]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
fadd st(1), st(0)
mov dword [0x17d6238], eax
fxch st(1)
mov al, byte [esp + 0x48]
mov dword [0x17d623c], ecx
fstp dword [0x17be3c0]
mov dword [0x17d6228], edx
fild dword [esp + 0x50]
mov ecx, 0xfffffffc
fadd st(1)
fstp dword [0x17be3c4]
fild dword [esp + 0x54]
fstp dword [0x17be3c8]
fild dword [esp + 0x58]
fadd st(1)
fstp dword [0x17be414]
fild dword [esp + 0x5c]
fadd st(1)
fstp dword [0x17be418]
fild dword [esp + 0x60]
fstp dword [0x17be41c]
fild dword [esp + 0x64]
fadd st(1)
fstp dword [0x17be468]
fild dword [esp + 0x68]
fadd st(1)
fstp dword [0x17be46c]
fild dword [esp + 0x6c]
fstp dword [0x17be470]
fild dword [esp + 0x70]
fadd st(1)
fstp dword [0x17be4bc]
fiadd dword [esp + 0x74]
fstp dword [0x17be4c0]
fild dword [esp + 0x78]
fstp dword [0x17be4c4]
test al, 1
je 0x42fdc8
movzx edx, byte [esp + 0x4c]
mov dword [0x17be40c], ecx
mov dword [0x17d6230], edx
jmp 0x42fdd4
mov dword [0x17be40c], edi
mov dword [0x17d6230], edi
test al, 2
je 0x42fdea
movzx eax, byte [esp + 0x58]
mov dword [0x17be460], ecx
mov dword [0x17d6234], eax
jmp 0x42fe33
mov dword [0x17be460], edi
mov dword [0x17d6234], edi
jmp 0x42fe33
mov dword [0x17be40c], edi
mov dword [0x17be460], edi
mov dword [0x17be4b4], edi
mov dword [0x17be508], edi
mov ecx, dword [esi + 8]
movzx edx, byte [ecx + 5]
and edx, 3
mov dword [0x17d6230], edx
mov eax, dword [esi + 8]
movzx ecx, byte [eax + 5]
shr ecx, 2
and ecx, 3
mov dword [0x17d6234], ecx
call fcn.004271e0
mov al, byte [esp + 0x33]
mov dl, byte [esp + 0x34]
mov cl, byte [esp + 0x32]
mov byte [0x16a5588], dl
mov byte [0x16a558a], al
mov byte [0x16a558c], cl
mov eax, dword [esi + 0x10]
test eax, eax
je 0x42fe62
push esi
call eax
add esp, 4
test byte [esi + 4], 4
jne 0x42fe75
mov edx, dword [esi + 8]
push edx
call dword [0x4465e0]
add esp, 4
push esi
call dword [0x4465e0]
add esp, 4
jmp 0x42fb97
mov eax, str.Server_Disconnect:_timeout__quit__or_version_mismatch
call fcn.00419c40
push ebx
push ebp
lea eax, [esp + 0x18]
push eax
push 0x68c124
mov dword [esp + 0x20], 0x400000
call dword [sym.imp.zlib1.dll_uncompress]
add esp, 0x10
test eax, eax
je 0x42feb9
mov eax, str.Could_not_uncompress_map
call fcn.00419c40
call fcn.0041d760
mov edx, dword [0x17b6478]
mov ecx, dword [0x17be2b8]
imul edx, edx, 0x398
push 0xf
push ecx
add edx, 0x471ee8
push edx
call section..text
mov eax, dword [0x17b6478]
fld dword [0x67fac8]
imul eax, eax, 0x398
fld qword [0x441930]
fadd st(1)
fstp dword [0x17c0f50]
fadd qword [0x441ac0]
add esp, 0xc
push str.wav_intro.wav
fstp dword [0x17c0f44]
xor edi, edi
mov byte [eax + 0x471ef7], 0
call fcn.00418a50
add esp, 4
call fcn.00427130
call fcn.004272c0
cmp dword [esp + 0x20], edi
je 0x42ff3b
fld1
fstp dword [0x17d6184]
push ebp
call fcn.004092d3
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret