4019bb:	74 14                	je     0x4019d1
4019bd:	0f b7 04 0e          	movzwl (%esi,%ecx,1),%eax
4019c1:	66 85 c0             	test   %ax,%ax
4019c4:	74 0b                	je     0x4019d1
4019c6:	66 89 01             	mov    %ax,(%ecx)
4019c9:	83 c1 02             	add    $0x2,%ecx
4019cc:	83 ea 01             	sub    $0x1,%edx
4019cf:	75 e2                	jne    0x4019b3
4019d1:	85 d2                	test   %edx,%edx
4019d3:	75 03                	jne    0x4019d8
4019d5:	83 e9 02             	sub    $0x2,%ecx
4019d8:	33 c0                	xor    %eax,%eax
4019da:	66 89 01             	mov    %ax,(%ecx)
4019dd:	8b c2                	mov    %edx,%eax
4019df:	f7 d8                	neg    %eax
4019e1:	1b c0                	sbb    %eax,%eax
4019e3:	25 86 ff f8 7f       	and    $0x7ff8ff86,%eax
4019e8:	05 7a 00 07 80       	add    $0x8007007a,%eax
4019ed:	85 d2                	test   %edx,%edx
4019ef:	0f 84 17 01 00 00    	je     0x401b0c
4019f5:	51                   	push   %ecx
4019f6:	8d 8c 24 7c 02 00 00 	lea    0x27c(%esp),%ecx
4019fd:	e8 c7 fe ff ff       	call   0x4018c9
401a02:	8b f0                	mov    %eax,%esi
401a04:	89 74 24 24          	mov    %esi,0x24(%esp)
401a08:	85 f6                	test   %esi,%esi
401a0a:	0f 88 fa 00 00 00    	js     0x401b0a
401a10:	8d 44 24 28          	lea    0x28(%esp),%eax
401a14:	50                   	push   %eax
401a15:	8d 84 24 7c 02 00 00 	lea    0x27c(%esp),%eax
401a1c:	50                   	push   %eax
401a1d:	ff 15 28 40 40 00    	call   *0x404028
401a23:	8b f8                	mov    %eax,%edi
401a25:	83 ff ff             	cmp    $0xffffffff,%edi
401a28:	75 29                	jne    0x401a53
401a2a:	ff 15 20 40 40 00    	call   *0x404020
401a30:	8b f0                	mov    %eax,%esi
401a32:	85 f6                	test   %esi,%esi
401a34:	7e 09                	jle    0x401a3f
401a36:	0f b7 f6             	movzwl %si,%esi
401a39:	81 ce 00 00 07 80    	or     $0x80070000,%esi
401a3f:	81 fe 02 00 07 80    	cmp    $0x80070002,%esi
401a45:	0f 85 bf 00 00 00    	jne    0x401b0a
401a4b:	33 f6                	xor    %esi,%esi
401a4d:	46                   	inc    %esi
401a4e:	e9 b7 00 00 00       	jmp    0x401b0a
401a53:	8b f3                	mov    %ebx,%esi
401a55:	8d 44 24 10          	lea    0x10(%esp),%eax
401a59:	50                   	push   %eax
401a5a:	8d 44 24 58          	lea    0x58(%esp),%eax
401a5e:	68 68 11 40 00       	push   $0x401168
401a63:	50                   	push   %eax
401a64:	ff 15 ac 40 40 00    	call   *0x4040ac
401a6a:	8b 44 24 1c          	mov    0x1c(%esp),%eax
401a6e:	83 c4 0c             	add    $0xc,%esp
401a71:	8b 4c 24 14          	mov    0x14(%esp),%ecx
401a75:	2b c3                	sub    %ebx,%eax
401a77:	1b ce                	sbb    %esi,%ecx
401a79:	78 15                	js     0x401a90
401a7b:	7f 04                	jg     0x401a81
401a7d:	85 c0                	test   %eax,%eax
401a7f:	74 0f                	je     0x401a90
401a81:	81 f9 ff 7f 00 00    	cmp    $0x7fff,%ecx
401a87:	7c 1c                	jl     0x401aa5
401a89:	7f 05                	jg     0x401a90
401a8b:	83 f8 ff             	cmp    $0xffffffff,%eax
401a8e:	72 15                	jb     0x401aa5
401a90:	81 f9 00 80 ff ff    	cmp    $0xffff8000,%ecx
401a96:	7c 0d                	jl     0x401aa5
401a98:	7f 05                	jg     0x401a9f
401a9a:	83 f8 01             	cmp    $0x1,%eax
401a9d:	72 06                	jb     0x401aa5
401a9f:	8b c3                	mov    %ebx,%eax
401aa1:	0b c6                	or     %esi,%eax
401aa3:	75 08                	jne    0x401aad
401aa5:	8b 5c 24 10          	mov    0x10(%esp),%ebx
401aa9:	8b 74 24 14          	mov    0x14(%esp),%esi
401aad:	8d 44 24 28          	lea    0x28(%esp),%eax
401ab1:	50                   	push   %eax
401ab2:	57                   	push   %edi
401ab3:	ff 15 58 40 40 00    	call   *0x404058
401ab9:	85 c0                	test   %eax,%eax
401abb:	75 98                	jne    0x401a55
401abd:	8b 44 24 20          	mov    0x20(%esp),%eax
401ac1:	89 18                	mov    %ebx,(%eax)
401ac3:	89 70 04             	mov    %esi,0x4(%eax)
401ac6:	8d 44 24 18          	lea    0x18(%esp),%eax
401aca:	50                   	push   %eax
401acb:	68 06 00 02 00       	push   $0x20006
401ad0:	6a 00                	push   $0x0
401ad2:	68 84 11 40 00       	push   $0x401184
401ad7:	68 02 00 00 80       	push   $0x80000002
401adc:	ff 15 00 40 40 00    	call   *0x404000
401ae2:	8b 74 24 24          	mov    0x24(%esp),%esi
401ae6:	85 c0                	test   %eax,%eax
401ae8:	75 19                	jne    0x401b03
401aea:	68 b4 11 40 00       	push   $0x4011b4
401aef:	ff 74 24 1c          	push   0x1c(%esp)
401af3:	ff 15 08 40 40 00    	call   *0x404008
401af9:	ff 74 24 18          	push   0x18(%esp)
401afd:	ff 15 04 40 40 00    	call   *0x404004
401b03:	57                   	push   %edi
401b04:	ff 15 1c 40 40 00    	call   *0x40401c
401b0a:	8b c6                	mov    %esi,%eax
401b0c:	8b 8c 24 84 04 00 00 	mov    0x484(%esp),%ecx
401b13:	5f                   	pop    %edi
401b14:	5e                   	pop    %esi
401b15:	5b                   	pop    %ebx
401b16:	33 cc                	xor    %esp,%ecx
401b18:	e8 13 03 00 00       	call   0x401e30
401b1d:	8b e5                	mov    %ebp,%esp
401b1f:	5d                   	pop    %ebp
401b20:	c3                   	ret
401b21:	66 83 3d 70 35 40 00 	cmpw   $0x0,0x403570
401b28:	00
401b29:	53                   	push   %ebx
401b2a:	56                   	push   %esi
401b2b:	57                   	push   %edi
401b2c:	8b f1                	mov    %ecx,%esi
401b2e:	bf 70 35 40 00       	mov    $0x403570,%edi
401b33:	75 1e                	jne    0x401b53
401b35:	bb 04 01 00 00       	mov    $0x104,%ebx
401b3a:	53                   	push   %ebx
401b3b:	57                   	push   %edi
401b3c:	68 d0 11 40 00       	push   $0x4011d0
401b41:	ff 15 24 40 40 00    	call   *0x404024
401b47:	85 c0                	test   %eax,%eax
401b49:	74 04                	je     0x401b4f
401b4b:	3b c3                	cmp    %ebx,%eax
401b4d:	72 04                	jb     0x401b53
401b4f:	33 c0                	xor    %eax,%eax
401b51:	eb 05                	jmp    0x401b58
401b53:	33 c0                	xor    %eax,%eax
401b55:	89 3e                	mov    %edi,(%esi)
401b57:	40                   	inc    %eax
401b58:	5f                   	pop    %edi
401b59:	5e                   	pop    %esi
401b5a:	5b                   	pop    %ebx
401b5b:	c3                   	ret
401b5c:	cc                   	int3
401b5d:	cc                   	int3
401b5e:	cc                   	int3
401b5f:	cc                   	int3
401b60:	e8 48 02 00 00       	call   0x401dad
401b65:	6a 01                	push   $0x1
401b67:	a3 28 30 40 00       	mov    %eax,0x403028
401b6c:	e8 a7 03 00 00       	call   0x401f18
401b71:	50                   	push   %eax
401b72:	ff 15 98 40 40 00    	call   *0x404098
401b78:	83 0d 7c 37 40 00 ff 	orl    $0xffffffff,0x40377c
401b7f:	83 0d 80 37 40 00 ff 	orl    $0xffffffff,0x403780
401b86:	59                   	pop    %ecx
401b87:	59                   	pop    %ecx
401b88:	ff 15 88 40 40 00    	call   *0x404088
401b8e:	8b 0d 3c 30 40 00    	mov    0x40303c,%ecx
401b94:	89 08                	mov    %ecx,(%eax)
401b96:	ff 15 a4 40 40 00    	call   *0x4040a4
401b9c:	8b 0d 30 30 40 00    	mov    0x403030,%ecx
401ba2:	89 08                	mov    %ecx,(%eax)
401ba4:	e8 b7 03 00 00       	call   0x401f60
401ba9:	83 3d 00 30 40 00 00 	cmpl   $0x0,0x403000
401bb0:	75 0c                	jne    0x401bbe
401bb2:	68 60 1f 40 00       	push   $0x401f60
401bb7:	ff 15 84 40 40 00    	call   *0x404084
401bbd:	59                   	pop    %ecx
401bbe:	e8 9a 05 00 00       	call   0x40215d
401bc3:	33 c0                	xor    %eax,%eax
401bc5:	c3                   	ret
401bc6:	cc                   	int3
401bc7:	cc                   	int3
401bc8:	cc                   	int3
401bc9:	cc                   	int3
401bca:	cc                   	int3
401bcb:	cc                   	int3
401bcc:	cc                   	int3
401bcd:	cc                   	int3
401bce:	cc                   	int3
401bcf:	cc                   	int3
401bd0:	a1 38 30 40 00       	mov    0x403038,%eax
401bd5:	68 2c 30 40 00       	push   $0x40302c
401bda:	ff 35 34 30 40 00    	push   0x403034
401be0:	a3 2c 30 40 00       	mov    %eax,0x40302c
401be5:	68 20 30 40 00       	push   $0x403020
401bea:	68 1c 30 40 00       	push   $0x40301c
401bef:	68 18 30 40 00       	push   $0x403018
401bf4:	ff 15 9c 40 40 00    	call   *0x40409c
401bfa:	83 c4 14             	add    $0x14,%esp
401bfd:	a3 24 30 40 00       	mov    %eax,0x403024
401c02:	c3                   	ret
401c03:	6a 0c                	push   $0xc
401c05:	68 10 24 40 00       	push   $0x402410
401c0a:	e8 69 05 00 00       	call   0x402178
401c0f:	33 db                	xor    %ebx,%ebx
401c11:	89 5d fc             	mov    %ebx,-0x4(%ebp)
401c14:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
401c1a:	8b 70 04             	mov    0x4(%eax),%esi
401c1d:	8b fb                	mov    %ebx,%edi
401c1f:	ba 84 37 40 00       	mov    $0x403784,%edx
401c24:	8b ce                	mov    %esi,%ecx
401c26:	33 c0                	xor    %eax,%eax
401c28:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
401c2c:	85 c0                	test   %eax,%eax
401c2e:	74 18                	je     0x401c48
401c30:	3b c6                	cmp    %esi,%eax
401c32:	75 07                	jne    0x401c3b
401c34:	33 f6                	xor    %esi,%esi
401c36:	46                   	inc    %esi
401c37:	8b fe                	mov    %esi,%edi
401c39:	eb 10                	jmp    0x401c4b
401c3b:	68 e8 03 00 00       	push   $0x3e8
401c40:	ff 15 50 40 40 00    	call   *0x404050
401c46:	eb d7                	jmp    0x401c1f
401c48:	33 f6                	xor    %esi,%esi
401c4a:	46                   	inc    %esi
401c4b:	39 35 88 37 40 00    	cmp    %esi,0x403788
401c51:	75 0a                	jne    0x401c5d
401c53:	6a 1f                	push   $0x1f
401c55:	e8 f4 02 00 00       	call   0x401f4e
401c5a:	59                   	pop    %ecx
401c5b:	eb 3a                	jmp    0x401c97
401c5d:	39 1d 88 37 40 00    	cmp    %ebx,0x403788
401c63:	75 2c                	jne    0x401c91
401c65:	89 35 88 37 40 00    	mov    %esi,0x403788
401c6b:	68 cc 10 40 00       	push   $0x4010cc
401c70:	68 c0 10 40 00       	push   $0x4010c0
401c75:	e8 02 01 00 00       	call   0x401d7c
401c7a:	59                   	pop    %ecx
401c7b:	59                   	pop    %ecx
401c7c:	85 c0                	test   %eax,%eax
401c7e:	74 17                	je     0x401c97
401c80:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401c87:	b8 ff 00 00 00       	mov    $0xff,%eax
401c8c:	e9 db 00 00 00       	jmp    0x401d6c
401c91:	89 35 14 30 40 00    	mov    %esi,0x403014
401c97:	39 35 88 37 40 00    	cmp    %esi,0x403788
401c9d:	75 1b                	jne    0x401cba
401c9f:	68 bc 10 40 00       	push   $0x4010bc
401ca4:	68 b4 10 40 00       	push   $0x4010b4
401ca9:	e8 c2 04 00 00       	call   0x402170
401cae:	59                   	pop    %ecx
401caf:	59                   	pop    %ecx
401cb0:	c7 05 88 37 40 00 02 	movl   $0x2,0x403788
401cb7:	00 00 00
401cba:	85 ff                	test   %edi,%edi
401cbc:	75 09                	jne    0x401cc7
401cbe:	33 c0                	xor    %eax,%eax
401cc0:	b9 84 37 40 00       	mov    $0x403784,%ecx
401cc5:	87 01                	xchg   %eax,(%ecx)
401cc7:	83 3d 8c 37 40 00 00 	cmpl   $0x0,0x40378c
401cce:	74 23                	je     0x401cf3
401cd0:	68 8c 37 40 00       	push   $0x40378c
401cd5:	e8 f6 02 00 00       	call   0x401fd0
401cda:	59                   	pop    %ecx
401cdb:	85 c0                	test   %eax,%eax
401cdd:	74 14                	je     0x401cf3
401cdf:	53                   	push   %ebx
401ce0:	6a 02                	push   $0x2
401ce2:	53                   	push   %ebx
401ce3:	8b 35 8c 37 40 00    	mov    0x40378c,%esi
401ce9:	8b ce                	mov    %esi,%ecx
401ceb:	ff 15 b4 40 40 00    	call   *0x4040b4
401cf1:	ff d6                	call   *%esi
401cf3:	ff 35 20 30 40 00    	push   0x403020
401cf9:	ff 35 1c 30 40 00    	push   0x40301c
401cff:	ff 35 18 30 40 00    	push   0x403018
401d05:	e8 0d f8 ff ff       	call   0x401517
401d0a:	83 c4 0c             	add    $0xc,%esp
401d0d:	a3 10 30 40 00       	mov    %eax,0x403010
401d12:	83 3d 28 30 40 00 00 	cmpl   $0x0,0x403028
401d19:	75 36                	jne    0x401d51
401d1b:	50                   	push   %eax
401d1c:	ff 15 94 40 40 00    	call   *0x404094
401d22:	8b 4d ec             	mov    -0x14(%ebp),%ecx
401d25:	8b 01                	mov    (%ecx),%eax
401d27:	8b 00                	mov    (%eax),%eax
401d29:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401d2c:	51                   	push   %ecx
401d2d:	50                   	push   %eax
401d2e:	e8 6b 01 00 00       	call   0x401e9e
401d33:	59                   	pop    %ecx
401d34:	59                   	pop    %ecx
401d35:	c3                   	ret
401d36:	8b 65 e8             	mov    -0x18(%ebp),%esp
401d39:	8b 45 e4             	mov    -0x1c(%ebp),%eax
401d3c:	a3 10 30 40 00       	mov    %eax,0x403010
401d41:	83 3d 28 30 40 00 00 	cmpl   $0x0,0x403028
401d48:	75 07                	jne    0x401d51
401d4a:	50                   	push   %eax
401d4b:	ff 15 90 40 40 00    	call   *0x404090
401d51:	83 3d 14 30 40 00 00 	cmpl   $0x0,0x403014
401d58:	75 0b                	jne    0x401d65
401d5a:	ff 15 8c 40 40 00    	call   *0x40408c
401d60:	a1 10 30 40 00       	mov    0x403010,%eax
401d65:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401d6c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401d6f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401d76:	59                   	pop    %ecx
401d77:	5f                   	pop    %edi
401d78:	5e                   	pop    %esi
401d79:	5b                   	pop    %ebx
401d7a:	c9                   	leave
401d7b:	c3                   	ret
401d7c:	8b ff                	mov    %edi,%edi
401d7e:	55                   	push   %ebp
401d7f:	8b ec                	mov    %esp,%ebp
401d81:	56                   	push   %esi
401d82:	8b 75 08             	mov    0x8(%ebp),%esi
401d85:	33 c0                	xor    %eax,%eax
401d87:	3b 75 0c             	cmp    0xc(%ebp),%esi
401d8a:	73 1e                	jae    0x401daa
401d8c:	57                   	push   %edi
401d8d:	85 c0                	test   %eax,%eax
401d8f:	75 18                	jne    0x401da9
401d91:	8b 3e                	mov    (%esi),%edi
401d93:	85 ff                	test   %edi,%edi
401d95:	74 0a                	je     0x401da1
401d97:	8b cf                	mov    %edi,%ecx
401d99:	ff 15 b4 40 40 00    	call   *0x4040b4
401d9f:	ff d7                	call   *%edi
401da1:	83 c6 04             	add    $0x4,%esi
401da4:	3b 75 0c             	cmp    0xc(%ebp),%esi
401da7:	72 e4                	jb     0x401d8d
401da9:	5f                   	pop    %edi
401daa:	5e                   	pop    %esi
401dab:	5d                   	pop    %ebp
401dac:	c3                   	ret
401dad:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
401db2:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
401db9:	75 55                	jne    0x401e10
401dbb:	8b 0d 3c 00 40 00    	mov    0x40003c,%ecx
401dc1:	81 b9 00 00 40 00 50 	cmpl   $0x4550,0x400000(%ecx)
401dc8:	45 00 00
401dcb:	75 43                	jne    0x401e10
401dcd:	0f b7 81 18 00 40 00 	movzwl 0x400018(%ecx),%eax
401dd4:	ba 0b 01 00 00       	mov    $0x10b,%edx
401dd9:	66 3b c2             	cmp    %dx,%ax
401ddc:	74 1f                	je     0x401dfd
401dde:	ba 0b 02 00 00       	mov    $0x20b,%edx
401de3:	66 3b c2             	cmp    %dx,%ax
401de6:	75 28                	jne    0x401e10
401de8:	83 b9 84 00 40 00 0e 	cmpl   $0xe,0x400084(%ecx)
401def:	76 1f                	jbe    0x401e10
401df1:	33 c0                	xor    %eax,%eax
401df3:	39 81 f8 00 40 00    	cmp    %eax,0x4000f8(%ecx)
401df9:	0f 95 c0             	setne  %al
401dfc:	c3                   	ret
401dfd:	83 b9 74 00 40 00 0e 	cmpl   $0xe,0x400074(%ecx)
401e04:	76 0a                	jbe    0x401e10
401e06:	33 c0                	xor    %eax,%eax
401e08:	39 81 e8 00 40 00    	cmp    %eax,0x4000e8(%ecx)