40c980:	8b c7                	mov    %edi,%eax
40c982:	e8 af b6 01 00       	call   0x428036
40c987:	c2 10 00             	ret    $0x10
40c98a:	33 c0                	xor    %eax,%eax
40c98c:	39 01                	cmp    %eax,(%ecx)
40c98e:	74 06                	je     0x40c996
40c990:	39 41 08             	cmp    %eax,0x8(%ecx)
40c993:	76 01                	jbe    0x40c996
40c995:	40                   	inc    %eax
40c996:	c3                   	ret
40c997:	33 c0                	xor    %eax,%eax
40c999:	39 01                	cmp    %eax,(%ecx)
40c99b:	74 05                	je     0x40c9a2
40c99d:	39 41 08             	cmp    %eax,0x8(%ecx)
40c9a0:	75 03                	jne    0x40c9a5
40c9a2:	33 c0                	xor    %eax,%eax
40c9a4:	40                   	inc    %eax
40c9a5:	c3                   	ret
40c9a6:	8b ff                	mov    %edi,%edi
40c9a8:	55                   	push   %ebp
40c9a9:	8b ec                	mov    %esp,%ebp
40c9ab:	8b 45 08             	mov    0x8(%ebp),%eax
40c9ae:	53                   	push   %ebx
40c9af:	8b d9                	mov    %ecx,%ebx
40c9b1:	56                   	push   %esi
40c9b2:	57                   	push   %edi
40c9b3:	85 c0                	test   %eax,%eax
40c9b5:	75 2c                	jne    0x40c9e3
40c9b7:	bf 57 00 07 80       	mov    $0x80070057,%edi
40c9bc:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c9c1:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c9c6:	74 6e                	je     0x40ca36
40c9c8:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c9cc:	74 68                	je     0x40ca36
40c9ce:	ff 70 14             	push   0x14(%eax)
40c9d1:	ff 70 10             	push   0x10(%eax)
40c9d4:	6a 37                	push   $0x37
40c9d6:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c9db:	59                   	pop    %ecx
40c9dc:	e8 cf a9 ff ff       	call   0x4073b0
40c9e1:	eb 53                	jmp    0x40ca36
40c9e3:	8b f0                	mov    %eax,%esi
40c9e5:	33 ff                	xor    %edi,%edi
40c9e7:	8d 4e 02             	lea    0x2(%esi),%ecx
40c9ea:	66 8b 06             	mov    (%esi),%ax
40c9ed:	83 c6 02             	add    $0x2,%esi
40c9f0:	66 3b c7             	cmp    %di,%ax
40c9f3:	75 f5                	jne    0x40c9ea
40c9f5:	2b f1                	sub    %ecx,%esi
40c9f7:	d1 fe                	sar    $1,%esi
40c9f9:	83 fe ff             	cmp    $0xffffffff,%esi
40c9fc:	72 21                	jb     0x40ca1f
40c9fe:	bf 0b 00 00 80       	mov    $0x8000000b,%edi
40ca03:	a1 00 b0 42 00       	mov    0x42b000,%eax
40ca08:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40ca0d:	74 27                	je     0x40ca36
40ca0f:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40ca13:	74 21                	je     0x40ca36
40ca15:	ff 70 14             	push   0x14(%eax)
40ca18:	ff 70 10             	push   0x10(%eax)
40ca1b:	6a 38                	push   $0x38
40ca1d:	eb b7                	jmp    0x40c9d6
40ca1f:	6a 01                	push   $0x1
40ca21:	8b cb                	mov    %ebx,%ecx
40ca23:	e8 fd 01 00 00       	call   0x40cc25
40ca28:	8b 45 08             	mov    0x8(%ebp),%eax
40ca2b:	8d 4e 01             	lea    0x1(%esi),%ecx
40ca2e:	89 03                	mov    %eax,(%ebx)
40ca30:	89 73 08             	mov    %esi,0x8(%ebx)
40ca33:	89 4b 04             	mov    %ecx,0x4(%ebx)
40ca36:	8b c7                	mov    %edi,%eax
40ca38:	5f                   	pop    %edi
40ca39:	5e                   	pop    %esi
40ca3a:	5b                   	pop    %ebx
40ca3b:	5d                   	pop    %ebp
40ca3c:	c2 04 00             	ret    $0x4
40ca3f:	8b ff                	mov    %edi,%edi
40ca41:	55                   	push   %ebp
40ca42:	8b ec                	mov    %esp,%ebp
40ca44:	53                   	push   %ebx
40ca45:	8b d9                	mov    %ecx,%ebx
40ca47:	56                   	push   %esi
40ca48:	57                   	push   %edi
40ca49:	8b 73 08             	mov    0x8(%ebx),%esi
40ca4c:	85 f6                	test   %esi,%esi
40ca4e:	74 49                	je     0x40ca99
40ca50:	8b 3b                	mov    (%ebx),%edi
40ca52:	0f b7 07             	movzwl (%edi),%eax
40ca55:	66 85 c0             	test   %ax,%ax
40ca58:	74 33                	je     0x40ca8d
40ca5a:	8b c8                	mov    %eax,%ecx
40ca5c:	51                   	push   %ecx
40ca5d:	ff 15 c0 c3 42 00    	call   *0x42c3c0
40ca63:	59                   	pop    %ecx
40ca64:	85 c0                	test   %eax,%eax
40ca66:	75 18                	jne    0x40ca80
40ca68:	39 45 08             	cmp    %eax,0x8(%ebp)
40ca6b:	74 35                	je     0x40caa2
40ca6d:	0f b7 07             	movzwl (%edi),%eax
40ca70:	50                   	push   %eax
40ca71:	ff 75 08             	push   0x8(%ebp)
40ca74:	ff 15 30 c3 42 00    	call   *0x42c330
40ca7a:	59                   	pop    %ecx
40ca7b:	59                   	pop    %ecx
40ca7c:	85 c0                	test   %eax,%eax
40ca7e:	74 22                	je     0x40caa2
40ca80:	83 c7 02             	add    $0x2,%edi
40ca83:	0f b7 07             	movzwl (%edi),%eax
40ca86:	8b c8                	mov    %eax,%ecx
40ca88:	66 85 c0             	test   %ax,%ax
40ca8b:	75 cf                	jne    0x40ca5c
40ca8d:	68 2c 21 40 00       	push   $0x40212c
40ca92:	8b cb                	mov    %ebx,%ecx
40ca94:	e8 1f f6 ff ff       	call   0x40c0b8
40ca99:	5f                   	pop    %edi
40ca9a:	5e                   	pop    %esi
40ca9b:	33 c0                	xor    %eax,%eax
40ca9d:	5b                   	pop    %ebx
40ca9e:	5d                   	pop    %ebp
40ca9f:	c2 04 00             	ret    $0x4
40caa2:	8b 03                	mov    (%ebx),%eax
40caa4:	4e                   	dec    %esi
40caa5:	8d 34 70             	lea    (%eax,%esi,2),%esi
40caa8:	eb 2a                	jmp    0x40cad4
40caaa:	0f b7 06             	movzwl (%esi),%eax
40caad:	50                   	push   %eax
40caae:	ff 15 c0 c3 42 00    	call   *0x42c3c0
40cab4:	59                   	pop    %ecx
40cab5:	85 c0                	test   %eax,%eax
40cab7:	75 18                	jne    0x40cad1
40cab9:	39 45 08             	cmp    %eax,0x8(%ebp)
40cabc:	74 1a                	je     0x40cad8
40cabe:	0f b7 06             	movzwl (%esi),%eax
40cac1:	50                   	push   %eax
40cac2:	ff 75 08             	push   0x8(%ebp)
40cac5:	ff 15 30 c3 42 00    	call   *0x42c330
40cacb:	59                   	pop    %ecx
40cacc:	59                   	pop    %ecx
40cacd:	85 c0                	test   %eax,%eax
40cacf:	74 07                	je     0x40cad8
40cad1:	83 ee 02             	sub    $0x2,%esi
40cad4:	3b f7                	cmp    %edi,%esi
40cad6:	77 d2                	ja     0x40caaa
40cad8:	33 c0                	xor    %eax,%eax
40cada:	66 89 46 02          	mov    %ax,0x2(%esi)
40cade:	2b f7                	sub    %edi,%esi
40cae0:	83 c6 02             	add    $0x2,%esi
40cae3:	d1 fe                	sar    $1,%esi
40cae5:	89 73 08             	mov    %esi,0x8(%ebx)
40cae8:	3b 3b                	cmp    (%ebx),%edi
40caea:	76 ad                	jbe    0x40ca99
40caec:	39 73 04             	cmp    %esi,0x4(%ebx)
40caef:	76 a8                	jbe    0x40ca99
40caf1:	8d 04 75 02 00 00 00 	lea    0x2(,%esi,2),%eax
40caf8:	50                   	push   %eax
40caf9:	57                   	push   %edi
40cafa:	ff 33                	push   (%ebx)
40cafc:	e8 a6 b8 01 00       	call   0x4283a7
40cb01:	83 c4 0c             	add    $0xc,%esp
40cb04:	eb 93                	jmp    0x40ca99
40cb06:	8b ff                	mov    %edi,%edi
40cb08:	55                   	push   %ebp
40cb09:	8b ec                	mov    %esp,%ebp
40cb0b:	81 ec 8c 00 00 00    	sub    $0x8c,%esp
40cb11:	a1 74 b6 42 00       	mov    0x42b674,%eax
40cb16:	33 c5                	xor    %ebp,%eax
40cb18:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cb1b:	56                   	push   %esi
40cb1c:	6a 40                	push   $0x40
40cb1e:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40cb24:	8b f1                	mov    %ecx,%esi
40cb26:	50                   	push   %eax
40cb27:	ff 15 80 c1 42 00    	call   *0x42c180
40cb2d:	85 c0                	test   %eax,%eax
40cb2f:	74 25                	je     0x40cb56
40cb31:	83 f8 40             	cmp    $0x40,%eax
40cb34:	77 20                	ja     0x40cb56
40cb36:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40cb3c:	8b ce                	mov    %esi,%ecx
40cb3e:	50                   	push   %eax
40cb3f:	e8 74 f5 ff ff       	call   0x40c0b8
40cb44:	85 c0                	test   %eax,%eax
40cb46:	78 1b                	js     0x40cb63
40cb48:	68 a8 1b 40 00       	push   $0x401ba8
40cb4d:	8b ce                	mov    %esi,%ecx
40cb4f:	e8 17 f7 ff ff       	call   0x40c26b
40cb54:	eb 0d                	jmp    0x40cb63
40cb56:	ff 15 18 c2 42 00    	call   *0x42c218
40cb5c:	8b c8                	mov    %eax,%ecx
40cb5e:	e8 47 ea ff ff       	call   0x40b5aa
40cb63:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40cb66:	33 cd                	xor    %ebp,%ecx
40cb68:	5e                   	pop    %esi
40cb69:	e8 72 af 01 00       	call   0x427ae0
40cb6e:	c9                   	leave
40cb6f:	c3                   	ret
40cb70:	8b ff                	mov    %edi,%edi
40cb72:	55                   	push   %ebp
40cb73:	8b ec                	mov    %esp,%ebp
40cb75:	81 ec 88 00 00 00    	sub    $0x88,%esp
40cb7b:	a1 74 b6 42 00       	mov    0x42b674,%eax
40cb80:	33 c5                	xor    %ebp,%eax
40cb82:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cb85:	66 83 7d 08 00       	cmpw   $0x0,0x8(%ebp)
40cb8a:	56                   	push   %esi
40cb8b:	57                   	push   %edi
40cb8c:	8b f9                	mov    %ecx,%edi
40cb8e:	74 40                	je     0x40cbd0
40cb90:	68 48 22 40 00       	push   $0x402248
40cb95:	68 68 22 40 00       	push   $0x402268
40cb9a:	ff 15 40 c2 42 00    	call   *0x42c240
40cba0:	50                   	push   %eax
40cba1:	ff 15 84 c1 42 00    	call   *0x42c184
40cba7:	8b f0                	mov    %eax,%esi
40cba9:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40cbaf:	85 f6                	test   %esi,%esi
40cbb1:	74 12                	je     0x40cbc5
40cbb3:	ff 75 08             	push   0x8(%ebp)
40cbb6:	8b ce                	mov    %esi,%ecx
40cbb8:	6a 40                	push   $0x40
40cbba:	50                   	push   %eax
40cbbb:	ff 15 d4 c4 42 00    	call   *0x42c4d4
40cbc1:	ff d6                	call   *%esi
40cbc3:	eb 1a                	jmp    0x40cbdf
40cbc5:	6a 40                	push   $0x40
40cbc7:	50                   	push   %eax
40cbc8:	ff 15 88 c1 42 00    	call   *0x42c188
40cbce:	eb 0f                	jmp    0x40cbdf
40cbd0:	6a 40                	push   $0x40
40cbd2:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40cbd8:	50                   	push   %eax
40cbd9:	ff 15 8c c1 42 00    	call   *0x42c18c
40cbdf:	85 c0                	test   %eax,%eax
40cbe1:	74 25                	je     0x40cc08
40cbe3:	83 f8 40             	cmp    $0x40,%eax
40cbe6:	77 20                	ja     0x40cc08
40cbe8:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40cbee:	8b cf                	mov    %edi,%ecx
40cbf0:	50                   	push   %eax
40cbf1:	e8 c2 f4 ff ff       	call   0x40c0b8
40cbf6:	85 c0                	test   %eax,%eax
40cbf8:	78 1b                	js     0x40cc15
40cbfa:	68 a8 1b 40 00       	push   $0x401ba8
40cbff:	8b cf                	mov    %edi,%ecx
40cc01:	e8 65 f6 ff ff       	call   0x40c26b
40cc06:	eb 0d                	jmp    0x40cc15
40cc08:	ff 15 18 c2 42 00    	call   *0x42c218
40cc0e:	8b c8                	mov    %eax,%ecx
40cc10:	e8 95 e9 ff ff       	call   0x40b5aa
40cc15:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40cc18:	5f                   	pop    %edi
40cc19:	33 cd                	xor    %ebp,%ecx
40cc1b:	5e                   	pop    %esi
40cc1c:	e8 bf ae 01 00       	call   0x427ae0
40cc21:	c9                   	leave
40cc22:	c2 08 00             	ret    $0x8
40cc25:	8b ff                	mov    %edi,%edi
40cc27:	55                   	push   %ebp
40cc28:	8b ec                	mov    %esp,%ebp
40cc2a:	56                   	push   %esi
40cc2b:	8b f1                	mov    %ecx,%esi
40cc2d:	8b 06                	mov    (%esi),%eax
40cc2f:	85 c0                	test   %eax,%eax
40cc31:	74 17                	je     0x40cc4a
40cc33:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40cc37:	74 0c                	je     0x40cc45
40cc39:	50                   	push   %eax
40cc3a:	e8 fc b0 01 00       	call   0x427d3b
40cc3f:	83 26 00             	andl   $0x0,(%esi)
40cc42:	59                   	pop    %ecx
40cc43:	eb 05                	jmp    0x40cc4a
40cc45:	33 c9                	xor    %ecx,%ecx
40cc47:	66 89 08             	mov    %cx,(%eax)
40cc4a:	83 66 08 00          	andl   $0x0,0x8(%esi)
40cc4e:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40cc52:	74 04                	je     0x40cc58
40cc54:	83 66 04 00          	andl   $0x0,0x4(%esi)
40cc58:	5e                   	pop    %esi
40cc59:	5d                   	pop    %ebp
40cc5a:	c2 04 00             	ret    $0x4
40cc5d:	cc                   	int3
40cc5e:	cc                   	int3
40cc5f:	cc                   	int3
40cc60:	33 c0                	xor    %eax,%eax
40cc62:	89 01                	mov    %eax,(%ecx)
40cc64:	89 41 08             	mov    %eax,0x8(%ecx)
40cc67:	89 41 04             	mov    %eax,0x4(%ecx)
40cc6a:	8b c1                	mov    %ecx,%eax
40cc6c:	c3                   	ret
40cc6d:	8b ff                	mov    %edi,%edi
40cc6f:	55                   	push   %ebp
40cc70:	8b ec                	mov    %esp,%ebp
40cc72:	51                   	push   %ecx
40cc73:	51                   	push   %ecx
40cc74:	8b 45 08             	mov    0x8(%ebp),%eax
40cc77:	56                   	push   %esi
40cc78:	8b f1                	mov    %ecx,%esi
40cc7a:	ff 30                	push   (%eax)
40cc7c:	e8 37 f4 ff ff       	call   0x40c0b8
40cc81:	85 c0                	test   %eax,%eax
40cc83:	78 07                	js     0x40cc8c
40cc85:	8b c6                	mov    %esi,%eax
40cc87:	5e                   	pop    %esi
40cc88:	c9                   	leave
40cc89:	c2 04 00             	ret    $0x4
40cc8c:	68 88 9f 42 00       	push   $0x429f88
40cc91:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cc94:	c7 45 fc 0e 00 07 80 	movl   $0x8007000e,-0x4(%ebp)
40cc9b:	50                   	push   %eax
40cc9c:	e8 be b5 01 00       	call   0x42825f
40cca1:	cc                   	int3
40cca2:	8b ff                	mov    %edi,%edi
40cca4:	55                   	push   %ebp
40cca5:	8b ec                	mov    %esp,%ebp
40cca7:	53                   	push   %ebx
40cca8:	56                   	push   %esi
40cca9:	33 f6                	xor    %esi,%esi
40ccab:	8b d9                	mov    %ecx,%ebx
40ccad:	85 d2                	test   %edx,%edx
40ccaf:	74 08                	je     0x40ccb9
40ccb1:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40ccb7:	76 05                	jbe    0x40ccbe
40ccb9:	be 57 00 07 80       	mov    $0x80070057,%esi
40ccbe:	85 f6                	test   %esi,%esi
40ccc0:	78 31                	js     0x40ccf3
40ccc2:	57                   	push   %edi
40ccc3:	ff 75 0c             	push   0xc(%ebp)
40ccc6:	8d 7a ff             	lea    -0x1(%edx),%edi
40ccc9:	33 f6                	xor    %esi,%esi
40cccb:	ff 75 08             	push   0x8(%ebp)
40ccce:	57                   	push   %edi
40cccf:	53                   	push   %ebx
40ccd0:	ff 15 ac c3 42 00    	call   *0x42c3ac
40ccd6:	83 c4 10             	add    $0x10,%esp
40ccd9:	85 c0                	test   %eax,%eax
40ccdb:	78 08                	js     0x40cce5
40ccdd:	3b c7                	cmp    %edi,%eax
40ccdf:	77 04                	ja     0x40cce5
40cce1:	75 0d                	jne    0x40ccf0
40cce3:	eb 05                	jmp    0x40ccea
40cce5:	be 7a 00 07 80       	mov    $0x8007007a,%esi
40ccea:	33 c0                	xor    %eax,%eax
40ccec:	66 89 04 7b          	mov    %ax,(%ebx,%edi,2)
40ccf0:	5f                   	pop    %edi
40ccf1:	eb 09                	jmp    0x40ccfc
40ccf3:	85 d2                	test   %edx,%edx
40ccf5:	74 05                	je     0x40ccfc
40ccf7:	33 c0                	xor    %eax,%eax
40ccf9:	66 89 03             	mov    %ax,(%ebx)
40ccfc:	8b c6                	mov    %esi,%eax