41a089:	00
41a08a:	e8 6d 05 00 00       	call   0x41a5fc
41a08f:	8b 46 b0             	mov    -0x50(%esi),%eax
41a092:	8b 40 04             	mov    0x4(%eax),%eax
41a095:	c7 44 30 b0 bc 11 40 	movl   $0x4011bc,-0x50(%eax,%esi,1)
41a09c:	00
41a09d:	5e                   	pop    %esi
41a09e:	c3                   	ret
41a09f:	6a 08                	push   $0x8
41a0a1:	b8 05 12 49 00       	mov    $0x491205,%eax
41a0a6:	e8 28 64 07 00       	call   0x4904d3
41a0ab:	8b f9                	mov    %ecx,%edi
41a0ad:	89 7d ec             	mov    %edi,-0x14(%ebp)
41a0b0:	33 c9                	xor    %ecx,%ecx
41a0b2:	89 4d f0             	mov    %ecx,-0x10(%ebp)
41a0b5:	c7 07 2c fa 40 00    	movl   $0x40fa2c,(%edi)
41a0bb:	c7 47 50 fc 11 40 00 	movl   $0x4011fc,0x50(%edi)
41a0c2:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41a0c5:	8d 77 08             	lea    0x8(%edi),%esi
41a0c8:	8b 07                	mov    (%edi),%eax
41a0ca:	51                   	push   %ecx
41a0cb:	56                   	push   %esi
41a0cc:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
41a0d3:	8b 40 04             	mov    0x4(%eax),%eax
41a0d6:	c7 04 07 bc 11 40 00 	movl   $0x4011bc,(%edi,%eax,1)
41a0dd:	8b 07                	mov    (%edi),%eax
41a0df:	89 4f 04             	mov    %ecx,0x4(%edi)
41a0e2:	8b 48 04             	mov    0x4(%eax),%ecx
41a0e5:	03 cf                	add    %edi,%ecx
41a0e7:	e8 03 0e 00 00       	call   0x41aeef
41a0ec:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
41a0f3:	8b ce                	mov    %esi,%ecx
41a0f5:	8b 07                	mov    (%edi),%eax
41a0f7:	6a 01                	push   $0x1
41a0f9:	ff 75 08             	push   0x8(%ebp)
41a0fc:	8b 40 04             	mov    0x4(%eax),%eax
41a0ff:	c7 04 07 c4 11 40 00 	movl   $0x4011c4,(%edi,%eax,1)
41a106:	e8 1f 09 00 00       	call   0x41aa2a
41a10b:	8b c7                	mov    %edi,%eax
41a10d:	e8 8f 63 07 00       	call   0x4904a1
41a112:	c2 0c 00             	ret    $0xc
41a115:	cc                   	int3
41a116:	cc                   	int3
41a117:	cc                   	int3
41a118:	cc                   	int3
41a119:	cc                   	int3
41a11a:	cc                   	int3
41a11b:	cc                   	int3
41a11c:	cc                   	int3
41a11d:	cc                   	int3
41a11e:	cc                   	int3
41a11f:	cc                   	int3
41a120:	8b ff                	mov    %edi,%edi
41a122:	55                   	push   %ebp
41a123:	8b ec                	mov    %esp,%ebp
41a125:	56                   	push   %esi
41a126:	8b f1                	mov    %ecx,%esi
41a128:	57                   	push   %edi
41a129:	8b 7d 14             	mov    0x14(%ebp),%edi
41a12c:	03 7d 0c             	add    0xc(%ebp),%edi
41a12f:	8b 4e 24             	mov    0x24(%esi),%ecx
41a132:	8b 01                	mov    (%ecx),%eax
41a134:	85 c0                	test   %eax,%eax
41a136:	74 08                	je     0x41a140
41a138:	39 46 3c             	cmp    %eax,0x3c(%esi)
41a13b:	73 03                	jae    0x41a140
41a13d:	89 46 3c             	mov    %eax,0x3c(%esi)
41a140:	83 ff ff             	cmp    $0xffffffff,%edi
41a143:	0f 84 9c 00 00 00    	je     0x41a1e5
41a149:	f6 45 24 01          	testb  $0x1,0x24(%ebp)
41a14d:	53                   	push   %ebx
41a14e:	74 5d                	je     0x41a1ad
41a150:	8b 46 20             	mov    0x20(%esi),%eax
41a153:	8b 18                	mov    (%eax),%ebx
41a155:	85 db                	test   %ebx,%ebx
41a157:	74 54                	je     0x41a1ad
41a159:	85 ff                	test   %edi,%edi
41a15b:	0f 88 80 00 00 00    	js     0x41a1e1
41a161:	8b 46 10             	mov    0x10(%esi),%eax
41a164:	8b 10                	mov    (%eax),%edx
41a166:	8b 46 3c             	mov    0x3c(%esi),%eax
41a169:	2b c2                	sub    %edx,%eax
41a16b:	d1 f8                	sar    $1,%eax
41a16d:	3b f8                	cmp    %eax,%edi
41a16f:	7f 70                	jg     0x41a1e1
41a171:	8b 46 30             	mov    0x30(%esi),%eax
41a174:	2b d3                	sub    %ebx,%edx
41a176:	d1 fa                	sar    $1,%edx
41a178:	03 d7                	add    %edi,%edx
41a17a:	29 10                	sub    %edx,(%eax)
41a17c:	8b 4e 20             	mov    0x20(%esi),%ecx
41a17f:	8d 04 12             	lea    (%edx,%edx,1),%eax
41a182:	01 01                	add    %eax,(%ecx)
41a184:	f6 45 24 02          	testb  $0x2,0x24(%ebp)
41a188:	74 5a                	je     0x41a1e4
41a18a:	8b 5e 24             	mov    0x24(%esi),%ebx
41a18d:	8b 0b                	mov    (%ebx),%ecx
41a18f:	85 c9                	test   %ecx,%ecx
41a191:	74 51                	je     0x41a1e4
41a193:	8b 46 20             	mov    0x20(%esi),%eax
41a196:	8b 10                	mov    (%eax),%edx
41a198:	8b 46 34             	mov    0x34(%esi),%eax
41a19b:	8b 00                	mov    (%eax),%eax
41a19d:	89 13                	mov    %edx,(%ebx)
41a19f:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
41a1a2:	8b 46 34             	mov    0x34(%esi),%eax
41a1a5:	2b ca                	sub    %edx,%ecx
41a1a7:	d1 f9                	sar    $1,%ecx
41a1a9:	89 08                	mov    %ecx,(%eax)
41a1ab:	eb 37                	jmp    0x41a1e4
41a1ad:	f6 45 24 02          	testb  $0x2,0x24(%ebp)
41a1b1:	74 2e                	je     0x41a1e1
41a1b3:	83 39 00             	cmpl   $0x0,(%ecx)
41a1b6:	74 29                	je     0x41a1e1
41a1b8:	85 ff                	test   %edi,%edi
41a1ba:	78 25                	js     0x41a1e1
41a1bc:	8b 46 10             	mov    0x10(%esi),%eax
41a1bf:	8b 10                	mov    (%eax),%edx
41a1c1:	8b 46 3c             	mov    0x3c(%esi),%eax
41a1c4:	2b c2                	sub    %edx,%eax
41a1c6:	d1 f8                	sar    $1,%eax
41a1c8:	3b f8                	cmp    %eax,%edi
41a1ca:	7f 15                	jg     0x41a1e1
41a1cc:	2b 11                	sub    (%ecx),%edx
41a1ce:	8b 46 34             	mov    0x34(%esi),%eax
41a1d1:	d1 fa                	sar    $1,%edx
41a1d3:	03 d7                	add    %edi,%edx
41a1d5:	29 10                	sub    %edx,(%eax)
41a1d7:	8b 4e 24             	mov    0x24(%esi),%ecx
41a1da:	8d 04 12             	lea    (%edx,%edx,1),%eax
41a1dd:	01 01                	add    %eax,(%ecx)
41a1df:	eb 03                	jmp    0x41a1e4
41a1e1:	83 cf ff             	or     $0xffffffff,%edi
41a1e4:	5b                   	pop    %ebx
41a1e5:	8b 45 08             	mov    0x8(%ebp),%eax
41a1e8:	33 c9                	xor    %ecx,%ecx
41a1ea:	89 38                	mov    %edi,(%eax)
41a1ec:	5f                   	pop    %edi
41a1ed:	89 48 08             	mov    %ecx,0x8(%eax)
41a1f0:	89 48 0c             	mov    %ecx,0xc(%eax)
41a1f3:	89 48 10             	mov    %ecx,0x10(%eax)
41a1f6:	5e                   	pop    %esi
41a1f7:	5d                   	pop    %ebp
41a1f8:	c2 20 00             	ret    $0x20
41a1fb:	cc                   	int3
41a1fc:	cc                   	int3
41a1fd:	cc                   	int3
41a1fe:	cc                   	int3
41a1ff:	cc                   	int3
41a200:	8b ff                	mov    %edi,%edi
41a202:	55                   	push   %ebp
41a203:	8b ec                	mov    %esp,%ebp
41a205:	51                   	push   %ecx
41a206:	53                   	push   %ebx
41a207:	56                   	push   %esi
41a208:	57                   	push   %edi
41a209:	8b f9                	mov    %ecx,%edi
41a20b:	8b 4f 24             	mov    0x24(%edi),%ecx
41a20e:	8b 01                	mov    (%ecx),%eax
41a210:	85 c0                	test   %eax,%eax
41a212:	74 08                	je     0x41a21c
41a214:	39 47 3c             	cmp    %eax,0x3c(%edi)
41a217:	73 03                	jae    0x41a21c
41a219:	89 47 3c             	mov    %eax,0x3c(%edi)
41a21c:	8b 5d 14             	mov    0x14(%ebp),%ebx
41a21f:	f6 c3 01             	test   $0x1,%bl
41a222:	0f 84 a3 00 00 00    	je     0x41a2cb
41a228:	8b 47 20             	mov    0x20(%edi),%eax
41a22b:	8b 10                	mov    (%eax),%edx
41a22d:	89 55 fc             	mov    %edx,-0x4(%ebp)
41a230:	85 d2                	test   %edx,%edx
41a232:	0f 84 93 00 00 00    	je     0x41a2cb
41a238:	8b 45 10             	mov    0x10(%ebp),%eax
41a23b:	83 f8 02             	cmp    $0x2,%eax
41a23e:	75 05                	jne    0x41a245
41a240:	8b 4f 3c             	mov    0x3c(%edi),%ecx
41a243:	eb 0c                	jmp    0x41a251
41a245:	83 f8 01             	cmp    $0x1,%eax
41a248:	75 15                	jne    0x41a25f
41a24a:	f6 c3 02             	test   $0x2,%bl
41a24d:	75 14                	jne    0x41a263
41a24f:	8b ca                	mov    %edx,%ecx
41a251:	8b 47 10             	mov    0x10(%edi),%eax
41a254:	8b 75 0c             	mov    0xc(%ebp),%esi
41a257:	2b 08                	sub    (%eax),%ecx
41a259:	d1 f9                	sar    $1,%ecx
41a25b:	03 f1                	add    %ecx,%esi
41a25d:	eb 0c                	jmp    0x41a26b
41a25f:	85 c0                	test   %eax,%eax
41a261:	74 05                	je     0x41a268
41a263:	83 ce ff             	or     $0xffffffff,%esi
41a266:	eb 03                	jmp    0x41a26b
41a268:	8b 75 0c             	mov    0xc(%ebp),%esi
41a26b:	85 f6                	test   %esi,%esi
41a26d:	0f 88 bc 00 00 00    	js     0x41a32f
41a273:	8b 47 10             	mov    0x10(%edi),%eax
41a276:	8b 10                	mov    (%eax),%edx
41a278:	8b 47 3c             	mov    0x3c(%edi),%eax
41a27b:	2b c2                	sub    %edx,%eax
41a27d:	d1 f8                	sar    $1,%eax
41a27f:	3b f0                	cmp    %eax,%esi
41a281:	0f 8f a8 00 00 00    	jg     0x41a32f
41a287:	2b 55 fc             	sub    -0x4(%ebp),%edx
41a28a:	8b 47 30             	mov    0x30(%edi),%eax
41a28d:	d1 fa                	sar    $1,%edx
41a28f:	03 d6                	add    %esi,%edx
41a291:	29 10                	sub    %edx,(%eax)
41a293:	8b 4f 20             	mov    0x20(%edi),%ecx
41a296:	8d 04 12             	lea    (%edx,%edx,1),%eax
41a299:	01 01                	add    %eax,(%ecx)
41a29b:	f6 c3 02             	test   $0x2,%bl
41a29e:	0f 84 8e 00 00 00    	je     0x41a332
41a2a4:	8b 5f 24             	mov    0x24(%edi),%ebx
41a2a7:	8b 0b                	mov    (%ebx),%ecx
41a2a9:	85 c9                	test   %ecx,%ecx
41a2ab:	0f 84 81 00 00 00    	je     0x41a332
41a2b1:	8b 47 20             	mov    0x20(%edi),%eax
41a2b4:	8b 10                	mov    (%eax),%edx
41a2b6:	8b 47 34             	mov    0x34(%edi),%eax
41a2b9:	8b 00                	mov    (%eax),%eax
41a2bb:	89 13                	mov    %edx,(%ebx)
41a2bd:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
41a2c0:	8b 47 34             	mov    0x34(%edi),%eax
41a2c3:	2b ca                	sub    %edx,%ecx
41a2c5:	d1 f9                	sar    $1,%ecx
41a2c7:	89 08                	mov    %ecx,(%eax)
41a2c9:	eb 67                	jmp    0x41a332
41a2cb:	f6 c3 02             	test   $0x2,%bl
41a2ce:	74 5f                	je     0x41a32f
41a2d0:	83 39 00             	cmpl   $0x0,(%ecx)
41a2d3:	74 5a                	je     0x41a32f
41a2d5:	8b 45 10             	mov    0x10(%ebp),%eax
41a2d8:	83 f8 02             	cmp    $0x2,%eax
41a2db:	75 05                	jne    0x41a2e2
41a2dd:	8b 4f 3c             	mov    0x3c(%edi),%ecx
41a2e0:	eb 07                	jmp    0x41a2e9
41a2e2:	83 f8 01             	cmp    $0x1,%eax
41a2e5:	75 13                	jne    0x41a2fa
41a2e7:	8b 09                	mov    (%ecx),%ecx
41a2e9:	8b 47 10             	mov    0x10(%edi),%eax
41a2ec:	8b 75 0c             	mov    0xc(%ebp),%esi
41a2ef:	2b 08                	sub    (%eax),%ecx
41a2f1:	d1 f9                	sar    $1,%ecx
41a2f3:	03 f1                	add    %ecx,%esi
41a2f5:	8b 4f 24             	mov    0x24(%edi),%ecx
41a2f8:	eb 0c                	jmp    0x41a306
41a2fa:	85 c0                	test   %eax,%eax
41a2fc:	74 05                	je     0x41a303
41a2fe:	83 ce ff             	or     $0xffffffff,%esi
41a301:	eb 03                	jmp    0x41a306
41a303:	8b 75 0c             	mov    0xc(%ebp),%esi
41a306:	85 f6                	test   %esi,%esi
41a308:	78 25                	js     0x41a32f
41a30a:	8b 47 10             	mov    0x10(%edi),%eax
41a30d:	8b 10                	mov    (%eax),%edx
41a30f:	8b 47 3c             	mov    0x3c(%edi),%eax
41a312:	2b c2                	sub    %edx,%eax
41a314:	d1 f8                	sar    $1,%eax
41a316:	3b f0                	cmp    %eax,%esi
41a318:	7f 15                	jg     0x41a32f
41a31a:	2b 11                	sub    (%ecx),%edx
41a31c:	8b 47 34             	mov    0x34(%edi),%eax
41a31f:	d1 fa                	sar    $1,%edx
41a321:	03 d6                	add    %esi,%edx
41a323:	29 10                	sub    %edx,(%eax)
41a325:	8b 4f 24             	mov    0x24(%edi),%ecx
41a328:	8d 04 12             	lea    (%edx,%edx,1),%eax
41a32b:	01 01                	add    %eax,(%ecx)
41a32d:	eb 03                	jmp    0x41a332
41a32f:	83 ce ff             	or     $0xffffffff,%esi
41a332:	8b 45 08             	mov    0x8(%ebp),%eax
41a335:	33 c9                	xor    %ecx,%ecx
41a337:	5f                   	pop    %edi
41a338:	89 30                	mov    %esi,(%eax)
41a33a:	5e                   	pop    %esi
41a33b:	89 48 08             	mov    %ecx,0x8(%eax)
41a33e:	89 48 0c             	mov    %ecx,0xc(%eax)
41a341:	89 48 10             	mov    %ecx,0x10(%eax)
41a344:	5b                   	pop    %ebx
41a345:	c9                   	leave
41a346:	c2 10 00             	ret    $0x10
41a349:	cc                   	int3
41a34a:	cc                   	int3
41a34b:	cc                   	int3
41a34c:	cc                   	int3
41a34d:	cc                   	int3
41a34e:	cc                   	int3
41a34f:	cc                   	int3
41a350:	8b ff                	mov    %edi,%edi
41a352:	53                   	push   %ebx
41a353:	56                   	push   %esi
41a354:	8b f1                	mov    %ecx,%esi
41a356:	57                   	push   %edi
41a357:	8b 7e 20             	mov    0x20(%esi),%edi
41a35a:	8b 17                	mov    (%edi),%edx
41a35c:	85 d2                	test   %edx,%edx
41a35e:	74 47                	je     0x41a3a7
41a360:	8b 5e 30             	mov    0x30(%esi),%ebx
41a363:	8b 0b                	mov    (%ebx),%ecx
41a365:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
41a368:	3b d1                	cmp    %ecx,%edx
41a36a:	73 05                	jae    0x41a371
41a36c:	66 8b 02             	mov    (%edx),%ax
41a36f:	eb 3b                	jmp    0x41a3ac
41a371:	f6 46 40 04          	testb  $0x4,0x40(%esi)
41a375:	75 30                	jne    0x41a3a7
41a377:	8b 46 24             	mov    0x24(%esi),%eax
41a37a:	8b 08                	mov    (%eax),%ecx
41a37c:	85 c9                	test   %ecx,%ecx
41a37e:	74 27                	je     0x41a3a7
41a380:	3b ca                	cmp    %edx,%ecx
41a382:	77 05                	ja     0x41a389
41a384:	39 56 3c             	cmp    %edx,0x3c(%esi)
41a387:	76 1e                	jbe    0x41a3a7
41a389:	8b 46 3c             	mov    0x3c(%esi),%eax
41a38c:	3b c1                	cmp    %ecx,%eax
41a38e:	73 07                	jae    0x41a397
41a390:	89 4e 3c             	mov    %ecx,0x3c(%esi)
41a393:	8b c1                	mov    %ecx,%eax
41a395:	8b 17                	mov    (%edi),%edx
41a397:	2b c2                	sub    %edx,%eax
41a399:	d1 f8                	sar    $1,%eax
41a39b:	89 03                	mov    %eax,(%ebx)
41a39d:	8b 46 20             	mov    0x20(%esi),%eax
41a3a0:	8b 00                	mov    (%eax),%eax
41a3a2:	66 8b 00             	mov    (%eax),%ax
41a3a5:	eb 05                	jmp    0x41a3ac
41a3a7:	b8 ff ff 00 00       	mov    $0xffff,%eax
41a3ac:	5f                   	pop    %edi
41a3ad:	5e                   	pop    %esi
41a3ae:	5b                   	pop    %ebx
41a3af:	c3                   	ret
41a3b0:	8b ff                	mov    %edi,%edi
41a3b2:	55                   	push   %ebp
41a3b3:	8b ec                	mov    %esp,%ebp
41a3b5:	8b 41 20             	mov    0x20(%ecx),%eax
41a3b8:	56                   	push   %esi
41a3b9:	57                   	push   %edi
41a3ba:	bf ff ff 00 00       	mov    $0xffff,%edi
41a3bf:	8b 30                	mov    (%eax),%esi
41a3c1:	85 f6                	test   %esi,%esi
41a3c3:	74 3d                	je     0x41a402
41a3c5:	8b 41 10             	mov    0x10(%ecx),%eax
41a3c8:	3b 30                	cmp    (%eax),%esi
41a3ca:	76 36                	jbe    0x41a402
41a3cc:	66 8b 55 08          	mov    0x8(%ebp),%dx
41a3d0:	66 3b fa             	cmp    %dx,%di
41a3d3:	74 0c                	je     0x41a3e1
41a3d5:	66 3b 56 fe          	cmp    -0x2(%esi),%dx
41a3d9:	74 06                	je     0x41a3e1