409de7:	8b 07                	mov    (%edi),%eax
409de9:	8b ce                	mov    %esi,%ecx
409deb:	ff 34 98             	push   (%eax,%ebx,4)
409dee:	e8 a0 e6 ff ff       	call   0x408493
409df3:	8b 4e 10             	mov    0x10(%esi),%ecx
409df6:	ba fc 38 40 00       	mov    $0x4038fc,%edx
409dfb:	e8 14 d5 ff ff       	call   0x407314
409e00:	43                   	inc    %ebx
409e01:	3b 5f 08             	cmp    0x8(%edi),%ebx
409e04:	72 d4                	jb     0x409dda
409e06:	8b 5d b8             	mov    -0x48(%ebp),%ebx
409e09:	8b 4e 10             	mov    0x10(%esi),%ecx
409e0c:	ba 18 39 40 00       	mov    $0x403918,%edx
409e11:	e8 fe d4 ff ff       	call   0x407314
409e16:	8d 45 d0             	lea    -0x30(%ebp),%eax
409e19:	50                   	push   %eax
409e1a:	8d 45 bc             	lea    -0x44(%ebp),%eax
409e1d:	50                   	push   %eax
409e1e:	51                   	push   %ecx
409e1f:	6a 1d                	push   $0x1d
409e21:	5a                   	pop    %edx
409e22:	8b cb                	mov    %ebx,%ecx
409e24:	e8 3c e2 ff ff       	call   0x408065
409e29:	85 c0                	test   %eax,%eax
409e2b:	74 0a                	je     0x409e37
409e2d:	68 28 2d 40 00       	push   $0x402d28
409e32:	e9 0b 04 00 00       	jmp    0x40a242
409e37:	8b 7d d0             	mov    -0x30(%ebp),%edi
409e3a:	8b 47 0c             	mov    0xc(%edi),%eax
409e3d:	85 c0                	test   %eax,%eax
409e3f:	0f 84 8b 00 00 00    	je     0x409ed0
409e45:	3d 84 00 00 00       	cmp    $0x84,%eax
409e4a:	74 0a                	je     0x409e56
409e4c:	68 28 2d 40 00       	push   $0x402d28
409e51:	e9 a2 f5 ff ff       	jmp    0x4093f8
409e56:	85 c0                	test   %eax,%eax
409e58:	74 76                	je     0x409ed0
409e5a:	80 7d cf 00          	cmpb   $0x0,-0x31(%ebp)
409e5e:	75 11                	jne    0x409e71
409e60:	8b 4e 10             	mov    0x10(%esi),%ecx
409e63:	ba 90 2e 40 00       	mov    $0x402e90,%edx
409e68:	e8 a7 d4 ff ff       	call   0x407314
409e6d:	c6 45 cf 01          	movb   $0x1,-0x31(%ebp)
409e71:	8b 4e 10             	mov    0x10(%esi),%ecx
409e74:	ba 50 39 40 00       	mov    $0x403950,%edx
409e79:	e8 96 d4 ff ff       	call   0x407314
409e7e:	8b 4e 10             	mov    0x10(%esi),%ecx
409e81:	ba 90 2e 40 00       	mov    $0x402e90,%edx
409e86:	e8 89 d4 ff ff       	call   0x407314
409e8b:	33 c0                	xor    %eax,%eax
409e8d:	39 47 08             	cmp    %eax,0x8(%edi)
409e90:	76 31                	jbe    0x409ec3
409e92:	8b d8                	mov    %eax,%ebx
409e94:	8b 4e 10             	mov    0x10(%esi),%ecx
409e97:	ba 80 39 40 00       	mov    $0x403980,%edx
409e9c:	e8 73 d4 ff ff       	call   0x407314
409ea1:	8b 07                	mov    (%edi),%eax
409ea3:	8b ce                	mov    %esi,%ecx
409ea5:	ff 34 98             	push   (%eax,%ebx,4)
409ea8:	e8 e6 e5 ff ff       	call   0x408493
409ead:	8b 4e 10             	mov    0x10(%esi),%ecx
409eb0:	ba 9c 39 40 00       	mov    $0x40399c,%edx
409eb5:	e8 5a d4 ff ff       	call   0x407314
409eba:	43                   	inc    %ebx
409ebb:	3b 5f 08             	cmp    0x8(%edi),%ebx
409ebe:	72 d4                	jb     0x409e94
409ec0:	8b 5d b8             	mov    -0x48(%ebp),%ebx
409ec3:	8b 4e 10             	mov    0x10(%esi),%ecx
409ec6:	ba b8 39 40 00       	mov    $0x4039b8,%edx
409ecb:	e8 44 d4 ff ff       	call   0x407314
409ed0:	8d 45 d0             	lea    -0x30(%ebp),%eax
409ed3:	50                   	push   %eax
409ed4:	8d 45 bc             	lea    -0x44(%ebp),%eax
409ed7:	50                   	push   %eax
409ed8:	51                   	push   %ecx
409ed9:	6a 1e                	push   $0x1e
409edb:	5a                   	pop    %edx
409edc:	8b cb                	mov    %ebx,%ecx
409ede:	e8 82 e1 ff ff       	call   0x408065
409ee3:	85 c0                	test   %eax,%eax
409ee5:	74 0a                	je     0x409ef1
409ee7:	68 7c 2d 40 00       	push   $0x402d7c
409eec:	e9 51 03 00 00       	jmp    0x40a242
409ef1:	8b 7d d0             	mov    -0x30(%ebp),%edi
409ef4:	8b 47 0c             	mov    0xc(%edi),%eax
409ef7:	85 c0                	test   %eax,%eax
409ef9:	0f 84 8b 00 00 00    	je     0x409f8a
409eff:	3d 84 00 00 00       	cmp    $0x84,%eax
409f04:	74 0a                	je     0x409f10
409f06:	68 7c 2d 40 00       	push   $0x402d7c
409f0b:	e9 e8 f4 ff ff       	jmp    0x4093f8
409f10:	85 c0                	test   %eax,%eax
409f12:	74 76                	je     0x409f8a
409f14:	80 7d cf 00          	cmpb   $0x0,-0x31(%ebp)
409f18:	75 11                	jne    0x409f2b
409f1a:	8b 4e 10             	mov    0x10(%esi),%ecx
409f1d:	ba 90 2e 40 00       	mov    $0x402e90,%edx
409f22:	e8 ed d3 ff ff       	call   0x407314
409f27:	c6 45 cf 01          	movb   $0x1,-0x31(%ebp)
409f2b:	8b 4e 10             	mov    0x10(%esi),%ecx
409f2e:	ba ec 39 40 00       	mov    $0x4039ec,%edx
409f33:	e8 dc d3 ff ff       	call   0x407314
409f38:	8b 4e 10             	mov    0x10(%esi),%ecx
409f3b:	ba 90 2e 40 00       	mov    $0x402e90,%edx
409f40:	e8 cf d3 ff ff       	call   0x407314
409f45:	33 c0                	xor    %eax,%eax
409f47:	39 47 08             	cmp    %eax,0x8(%edi)
409f4a:	76 31                	jbe    0x409f7d
409f4c:	8b d8                	mov    %eax,%ebx
409f4e:	8b 4e 10             	mov    0x10(%esi),%ecx
409f51:	ba 80 39 40 00       	mov    $0x403980,%edx
409f56:	e8 b9 d3 ff ff       	call   0x407314
409f5b:	8b 07                	mov    (%edi),%eax
409f5d:	8b ce                	mov    %esi,%ecx
409f5f:	ff 34 98             	push   (%eax,%ebx,4)
409f62:	e8 2c e5 ff ff       	call   0x408493
409f67:	8b 4e 10             	mov    0x10(%esi),%ecx
409f6a:	ba 9c 39 40 00       	mov    $0x40399c,%edx
409f6f:	e8 a0 d3 ff ff       	call   0x407314
409f74:	43                   	inc    %ebx
409f75:	3b 5f 08             	cmp    0x8(%edi),%ebx
409f78:	72 d4                	jb     0x409f4e
409f7a:	8b 5d b8             	mov    -0x48(%ebp),%ebx
409f7d:	8b 4e 10             	mov    0x10(%esi),%ecx
409f80:	ba 18 3a 40 00       	mov    $0x403a18,%edx
409f85:	e8 8a d3 ff ff       	call   0x407314
409f8a:	80 7d cf 00          	cmpb   $0x0,-0x31(%ebp)
409f8e:	74 0d                	je     0x409f9d
409f90:	8b 4e 10             	mov    0x10(%esi),%ecx
409f93:	ba 48 3a 40 00       	mov    $0x403a48,%edx
409f98:	e8 77 d3 ff ff       	call   0x407314
409f9d:	8b 4e 10             	mov    0x10(%esi),%ecx
409fa0:	ba 50 3a 40 00       	mov    $0x403a50,%edx
409fa5:	e8 6a d3 ff ff       	call   0x407314
409faa:	8d 45 d0             	lea    -0x30(%ebp),%eax
409fad:	50                   	push   %eax
409fae:	8d 45 bc             	lea    -0x44(%ebp),%eax
409fb1:	50                   	push   %eax
409fb2:	51                   	push   %ecx
409fb3:	6a 1f                	push   $0x1f
409fb5:	5a                   	pop    %edx
409fb6:	8b cb                	mov    %ebx,%ecx
409fb8:	e8 a8 e0 ff ff       	call   0x408065
409fbd:	85 c0                	test   %eax,%eax
409fbf:	74 0a                	je     0x409fcb
409fc1:	68 cc 2d 40 00       	push   $0x402dcc
409fc6:	e9 77 02 00 00       	jmp    0x40a242
409fcb:	8b 7d d0             	mov    -0x30(%ebp),%edi
409fce:	8b 47 0c             	mov    0xc(%edi),%eax
409fd1:	85 c0                	test   %eax,%eax
409fd3:	0f 84 31 02 00 00    	je     0x40a20a
409fd9:	83 f8 04             	cmp    $0x4,%eax
409fdc:	74 0a                	je     0x409fe8
409fde:	68 cc 2d 40 00       	push   $0x402dcc
409fe3:	e9 10 f4 ff ff       	jmp    0x4093f8
409fe8:	85 c0                	test   %eax,%eax
409fea:	0f 84 1a 02 00 00    	je     0x40a20a
409ff0:	8b 4e 10             	mov    0x10(%esi),%ecx
409ff3:	ba a0 3a 40 00       	mov    $0x403aa0,%edx
409ff8:	e8 17 d3 ff ff       	call   0x407314
409ffd:	ff 37                	push   (%edi)
409fff:	8b ce                	mov    %esi,%ecx
40a001:	e8 8d e4 ff ff       	call   0x408493
40a006:	8b 4e 10             	mov    0x10(%esi),%ecx
40a009:	ba e0 3a 40 00       	mov    $0x403ae0,%edx
40a00e:	e8 01 d3 ff ff       	call   0x407314
40a013:	8b 45 b4             	mov    -0x4c(%ebp),%eax
40a016:	83 f8 01             	cmp    $0x1,%eax
40a019:	0f 85 eb 01 00 00    	jne    0x40a20a
40a01f:	33 c0                	xor    %eax,%eax
40a021:	33 d2                	xor    %edx,%edx
40a023:	89 45 b8             	mov    %eax,-0x48(%ebp)
40a026:	42                   	inc    %edx
40a027:	89 45 c8             	mov    %eax,-0x38(%ebp)
40a02a:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a02d:	50                   	push   %eax
40a02e:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a031:	50                   	push   %eax
40a032:	51                   	push   %ecx
40a033:	8b cb                	mov    %ebx,%ecx
40a035:	e8 2b e0 ff ff       	call   0x408065
40a03a:	85 c0                	test   %eax,%eax
40a03c:	74 0a                	je     0x40a048
40a03e:	68 50 2e 40 00       	push   $0x402e50
40a043:	e9 fa 01 00 00       	jmp    0x40a242
40a048:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40a04b:	8b 41 0c             	mov    0xc(%ecx),%eax
40a04e:	85 c0                	test   %eax,%eax
40a050:	74 1a                	je     0x40a06c
40a052:	83 f8 05             	cmp    $0x5,%eax
40a055:	74 0a                	je     0x40a061
40a057:	68 50 2e 40 00       	push   $0x402e50
40a05c:	e9 97 f3 ff ff       	jmp    0x4093f8
40a061:	85 c0                	test   %eax,%eax
40a063:	74 07                	je     0x40a06c
40a065:	8b 19                	mov    (%ecx),%ebx
40a067:	89 5d c8             	mov    %ebx,-0x38(%ebp)
40a06a:	eb 03                	jmp    0x40a06f
40a06c:	8b 5d c8             	mov    -0x38(%ebp),%ebx
40a06f:	8d 45 b8             	lea    -0x48(%ebp),%eax
40a072:	50                   	push   %eax
40a073:	53                   	push   %ebx
40a074:	ff 15 24 20 41 00    	call   *0x412024
40a07a:	85 c0                	test   %eax,%eax
40a07c:	75 10                	jne    0x40a08e
40a07e:	ff 15 70 20 41 00    	call   *0x412070
40a084:	68 6c 2e 40 00       	push   $0x402e6c
40a089:	e9 b4 01 00 00       	jmp    0x40a242
40a08e:	8b 4e 10             	mov    0x10(%esi),%ecx
40a091:	ba 24 3b 40 00       	mov    $0x403b24,%edx
40a096:	e8 79 d2 ff ff       	call   0x407314
40a09b:	33 c0                	xor    %eax,%eax
40a09d:	8b f8                	mov    %eax,%edi
40a09f:	39 45 b8             	cmp    %eax,-0x48(%ebp)
40a0a2:	0f 86 55 01 00 00    	jbe    0x40a1fd
40a0a8:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a0ab:	50                   	push   %eax
40a0ac:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a0af:	50                   	push   %eax
40a0b0:	51                   	push   %ecx
40a0b1:	57                   	push   %edi
40a0b2:	6a 03                	push   $0x3
40a0b4:	5a                   	pop    %edx
40a0b5:	8b cb                	mov    %ebx,%ecx
40a0b7:	e8 3f e0 ff ff       	call   0x4080fb
40a0bc:	85 c0                	test   %eax,%eax
40a0be:	0f 85 32 01 00 00    	jne    0x40a1f6
40a0c4:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40a0c7:	8b 41 0c             	mov    0xc(%ecx),%eax
40a0ca:	85 c0                	test   %eax,%eax
40a0cc:	74 18                	je     0x40a0e6
40a0ce:	83 f8 01             	cmp    $0x1,%eax
40a0d1:	0f 85 f3 00 00 00    	jne    0x40a1ca
40a0d7:	85 c0                	test   %eax,%eax
40a0d9:	74 0b                	je     0x40a0e6
40a0db:	33 c0                	xor    %eax,%eax
40a0dd:	39 01                	cmp    %eax,(%ecx)
40a0df:	b8 8c 24 40 00       	mov    $0x40248c,%eax
40a0e4:	74 05                	je     0x40a0eb
40a0e6:	b8 80 24 40 00       	mov    $0x402480,%eax
40a0eb:	50                   	push   %eax
40a0ec:	68 48 3b 40 00       	push   $0x403b48
40a0f1:	56                   	push   %esi
40a0f2:	e8 51 e2 ff ff       	call   0x408348
40a0f7:	83 c4 0c             	add    $0xc,%esp
40a0fa:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a0fd:	50                   	push   %eax
40a0fe:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a101:	50                   	push   %eax
40a102:	51                   	push   %ecx
40a103:	57                   	push   %edi
40a104:	6a 02                	push   $0x2
40a106:	5a                   	pop    %edx
40a107:	8b cb                	mov    %ebx,%ecx
40a109:	e8 ed df ff ff       	call   0x4080fb
40a10e:	85 c0                	test   %eax,%eax
40a110:	0f 85 d9 00 00 00    	jne    0x40a1ef
40a116:	8b 45 d0             	mov    -0x30(%ebp),%eax
40a119:	8b 40 0c             	mov    0xc(%eax),%eax
40a11c:	85 c0                	test   %eax,%eax
40a11e:	74 33                	je     0x40a153
40a120:	83 f8 04             	cmp    $0x4,%eax
40a123:	0f 85 ab 00 00 00    	jne    0x40a1d4
40a129:	85 c0                	test   %eax,%eax
40a12b:	74 26                	je     0x40a153
40a12d:	8b 4e 10             	mov    0x10(%esi),%ecx
40a130:	ba 88 3b 40 00       	mov    $0x403b88,%edx
40a135:	e8 da d1 ff ff       	call   0x407314
40a13a:	8b 45 d0             	mov    -0x30(%ebp),%eax
40a13d:	8b ce                	mov    %esi,%ecx
40a13f:	ff 30                	push   (%eax)
40a141:	e8 4d e3 ff ff       	call   0x408493
40a146:	8b 4e 10             	mov    0x10(%esi),%ecx
40a149:	ba a4 3b 40 00       	mov    $0x403ba4,%edx
40a14e:	e8 c1 d1 ff ff       	call   0x407314
40a153:	8d 45 d0             	lea    -0x30(%ebp),%eax
40a156:	50                   	push   %eax
40a157:	8d 45 bc             	lea    -0x44(%ebp),%eax
40a15a:	50                   	push   %eax
40a15b:	51                   	push   %ecx
40a15c:	57                   	push   %edi
40a15d:	6a 04                	push   $0x4
40a15f:	5a                   	pop    %edx
40a160:	8b cb                	mov    %ebx,%ecx
40a162:	e8 94 df ff ff       	call   0x4080fb
40a167:	85 c0                	test   %eax,%eax
40a169:	75 7d                	jne    0x40a1e8
40a16b:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40a16e:	8b 43 0c             	mov    0xc(%ebx),%eax
40a171:	85 c0                	test   %eax,%eax
40a173:	74 05                	je     0x40a17a
40a175:	83 f8 04             	cmp    $0x4,%eax
40a178:	75 64                	jne    0x40a1de
40a17a:	83 f8 04             	cmp    $0x4,%eax
40a17d:	75 30                	jne    0x40a1af
40a17f:	8b 03                	mov    (%ebx),%eax
40a181:	85 c0                	test   %eax,%eax
40a183:	74 2a                	je     0x40a1af
40a185:	33 c9                	xor    %ecx,%ecx
40a187:	66 39 08             	cmp    %cx,(%eax)
40a18a:	74 23                	je     0x40a1af
40a18c:	8b 4e 10             	mov    0x10(%esi),%ecx
40a18f:	ba c0 3b 40 00       	mov    $0x403bc0,%edx
40a194:	e8 7b d1 ff ff       	call   0x407314
40a199:	ff 33                	push   (%ebx)
40a19b:	8b ce                	mov    %esi,%ecx
40a19d:	e8 f1 e2 ff ff       	call   0x408493
40a1a2:	8b 4e 10             	mov    0x10(%esi),%ecx
40a1a5:	ba dc 3b 40 00       	mov    $0x403bdc,%edx
40a1aa:	e8 65 d1 ff ff       	call   0x407314
40a1af:	8b 4e 10             	mov    0x10(%esi),%ecx
40a1b2:	ba f8 3b 40 00       	mov    $0x403bf8,%edx
40a1b7:	e8 58 d1 ff ff       	call   0x407314
40a1bc:	47                   	inc    %edi
40a1bd:	3b 7d b8             	cmp    -0x48(%ebp),%edi
40a1c0:	73 3b                	jae    0x40a1fd
40a1c2:	8b 5d c8             	mov    -0x38(%ebp),%ebx
40a1c5:	e9 de fe ff ff       	jmp    0x40a0a8
40a1ca:	68 08 2f 40 00       	push   $0x402f08
40a1cf:	e9 24 f2 ff ff       	jmp    0x4093f8
40a1d4:	68 c0 2e 40 00       	push   $0x402ec0
40a1d9:	e9 1a f2 ff ff       	jmp    0x4093f8
40a1de:	68 50 2f 40 00       	push   $0x402f50
40a1e3:	e9 10 f2 ff ff       	jmp    0x4093f8
40a1e8:	68 50 2f 40 00       	push   $0x402f50
40a1ed:	eb 53                	jmp    0x40a242
40a1ef:	68 c0 2e 40 00       	push   $0x402ec0
40a1f4:	eb 4c                	jmp    0x40a242
40a1f6:	68 08 2f 40 00       	push   $0x402f08
40a1fb:	eb 45                	jmp    0x40a242
40a1fd:	8b 4e 10             	mov    0x10(%esi),%ecx
40a200:	ba 20 3c 40 00       	mov    $0x403c20,%edx
40a205:	e8 0a d1 ff ff       	call   0x407314
40a20a:	8b 4e 10             	mov    0x10(%esi),%ecx
40a20d:	ba 48 3c 40 00       	mov    $0x403c48,%edx
40a212:	e8 fd d0 ff ff       	call   0x407314
40a217:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40a21a:	e8 f8 bc ff ff       	call   0x405f17
40a21f:	8d 4d a0             	lea    -0x60(%ebp),%ecx
40a222:	e8 3c bc ff ff       	call   0x405e63
40a227:	e8 04 44 00 00       	call   0x40e630
40a22c:	c3                   	ret
40a22d:	ff 15 70 20 41 00    	call   *0x412070
40a233:	6a 08                	push   $0x8
40a235:	5a                   	pop    %edx
40a236:	8b c8                	mov    %eax,%ecx
40a238:	e8 a6 d3 ff ff       	call   0x4075e3
40a23d:	68 f8 26 40 00       	push   $0x4026f8
40a242:	6a 0e                	push   $0xe
40a244:	50                   	push   %eax