40dece:	85 c0                	test   %eax,%eax
40ded0:	0f 84 88 00 00 00    	je     0x40df5e
40ded6:	8b 03                	mov    (%ebx),%eax
40ded8:	8d 04 f8             	lea    (%eax,%edi,8),%eax
40dedb:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40dede:	8d 45 f8             	lea    -0x8(%ebp),%eax
40dee1:	50                   	push   %eax
40dee2:	8d 45 fc             	lea    -0x4(%ebp),%eax
40dee5:	50                   	push   %eax
40dee6:	ff 75 f0             	push   -0x10(%ebp)
40dee9:	e8 72 58 03 00       	call   0x443760
40deee:	8b f0                	mov    %eax,%esi
40def0:	85 f6                	test   %esi,%esi
40def2:	0f 88 04 07 00 00    	js     0x40e5fc
40def8:	ff 75 e4             	push   -0x1c(%ebp)
40defb:	68 64 ca 44 00       	push   $0x44ca64
40df00:	ff 75 fc             	push   -0x4(%ebp)
40df03:	e8 bf 52 03 00       	call   0x4431c7
40df08:	8b f0                	mov    %eax,%esi
40df0a:	85 f6                	test   %esi,%esi
40df0c:	0f 88 e3 06 00 00    	js     0x40e5f5
40df12:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40df15:	83 c0 04             	add    $0x4,%eax
40df18:	50                   	push   %eax
40df19:	68 e0 01 45 00       	push   $0x4501e0
40df1e:	ff 75 fc             	push   -0x4(%ebp)
40df21:	e8 b5 54 03 00       	call   0x4433db
40df26:	8b f0                	mov    %eax,%esi
40df28:	85 f6                	test   %esi,%esi
40df2a:	0f 88 7c 06 00 00    	js     0x40e5ac
40df30:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40df33:	85 c9                	test   %ecx,%ecx
40df35:	74 0a                	je     0x40df41
40df37:	8b 01                	mov    (%ecx),%eax
40df39:	51                   	push   %ecx
40df3a:	ff 50 08             	call   *0x8(%eax)
40df3d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40df41:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40df45:	74 0d                	je     0x40df54
40df47:	ff 75 f8             	push   -0x8(%ebp)
40df4a:	ff 15 20 b3 44 00    	call   *0x44b320
40df50:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40df54:	47                   	inc    %edi
40df55:	3b 7d ec             	cmp    -0x14(%ebp),%edi
40df58:	0f 82 78 ff ff ff    	jb     0x40ded6
40df5e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40df61:	85 c9                	test   %ecx,%ecx
40df63:	74 0a                	je     0x40df6f
40df65:	8b 01                	mov    (%ecx),%eax
40df67:	51                   	push   %ecx
40df68:	ff 50 08             	call   *0x8(%eax)
40df6b:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40df6f:	8d 45 f0             	lea    -0x10(%ebp),%eax
40df72:	50                   	push   %eax
40df73:	68 08 02 45 00       	push   $0x450208
40df78:	ff 75 10             	push   0x10(%ebp)
40df7b:	e8 83 58 03 00       	call   0x443803
40df80:	8b f0                	mov    %eax,%esi
40df82:	85 f6                	test   %esi,%esi
40df84:	79 0a                	jns    0x40df90
40df86:	68 90 02 45 00       	push   $0x450290
40df8b:	e9 04 06 00 00       	jmp    0x40e594
40df90:	8b 45 f0             	mov    -0x10(%ebp),%eax
40df93:	8d 55 ec             	lea    -0x14(%ebp),%edx
40df96:	52                   	push   %edx
40df97:	50                   	push   %eax
40df98:	8b 08                	mov    (%eax),%ecx
40df9a:	ff 51 20             	call   *0x20(%ecx)
40df9d:	8b f0                	mov    %eax,%esi
40df9f:	85 f6                	test   %esi,%esi
40dfa1:	79 0a                	jns    0x40dfad
40dfa3:	68 b0 02 45 00       	push   $0x4502b0
40dfa8:	e9 e7 05 00 00       	jmp    0x40e594
40dfad:	8b 45 ec             	mov    -0x14(%ebp),%eax
40dfb0:	85 c0                	test   %eax,%eax
40dfb2:	0f 84 4b 06 00 00    	je     0x40e603
40dfb8:	69 c0 e0 00 00 00    	imul   $0xe0,%eax,%eax
40dfbe:	6a 01                	push   $0x1
40dfc0:	50                   	push   %eax
40dfc1:	e8 0e 59 ff ff       	call   0x4038d4
40dfc6:	89 43 08             	mov    %eax,0x8(%ebx)
40dfc9:	85 c0                	test   %eax,%eax
40dfcb:	75 1e                	jne    0x40dfeb
40dfcd:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40dfd2:	57                   	push   %edi
40dfd3:	6a 5f                	push   $0x5f
40dfd5:	68 98 01 45 00       	push   $0x450198
40dfda:	8b f7                	mov    %edi,%esi
40dfdc:	e8 f2 57 ff ff       	call   0x4037d3
40dfe1:	68 d4 02 45 00       	push   $0x4502d4
40dfe6:	e9 7e 04 00 00       	jmp    0x40e469
40dfeb:	8b 45 ec             	mov    -0x14(%ebp),%eax
40dfee:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40dff2:	89 43 0c             	mov    %eax,0xc(%ebx)
40dff5:	85 c0                	test   %eax,%eax
40dff7:	0f 84 83 05 00 00    	je     0x40e580
40dffd:	33 c9                	xor    %ecx,%ecx
40dfff:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40e002:	8b 7b 08             	mov    0x8(%ebx),%edi
40e005:	8d 45 f8             	lea    -0x8(%ebp),%eax
40e008:	50                   	push   %eax
40e009:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e00c:	03 f9                	add    %ecx,%edi
40e00e:	50                   	push   %eax
40e00f:	ff 75 f0             	push   -0x10(%ebp)
40e012:	e8 49 57 03 00       	call   0x443760
40e017:	8b f0                	mov    %eax,%esi
40e019:	85 f6                	test   %esi,%esi
40e01b:	0f 88 db 05 00 00    	js     0x40e5fc
40e021:	57                   	push   %edi
40e022:	68 64 ca 44 00       	push   $0x44ca64
40e027:	ff 75 fc             	push   -0x4(%ebp)
40e02a:	e8 98 51 03 00       	call   0x4431c7
40e02f:	8b f0                	mov    %eax,%esi
40e031:	85 f6                	test   %esi,%esi
40e033:	0f 88 bc 05 00 00    	js     0x40e5f5
40e039:	8d 45 f4             	lea    -0xc(%ebp),%eax
40e03c:	50                   	push   %eax
40e03d:	68 04 03 45 00       	push   $0x450304
40e042:	ff 75 fc             	push   -0x4(%ebp)
40e045:	e8 7d 51 03 00       	call   0x4431c7
40e04a:	8b f0                	mov    %eax,%esi
40e04c:	85 f6                	test   %esi,%esi
40e04e:	0f 88 9a 05 00 00    	js     0x40e5ee
40e054:	8b 35 28 b1 44 00    	mov    0x44b128,%esi
40e05a:	6a ff                	push   $0xffffffff
40e05c:	68 10 03 45 00       	push   $0x450310
40e061:	6a ff                	push   $0xffffffff
40e063:	ff 75 f4             	push   -0xc(%ebp)
40e066:	6a 00                	push   $0x0
40e068:	6a 7f                	push   $0x7f
40e06a:	ff d6                	call   *%esi
40e06c:	83 f8 02             	cmp    $0x2,%eax
40e06f:	75 06                	jne    0x40e077
40e071:	83 67 20 00          	andl   $0x0,0x20(%edi)
40e075:	eb 40                	jmp    0x40e0b7
40e077:	6a ff                	push   $0xffffffff
40e079:	68 18 03 45 00       	push   $0x450318
40e07e:	6a ff                	push   $0xffffffff
40e080:	ff 75 f4             	push   -0xc(%ebp)
40e083:	6a 00                	push   $0x0
40e085:	6a 7f                	push   $0x7f
40e087:	ff d6                	call   *%esi
40e089:	83 f8 02             	cmp    $0x2,%eax
40e08c:	75 09                	jne    0x40e097
40e08e:	c7 47 20 01 00 00 00 	movl   $0x1,0x20(%edi)
40e095:	eb 20                	jmp    0x40e0b7
40e097:	6a ff                	push   $0xffffffff
40e099:	68 20 03 45 00       	push   $0x450320
40e09e:	6a ff                	push   $0xffffffff
40e0a0:	ff 75 f4             	push   -0xc(%ebp)
40e0a3:	6a 00                	push   $0x0
40e0a5:	6a 7f                	push   $0x7f
40e0a7:	ff d6                	call   *%esi
40e0a9:	6a 02                	push   $0x2
40e0ab:	59                   	pop    %ecx
40e0ac:	3b c1                	cmp    %ecx,%eax
40e0ae:	0f 85 22 05 00 00    	jne    0x40e5d6
40e0b4:	89 4f 20             	mov    %ecx,0x20(%edi)
40e0b7:	8d 47 24             	lea    0x24(%edi),%eax
40e0ba:	50                   	push   %eax
40e0bb:	68 60 03 45 00       	push   $0x450360
40e0c0:	ff 75 fc             	push   -0x4(%ebp)
40e0c3:	e8 ff 50 03 00       	call   0x4431c7
40e0c8:	8b f0                	mov    %eax,%esi
40e0ca:	85 f6                	test   %esi,%esi
40e0cc:	0f 88 fd 04 00 00    	js     0x40e5cf
40e0d2:	8d 47 30             	lea    0x30(%edi),%eax
40e0d5:	50                   	push   %eax
40e0d6:	68 88 03 45 00       	push   $0x450388
40e0db:	ff 75 fc             	push   -0x4(%ebp)
40e0de:	e8 b8 51 03 00       	call   0x44329b
40e0e3:	8b f0                	mov    %eax,%esi
40e0e5:	85 f6                	test   %esi,%esi
40e0e7:	0f 88 db 04 00 00    	js     0x40e5c8
40e0ed:	8d 47 28             	lea    0x28(%edi),%eax
40e0f0:	50                   	push   %eax
40e0f1:	68 ac 03 45 00       	push   $0x4503ac
40e0f6:	ff 75 fc             	push   -0x4(%ebp)
40e0f9:	e8 9d 51 03 00       	call   0x44329b
40e0fe:	8b f0                	mov    %eax,%esi
40e100:	85 f6                	test   %esi,%esi
40e102:	0f 88 b9 04 00 00    	js     0x40e5c1
40e108:	8d 47 14             	lea    0x14(%edi),%eax
40e10b:	50                   	push   %eax
40e10c:	68 e0 03 45 00       	push   $0x4503e0
40e111:	ff 75 fc             	push   -0x4(%ebp)
40e114:	e8 c2 52 03 00       	call   0x4433db
40e119:	8b f0                	mov    %eax,%esi
40e11b:	85 f6                	test   %esi,%esi
40e11d:	0f 88 97 04 00 00    	js     0x40e5ba
40e123:	8d 47 18             	lea    0x18(%edi),%eax
40e126:	50                   	push   %eax
40e127:	68 14 04 45 00       	push   $0x450414
40e12c:	ff 75 fc             	push   -0x4(%ebp)
40e12f:	e8 a7 52 03 00       	call   0x4433db
40e134:	8b f0                	mov    %eax,%esi
40e136:	85 f6                	test   %esi,%esi
40e138:	0f 88 75 04 00 00    	js     0x40e5b3
40e13e:	33 c0                	xor    %eax,%eax
40e140:	39 47 18             	cmp    %eax,0x18(%edi)
40e143:	0f 94 c0             	sete   %al
40e146:	89 47 18             	mov    %eax,0x18(%edi)
40e149:	8d 47 1c             	lea    0x1c(%edi),%eax
40e14c:	50                   	push   %eax
40e14d:	68 e0 01 45 00       	push   $0x4501e0
40e152:	ff 75 fc             	push   -0x4(%ebp)
40e155:	e8 81 52 03 00       	call   0x4433db
40e15a:	8b f0                	mov    %eax,%esi
40e15c:	85 f6                	test   %esi,%esi
40e15e:	0f 88 48 04 00 00    	js     0x40e5ac
40e164:	8d 47 04             	lea    0x4(%edi),%eax
40e167:	50                   	push   %eax
40e168:	68 44 04 45 00       	push   $0x450444
40e16d:	ff 75 fc             	push   -0x4(%ebp)
40e170:	e8 52 50 03 00       	call   0x4431c7
40e175:	8b f0                	mov    %eax,%esi
40e177:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40e17d:	74 08                	je     0x40e187
40e17f:	85 f6                	test   %esi,%esi
40e181:	0f 88 50 02 00 00    	js     0x40e3d7
40e187:	8d 47 08             	lea    0x8(%edi),%eax
40e18a:	50                   	push   %eax
40e18b:	68 84 04 45 00       	push   $0x450484
40e190:	ff 75 fc             	push   -0x4(%ebp)
40e193:	e8 2f 50 03 00       	call   0x4431c7
40e198:	8b f0                	mov    %eax,%esi
40e19a:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40e1a0:	74 08                	je     0x40e1aa
40e1a2:	85 f6                	test   %esi,%esi
40e1a4:	0f 88 37 02 00 00    	js     0x40e3e1
40e1aa:	8d 47 0c             	lea    0xc(%edi),%eax
40e1ad:	50                   	push   %eax
40e1ae:	68 dc 04 45 00       	push   $0x4504dc
40e1b3:	ff 75 fc             	push   -0x4(%ebp)
40e1b6:	e8 0c 50 03 00       	call   0x4431c7
40e1bb:	8b f0                	mov    %eax,%esi
40e1bd:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40e1c3:	74 08                	je     0x40e1cd
40e1c5:	85 f6                	test   %esi,%esi
40e1c7:	0f 88 1e 02 00 00    	js     0x40e3eb
40e1cd:	8d 45 f4             	lea    -0xc(%ebp),%eax
40e1d0:	50                   	push   %eax
40e1d1:	68 24 05 45 00       	push   $0x450524
40e1d6:	ff 75 fc             	push   -0x4(%ebp)
40e1d9:	e8 e9 4f 03 00       	call   0x4431c7
40e1de:	8b f0                	mov    %eax,%esi
40e1e0:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40e1e6:	74 1f                	je     0x40e207
40e1e8:	85 f6                	test   %esi,%esi
40e1ea:	0f 88 12 02 00 00    	js     0x40e402
40e1f0:	8d 47 38             	lea    0x38(%edi),%eax
40e1f3:	50                   	push   %eax
40e1f4:	ff 75 f4             	push   -0xc(%ebp)
40e1f7:	53                   	push   %ebx
40e1f8:	e8 32 f6 ff ff       	call   0x40d82f
40e1fd:	8b f0                	mov    %eax,%esi
40e1ff:	85 f6                	test   %esi,%esi
40e201:	0f 88 ee 01 00 00    	js     0x40e3f5
40e207:	8d 45 f4             	lea    -0xc(%ebp),%eax
40e20a:	50                   	push   %eax
40e20b:	68 b0 05 45 00       	push   $0x4505b0
40e210:	ff 75 fc             	push   -0x4(%ebp)
40e213:	e8 af 4f 03 00       	call   0x4431c7
40e218:	8b f0                	mov    %eax,%esi
40e21a:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40e220:	74 1f                	je     0x40e241
40e222:	85 f6                	test   %esi,%esi
40e224:	0f 88 ef 01 00 00    	js     0x40e419
40e22a:	8d 47 3c             	lea    0x3c(%edi),%eax
40e22d:	50                   	push   %eax
40e22e:	ff 75 f4             	push   -0xc(%ebp)
40e231:	53                   	push   %ebx
40e232:	e8 f8 f5 ff ff       	call   0x40d82f
40e237:	8b f0                	mov    %eax,%esi
40e239:	85 f6                	test   %esi,%esi
40e23b:	0f 88 cb 01 00 00    	js     0x40e40c
40e241:	8b 35 28 b1 44 00    	mov    0x44b128,%esi
40e247:	6a ff                	push   $0xffffffff
40e249:	68 44 06 45 00       	push   $0x450644
40e24e:	6a ff                	push   $0xffffffff
40e250:	ff 75 f8             	push   -0x8(%ebp)
40e253:	6a 00                	push   $0x0
40e255:	6a 7f                	push   $0x7f
40e257:	ff d6                	call   *%esi
40e259:	83 f8 02             	cmp    $0x2,%eax
40e25c:	75 27                	jne    0x40e285
40e25e:	57                   	push   %edi
40e25f:	c7 87 8c 00 00 00 01 	movl   $0x1,0x8c(%edi)
40e266:	00 00 00
40e269:	ff 75 fc             	push   -0x4(%ebp)
40e26c:	e8 3e 43 01 00       	call   0x4225af
40e271:	8b f0                	mov    %eax,%esi
40e273:	85 f6                	test   %esi,%esi
40e275:	0f 89 af 00 00 00    	jns    0x40e32a
40e27b:	68 5c 06 45 00       	push   $0x45065c
40e280:	e9 0f 03 00 00       	jmp    0x40e594
40e285:	6a ff                	push   $0xffffffff
40e287:	68 7c 06 45 00       	push   $0x45067c
40e28c:	6a ff                	push   $0xffffffff
40e28e:	ff 75 f8             	push   -0x8(%ebp)
40e291:	6a 00                	push   $0x0
40e293:	6a 7f                	push   $0x7f
40e295:	ff d6                	call   *%esi
40e297:	6a 02                	push   $0x2
40e299:	59                   	pop    %ecx
40e29a:	3b c1                	cmp    %ecx,%eax
40e29c:	75 1f                	jne    0x40e2bd
40e29e:	57                   	push   %edi
40e29f:	89 8f 8c 00 00 00    	mov    %ecx,0x8c(%edi)
40e2a5:	ff 75 fc             	push   -0x4(%ebp)
40e2a8:	e8 db 65 01 00       	call   0x424888
40e2ad:	8b f0                	mov    %eax,%esi
40e2af:	85 f6                	test   %esi,%esi
40e2b1:	79 77                	jns    0x40e32a
40e2b3:	68 94 06 45 00       	push   $0x450694
40e2b8:	e9 d7 02 00 00       	jmp    0x40e594
40e2bd:	6a ff                	push   $0xffffffff
40e2bf:	68 b4 06 45 00       	push   $0x4506b4
40e2c4:	6a ff                	push   $0xffffffff
40e2c6:	ff 75 f8             	push   -0x8(%ebp)
40e2c9:	6a 00                	push   $0x0
40e2cb:	6a 7f                	push   $0x7f
40e2cd:	ff d6                	call   *%esi
40e2cf:	83 f8 02             	cmp    $0x2,%eax
40e2d2:	75 22                	jne    0x40e2f6
40e2d4:	57                   	push   %edi
40e2d5:	c7 87 8c 00 00 00 03 	movl   $0x3,0x8c(%edi)
40e2dc:	00 00 00
40e2df:	ff 75 fc             	push   -0x4(%ebp)
40e2e2:	e8 53 81 01 00       	call   0x42643a
40e2e7:	8b f0                	mov    %eax,%esi
40e2e9:	85 f6                	test   %esi,%esi
40e2eb:	0f 88 32 01 00 00    	js     0x40e423
40e2f1:	ff 45 e8             	incl   -0x18(%ebp)
40e2f4:	eb 34                	jmp    0x40e32a
40e2f6:	6a ff                	push   $0xffffffff
40e2f8:	68 ec 06 45 00       	push   $0x4506ec
40e2fd:	6a ff                	push   $0xffffffff
40e2ff:	ff 75 f8             	push   -0x8(%ebp)
40e302:	6a 00                	push   $0x0
40e304:	6a 7f                	push   $0x7f
40e306:	ff d6                	call   *%esi
40e308:	83 f8 02             	cmp    $0x2,%eax
40e30b:	75 1d                	jne    0x40e32a
40e30d:	57                   	push   %edi
40e30e:	c7 87 8c 00 00 00 04 	movl   $0x4,0x8c(%edi)
40e315:	00 00 00
40e318:	ff 75 fc             	push   -0x4(%ebp)
40e31b:	e8 27 8c 01 00       	call   0x426f47