40bdd9:	8b d6                	mov    %esi,%edx
40bddb:	e8 aa 0b 00 00       	call   0x40c98a
40bde0:	85 c0                	test   %eax,%eax
40bde2:	74 10                	je     0x40bdf4
40bde4:	8b 01                	mov    (%ecx),%eax
40bde6:	46                   	inc    %esi
40bde7:	89 44 95 d0          	mov    %eax,-0x30(%ebp,%edx,4)
40bdeb:	83 c1 0c             	add    $0xc,%ecx
40bdee:	42                   	inc    %edx
40bdef:	83 fa 0b             	cmp    $0xb,%edx
40bdf2:	72 e7                	jb     0x40bddb
40bdf4:	83 ec 10             	sub    $0x10,%esp
40bdf7:	8d 45 d0             	lea    -0x30(%ebp),%eax
40bdfa:	33 d2                	xor    %edx,%edx
40bdfc:	b9 88 13 00 c0       	mov    $0xc0001388,%ecx
40be01:	56                   	push   %esi
40be02:	50                   	push   %eax
40be03:	ff 33                	push   (%ebx)
40be05:	6a 04                	push   $0x4
40be07:	e8 3e 5f 00 00       	call   0x411d4a
40be0c:	8b d0                	mov    %eax,%edx
40be0e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40be11:	8b c2                	mov    %edx,%eax
40be13:	5f                   	pop    %edi
40be14:	5e                   	pop    %esi
40be15:	33 cd                	xor    %ebp,%ecx
40be17:	5b                   	pop    %ebx
40be18:	e8 c3 bc 01 00       	call   0x427ae0
40be1d:	c9                   	leave
40be1e:	c3                   	ret
40be1f:	8b ff                	mov    %edi,%edi
40be21:	55                   	push   %ebp
40be22:	8b ec                	mov    %esp,%ebp
40be24:	6a 00                	push   $0x0
40be26:	6a 08                	push   $0x8
40be28:	8d 45 10             	lea    0x10(%ebp),%eax
40be2b:	50                   	push   %eax
40be2c:	51                   	push   %ecx
40be2d:	52                   	push   %edx
40be2e:	6a 2b                	push   $0x2b
40be30:	ff 75 0c             	push   0xc(%ebp)
40be33:	ff 75 08             	push   0x8(%ebp)
40be36:	ff 15 68 c4 42 00    	call   *0x42c468
40be3c:	83 c4 20             	add    $0x20,%esp
40be3f:	5d                   	pop    %ebp
40be40:	c2 10 00             	ret    $0x10
40be43:	6a 1c                	push   $0x1c
40be45:	b8 20 86 42 00       	mov    $0x428620,%eax
40be4a:	e8 82 c2 01 00       	call   0x4280d1
40be4f:	8b fa                	mov    %edx,%edi
40be51:	89 7d e8             	mov    %edi,-0x18(%ebp)
40be54:	8b d9                	mov    %ecx,%ebx
40be56:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40be59:	85 db                	test   %ebx,%ebx
40be5b:	0f 84 58 01 00 00    	je     0x40bfb9
40be61:	85 ff                	test   %edi,%edi
40be63:	0f 84 50 01 00 00    	je     0x40bfb9
40be69:	8d 51 01             	lea    0x1(%ecx),%edx
40be6c:	8a 01                	mov    (%ecx),%al
40be6e:	41                   	inc    %ecx
40be6f:	84 c0                	test   %al,%al
40be71:	75 f9                	jne    0x40be6c
40be73:	33 f6                	xor    %esi,%esi
40be75:	2b ca                	sub    %edx,%ecx
40be77:	56                   	push   %esi
40be78:	56                   	push   %esi
40be79:	8d 41 01             	lea    0x1(%ecx),%eax
40be7c:	50                   	push   %eax
40be7d:	53                   	push   %ebx
40be7e:	56                   	push   %esi
40be7f:	56                   	push   %esi
40be80:	89 45 dc             	mov    %eax,-0x24(%ebp)
40be83:	ff 15 a0 c2 42 00    	call   *0x42c2a0
40be89:	8b c8                	mov    %eax,%ecx
40be8b:	85 c9                	test   %ecx,%ecx
40be8d:	75 36                	jne    0x40bec5
40be8f:	ff 15 18 c2 42 00    	call   *0x42c218
40be95:	8b c8                	mov    %eax,%ecx
40be97:	e8 0e f7 ff ff       	call   0x40b5aa
40be9c:	8b f0                	mov    %eax,%esi
40be9e:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bea3:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bea8:	0f 84 07 01 00 00    	je     0x40bfb5
40beae:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40beb2:	0f 84 fd 00 00 00    	je     0x40bfb5
40beb8:	ff 70 14             	push   0x14(%eax)
40bebb:	ff 70 10             	push   0x10(%eax)
40bebe:	6a 0b                	push   $0xb
40bec0:	e9 e5 00 00 00       	jmp    0x40bfaa
40bec5:	8d 41 01             	lea    0x1(%ecx),%eax
40bec8:	89 45 ec             	mov    %eax,-0x14(%ebp)
40becb:	3b c1                	cmp    %ecx,%eax
40becd:	0f 82 b8 00 00 00    	jb     0x40bf8b
40bed3:	33 c9                	xor    %ecx,%ecx
40bed5:	89 45 e0             	mov    %eax,-0x20(%ebp)
40bed8:	6a 02                	push   $0x2
40beda:	5a                   	pop    %edx
40bedb:	f7 e2                	mul    %edx
40bedd:	89 37                	mov    %esi,(%edi)
40bedf:	89 75 fc             	mov    %esi,-0x4(%ebp)
40bee2:	0f 90 c1             	seto   %cl
40bee5:	f7 d9                	neg    %ecx
40bee7:	0b c8                	or     %eax,%ecx
40bee9:	51                   	push   %ecx
40beea:	e8 23 be 01 00       	call   0x427d12
40beef:	89 07                	mov    %eax,(%edi)
40bef1:	8b 45 ec             	mov    -0x14(%ebp),%eax
40bef4:	59                   	pop    %ecx
40bef5:	eb 11                	jmp    0x40bf08
40bef7:	b8 fd be 40 00       	mov    $0x40befd,%eax
40befc:	c3                   	ret
40befd:	8b 7d e8             	mov    -0x18(%ebp),%edi
40bf00:	33 f6                	xor    %esi,%esi
40bf02:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40bf05:	8b 45 e0             	mov    -0x20(%ebp),%eax
40bf08:	83 3f 00             	cmpl   $0x0,(%edi)
40bf0b:	75 2c                	jne    0x40bf39
40bf0d:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bf12:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bf17:	74 19                	je     0x40bf32
40bf19:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bf1d:	74 13                	je     0x40bf32
40bf1f:	ff 70 14             	push   0x14(%eax)
40bf22:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40bf27:	ff 70 10             	push   0x10(%eax)
40bf2a:	6a 0d                	push   $0xd
40bf2c:	59                   	pop    %ecx
40bf2d:	e8 7e b4 ff ff       	call   0x4073b0
40bf32:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40bf37:	eb 7c                	jmp    0x40bfb5
40bf39:	50                   	push   %eax
40bf3a:	ff 37                	push   (%edi)
40bf3c:	ff 75 dc             	push   -0x24(%ebp)
40bf3f:	53                   	push   %ebx
40bf40:	56                   	push   %esi
40bf41:	56                   	push   %esi
40bf42:	ff 15 a0 c2 42 00    	call   *0x42c2a0
40bf48:	85 c0                	test   %eax,%eax
40bf4a:	75 69                	jne    0x40bfb5
40bf4c:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bf51:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bf56:	74 19                	je     0x40bf71
40bf58:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bf5c:	74 13                	je     0x40bf71
40bf5e:	ff 70 14             	push   0x14(%eax)
40bf61:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40bf66:	ff 70 10             	push   0x10(%eax)
40bf69:	6a 0e                	push   $0xe
40bf6b:	59                   	pop    %ecx
40bf6c:	e8 3f b4 ff ff       	call   0x4073b0
40bf71:	ff 15 18 c2 42 00    	call   *0x42c218
40bf77:	8b c8                	mov    %eax,%ecx
40bf79:	e8 2c f6 ff ff       	call   0x40b5aa
40bf7e:	8b f0                	mov    %eax,%esi
40bf80:	85 f6                	test   %esi,%esi
40bf82:	78 31                	js     0x40bfb5
40bf84:	be 05 40 00 80       	mov    $0x80004005,%esi
40bf89:	eb 2a                	jmp    0x40bfb5
40bf8b:	be 16 02 07 80       	mov    $0x80070216,%esi
40bf90:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bf95:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bf9a:	74 19                	je     0x40bfb5
40bf9c:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bfa0:	74 13                	je     0x40bfb5
40bfa2:	ff 70 14             	push   0x14(%eax)
40bfa5:	ff 70 10             	push   0x10(%eax)
40bfa8:	6a 0c                	push   $0xc
40bfaa:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40bfaf:	59                   	pop    %ecx
40bfb0:	e8 fb b3 ff ff       	call   0x4073b0
40bfb5:	8b c6                	mov    %esi,%eax
40bfb7:	eb 2a                	jmp    0x40bfe3
40bfb9:	a1 00 b0 42 00       	mov    0x42b000,%eax
40bfbe:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40bfc3:	74 19                	je     0x40bfde
40bfc5:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40bfc9:	74 13                	je     0x40bfde
40bfcb:	ff 70 14             	push   0x14(%eax)
40bfce:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40bfd3:	ff 70 10             	push   0x10(%eax)
40bfd6:	6a 0a                	push   $0xa
40bfd8:	59                   	pop    %ecx
40bfd9:	e8 d2 b3 ff ff       	call   0x4073b0
40bfde:	b8 57 00 07 80       	mov    $0x80070057,%eax
40bfe3:	e8 4e c0 01 00       	call   0x428036
40bfe8:	c3                   	ret
40bfe9:	6a 14                	push   $0x14
40bfeb:	b8 3b 86 42 00       	mov    $0x42863b,%eax
40bff0:	e8 dc c0 01 00       	call   0x4280d1
40bff5:	8b d9                	mov    %ecx,%ebx
40bff7:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40bffa:	8b 75 0c             	mov    0xc(%ebp),%esi
40bffd:	8d 45 ec             	lea    -0x14(%ebp),%eax
40c000:	33 ff                	xor    %edi,%edi
40c002:	8b ce                	mov    %esi,%ecx
40c004:	50                   	push   %eax
40c005:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40c008:	89 7d ec             	mov    %edi,-0x14(%ebp)
40c00b:	e8 fb 0d 00 00       	call   0x40ce0b
40c010:	85 c0                	test   %eax,%eax
40c012:	79 30                	jns    0x40c044
40c014:	be 16 02 07 80       	mov    $0x80070216,%esi
40c019:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c01e:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c023:	0f 84 85 00 00 00    	je     0x40c0ae
40c029:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c02d:	74 7f                	je     0x40c0ae
40c02f:	ff 70 14             	push   0x14(%eax)
40c032:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c037:	ff 70 10             	push   0x10(%eax)
40c03a:	6a 11                	push   $0x11
40c03c:	59                   	pop    %ecx
40c03d:	e8 6e b3 ff ff       	call   0x4073b0
40c042:	eb 6a                	jmp    0x40c0ae
40c044:	33 c9                	xor    %ecx,%ecx
40c046:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c049:	8b 45 ec             	mov    -0x14(%ebp),%eax
40c04c:	6a 02                	push   $0x2
40c04e:	5a                   	pop    %edx
40c04f:	f7 e2                	mul    %edx
40c051:	0f 90 c1             	seto   %cl
40c054:	f7 d9                	neg    %ecx
40c056:	0b c8                	or     %eax,%ecx
40c058:	51                   	push   %ecx
40c059:	e8 b4 bc 01 00       	call   0x427d12
40c05e:	59                   	pop    %ecx
40c05f:	8b f8                	mov    %eax,%edi
40c061:	eb 0f                	jmp    0x40c072
40c063:	b8 69 c0 40 00       	mov    $0x40c069,%eax
40c068:	c3                   	ret
40c069:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40c06c:	8b 75 0c             	mov    0xc(%ebp),%esi
40c06f:	8b 7d e4             	mov    -0x1c(%ebp),%edi
40c072:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40c076:	85 ff                	test   %edi,%edi
40c078:	75 07                	jne    0x40c081
40c07a:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40c07f:	eb 2d                	jmp    0x40c0ae
40c081:	8b 55 ec             	mov    -0x14(%ebp),%edx
40c084:	8b cf                	mov    %edi,%ecx
40c086:	56                   	push   %esi
40c087:	ff 75 08             	push   0x8(%ebp)
40c08a:	e8 35 0d 00 00       	call   0x40cdc4
40c08f:	8b f0                	mov    %eax,%esi
40c091:	85 f6                	test   %esi,%esi
40c093:	79 08                	jns    0x40c09d
40c095:	81 fe 7a 00 07 80    	cmp    $0x8007007a,%esi
40c09b:	75 0a                	jne    0x40c0a7
40c09d:	57                   	push   %edi
40c09e:	8b cb                	mov    %ebx,%ecx
40c0a0:	e8 13 00 00 00       	call   0x40c0b8
40c0a5:	8b f0                	mov    %eax,%esi
40c0a7:	57                   	push   %edi
40c0a8:	e8 8e bc 01 00       	call   0x427d3b
40c0ad:	59                   	pop    %ecx
40c0ae:	8b c6                	mov    %esi,%eax
40c0b0:	e8 81 bf 01 00       	call   0x428036
40c0b5:	c2 08 00             	ret    $0x8
40c0b8:	6a 10                	push   $0x10
40c0ba:	b8 56 86 42 00       	mov    $0x428656,%eax
40c0bf:	e8 0d c0 01 00       	call   0x4280d1
40c0c4:	8b f1                	mov    %ecx,%esi
40c0c6:	89 75 ec             	mov    %esi,-0x14(%ebp)
40c0c9:	8b 45 08             	mov    0x8(%ebp),%eax
40c0cc:	85 c0                	test   %eax,%eax
40c0ce:	75 0e                	jne    0x40c0de
40c0d0:	6a 01                	push   $0x1
40c0d2:	e8 4e 0b 00 00       	call   0x40cc25
40c0d7:	33 db                	xor    %ebx,%ebx
40c0d9:	e9 15 01 00 00       	jmp    0x40c1f3
40c0de:	8b f8                	mov    %eax,%edi
40c0e0:	33 c9                	xor    %ecx,%ecx
40c0e2:	6a 02                	push   $0x2
40c0e4:	5b                   	pop    %ebx
40c0e5:	8d 57 02             	lea    0x2(%edi),%edx
40c0e8:	66 8b 07             	mov    (%edi),%ax
40c0eb:	03 fb                	add    %ebx,%edi
40c0ed:	66 3b c1             	cmp    %cx,%ax
40c0f0:	75 f6                	jne    0x40c0e8
40c0f2:	2b fa                	sub    %edx,%edi
40c0f4:	d1 ff                	sar    $1,%edi
40c0f6:	89 7d e8             	mov    %edi,-0x18(%ebp)
40c0f9:	8d 5f 01             	lea    0x1(%edi),%ebx
40c0fc:	3b df                	cmp    %edi,%ebx
40c0fe:	0f 82 c5 00 00 00    	jb     0x40c1c9
40c104:	8b 56 04             	mov    0x4(%esi),%edx
40c107:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40c10a:	3b da                	cmp    %edx,%ebx
40c10c:	77 06                	ja     0x40c114
40c10e:	8b 0e                	mov    (%esi),%ecx
40c110:	85 c9                	test   %ecx,%ecx
40c112:	75 75                	jne    0x40c189
40c114:	6a 01                	push   $0x1
40c116:	8b ce                	mov    %esi,%ecx
40c118:	e8 08 0b 00 00       	call   0x40cc25
40c11d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c121:	33 c9                	xor    %ecx,%ecx
40c123:	6a 02                	push   $0x2
40c125:	5a                   	pop    %edx
40c126:	8b c3                	mov    %ebx,%eax
40c128:	f7 e2                	mul    %edx
40c12a:	0f 90 c1             	seto   %cl
40c12d:	f7 d9                	neg    %ecx
40c12f:	0b c8                	or     %eax,%ecx
40c131:	51                   	push   %ecx
40c132:	e8 db bb 01 00       	call   0x427d12
40c137:	59                   	pop    %ecx
40c138:	89 06                	mov    %eax,(%esi)
40c13a:	eb 0f                	jmp    0x40c14b
40c13c:	b8 42 c1 40 00       	mov    $0x40c142,%eax
40c141:	c3                   	ret
40c142:	8b 75 ec             	mov    -0x14(%ebp),%esi
40c145:	8b 7d e8             	mov    -0x18(%ebp),%edi
40c148:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40c14b:	8b 06                	mov    (%esi),%eax
40c14d:	85 c0                	test   %eax,%eax
40c14f:	75 2c                	jne    0x40c17d
40c151:	a1 00 b0 42 00       	mov    0x42b000,%eax
40c156:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
40c15b:	74 19                	je     0x40c176
40c15d:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
40c161:	74 13                	je     0x40c176
40c163:	ff 70 14             	push   0x14(%eax)
40c166:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c16b:	ff 70 10             	push   0x10(%eax)
40c16e:	6a 13                	push   $0x13
40c170:	59                   	pop    %ecx
40c171:	e8 3a b2 ff ff       	call   0x4073b0
40c176:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40c17b:	eb 76                	jmp    0x40c1f3
40c17d:	33 c9                	xor    %ecx,%ecx
40c17f:	8b d3                	mov    %ebx,%edx
40c181:	66 89 08             	mov    %cx,(%eax)
40c184:	8b 0e                	mov    (%esi),%ecx
40c186:	89 5e 04             	mov    %ebx,0x4(%esi)
40c189:	ff 75 08             	push   0x8(%ebp)
40c18c:	e8 a4 c8 ff ff       	call   0x408a35
40c191:	8b d8                	mov    %eax,%ebx
40c193:	85 db                	test   %ebx,%ebx
40c195:	79 2a                	jns    0x40c1c1
40c197:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
40c19d:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
40c1a3:	74 4e                	je     0x40c1f3
40c1a5:	f6 41 1c 01          	testb  $0x1,0x1c(%ecx)
40c1a9:	74 48                	je     0x40c1f3
40c1ab:	53                   	push   %ebx
40c1ac:	ff 71 14             	push   0x14(%ecx)
40c1af:	ba ac 22 40 00       	mov    $0x4022ac,%edx
40c1b4:	ff 71 10             	push   0x10(%ecx)
40c1b7:	6a 14                	push   $0x14