41a139:	56                   	push   %esi
41a13a:	e8 4c 56 00 00       	call   0x41f78b
41a13f:	59                   	pop    %ecx
41a140:	85 c0                	test   %eax,%eax
41a142:	74 1f                	je     0x41a163
41a144:	83 fe e0             	cmp    $0xffffffe0,%esi
41a147:	76 cd                	jbe    0x41a116
41a149:	56                   	push   %esi
41a14a:	e8 3c 56 00 00       	call   0x41f78b
41a14f:	59                   	pop    %ecx
41a150:	e8 49 47 00 00       	call   0x41e89e
41a155:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
41a15b:	33 c0                	xor    %eax,%eax
41a15d:	e8 6f 54 00 00       	call   0x41f5d1
41a162:	c3                   	ret
41a163:	e8 36 47 00 00       	call   0x41e89e
41a168:	e9 7c ff ff ff       	jmp    0x41a0e9
41a16d:	85 ff                	test   %edi,%edi
41a16f:	75 16                	jne    0x41a187
41a171:	e8 28 47 00 00       	call   0x41e89e
41a176:	8b f0                	mov    %eax,%esi
41a178:	ff 15 24 a2 42 00    	call   *0x42a224
41a17e:	50                   	push   %eax
41a17f:	e8 d8 46 00 00       	call   0x41e85c
41a184:	89 06                	mov    %eax,(%esi)
41a186:	59                   	pop    %ecx
41a187:	8b c7                	mov    %edi,%eax
41a189:	eb d2                	jmp    0x41a15d
41a18b:	8b ff                	mov    %edi,%edi
41a18d:	55                   	push   %ebp
41a18e:	8b ec                	mov    %esp,%ebp
41a190:	8b 45 08             	mov    0x8(%ebp),%eax
41a193:	66 8b 08             	mov    (%eax),%cx
41a196:	40                   	inc    %eax
41a197:	40                   	inc    %eax
41a198:	66 85 c9             	test   %cx,%cx
41a19b:	75 f6                	jne    0x41a193
41a19d:	2b 45 08             	sub    0x8(%ebp),%eax
41a1a0:	d1 f8                	sar    $1,%eax
41a1a2:	48                   	dec    %eax
41a1a3:	5d                   	pop    %ebp
41a1a4:	c3                   	ret
41a1a5:	8b ff                	mov    %edi,%edi
41a1a7:	55                   	push   %ebp
41a1a8:	8b ec                	mov    %esp,%ebp
41a1aa:	8b 45 08             	mov    0x8(%ebp),%eax
41a1ad:	66 83 38 00          	cmpw   $0x0,(%eax)
41a1b1:	8b d0                	mov    %eax,%edx
41a1b3:	74 08                	je     0x41a1bd
41a1b5:	42                   	inc    %edx
41a1b6:	42                   	inc    %edx
41a1b7:	66 83 3a 00          	cmpw   $0x0,(%edx)
41a1bb:	75 f8                	jne    0x41a1b5
41a1bd:	56                   	push   %esi
41a1be:	8b 75 0c             	mov    0xc(%ebp),%esi
41a1c1:	0f b7 0e             	movzwl (%esi),%ecx
41a1c4:	66 89 0a             	mov    %cx,(%edx)
41a1c7:	42                   	inc    %edx
41a1c8:	42                   	inc    %edx
41a1c9:	46                   	inc    %esi
41a1ca:	46                   	inc    %esi
41a1cb:	66 85 c9             	test   %cx,%cx
41a1ce:	75 f1                	jne    0x41a1c1
41a1d0:	5e                   	pop    %esi
41a1d1:	5d                   	pop    %ebp
41a1d2:	c3                   	ret
41a1d3:	8b ff                	mov    %edi,%edi
41a1d5:	55                   	push   %ebp
41a1d6:	8b ec                	mov    %esp,%ebp
41a1d8:	8b 4d 08             	mov    0x8(%ebp),%ecx
41a1db:	8b 55 0c             	mov    0xc(%ebp),%edx
41a1de:	0f b7 02             	movzwl (%edx),%eax
41a1e1:	66 89 01             	mov    %ax,(%ecx)
41a1e4:	41                   	inc    %ecx
41a1e5:	41                   	inc    %ecx
41a1e6:	42                   	inc    %edx
41a1e7:	42                   	inc    %edx
41a1e8:	66 85 c0             	test   %ax,%ax
41a1eb:	75 f1                	jne    0x41a1de
41a1ed:	8b 45 08             	mov    0x8(%ebp),%eax
41a1f0:	5d                   	pop    %ebp
41a1f1:	c3                   	ret
41a1f2:	cc                   	int3
41a1f3:	cc                   	int3
41a1f4:	cc                   	int3
41a1f5:	cc                   	int3
41a1f6:	cc                   	int3
41a1f7:	cc                   	int3
41a1f8:	cc                   	int3
41a1f9:	cc                   	int3
41a1fa:	cc                   	int3
41a1fb:	cc                   	int3
41a1fc:	cc                   	int3
41a1fd:	cc                   	int3
41a1fe:	cc                   	int3
41a1ff:	cc                   	int3
41a200:	8b 54 24 0c          	mov    0xc(%esp),%edx
41a204:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41a208:	85 d2                	test   %edx,%edx
41a20a:	74 69                	je     0x41a275
41a20c:	33 c0                	xor    %eax,%eax
41a20e:	8a 44 24 08          	mov    0x8(%esp),%al
41a212:	84 c0                	test   %al,%al
41a214:	75 16                	jne    0x41a22c
41a216:	81 fa 00 01 00 00    	cmp    $0x100,%edx
41a21c:	72 0e                	jb     0x41a22c
41a21e:	83 3d d8 08 45 00 00 	cmpl   $0x0,0x4508d8
41a225:	74 05                	je     0x41a22c
41a227:	e9 de 55 00 00       	jmp    0x41f80a
41a22c:	57                   	push   %edi
41a22d:	8b f9                	mov    %ecx,%edi
41a22f:	83 fa 04             	cmp    $0x4,%edx
41a232:	72 31                	jb     0x41a265
41a234:	f7 d9                	neg    %ecx
41a236:	83 e1 03             	and    $0x3,%ecx
41a239:	74 0c                	je     0x41a247
41a23b:	2b d1                	sub    %ecx,%edx
41a23d:	88 07                	mov    %al,(%edi)
41a23f:	83 c7 01             	add    $0x1,%edi
41a242:	83 e9 01             	sub    $0x1,%ecx
41a245:	75 f6                	jne    0x41a23d
41a247:	8b c8                	mov    %eax,%ecx
41a249:	c1 e0 08             	shl    $0x8,%eax
41a24c:	03 c1                	add    %ecx,%eax
41a24e:	8b c8                	mov    %eax,%ecx
41a250:	c1 e0 10             	shl    $0x10,%eax
41a253:	03 c1                	add    %ecx,%eax
41a255:	8b ca                	mov    %edx,%ecx
41a257:	83 e2 03             	and    $0x3,%edx
41a25a:	c1 e9 02             	shr    $0x2,%ecx
41a25d:	74 06                	je     0x41a265
41a25f:	f3 ab                	rep stos %eax,%es:(%edi)
41a261:	85 d2                	test   %edx,%edx
41a263:	74 0a                	je     0x41a26f
41a265:	88 07                	mov    %al,(%edi)
41a267:	83 c7 01             	add    $0x1,%edi
41a26a:	83 ea 01             	sub    $0x1,%edx
41a26d:	75 f6                	jne    0x41a265
41a26f:	8b 44 24 08          	mov    0x8(%esp),%eax
41a273:	5f                   	pop    %edi
41a274:	c3                   	ret
41a275:	8b 44 24 04          	mov    0x4(%esp),%eax
41a279:	c3                   	ret
41a27a:	8b ff                	mov    %edi,%edi
41a27c:	55                   	push   %ebp
41a27d:	8b ec                	mov    %esp,%ebp
41a27f:	83 ec 0c             	sub    $0xc,%esp
41a282:	eb 0d                	jmp    0x41a291
41a284:	ff 75 08             	push   0x8(%ebp)
41a287:	e8 ff 54 00 00       	call   0x41f78b
41a28c:	59                   	pop    %ecx
41a28d:	85 c0                	test   %eax,%eax
41a28f:	74 0f                	je     0x41a2a0
41a291:	ff 75 08             	push   0x8(%ebp)
41a294:	e8 c5 26 00 00       	call   0x41c95e
41a299:	59                   	pop    %ecx
41a29a:	85 c0                	test   %eax,%eax
41a29c:	74 e6                	je     0x41a284
41a29e:	c9                   	leave
41a29f:	c3                   	ret
41a2a0:	f6 05 d0 ec 44 00 01 	testb  $0x1,0x44ecd0
41a2a7:	be c4 ec 44 00       	mov    $0x44ecc4,%esi
41a2ac:	75 19                	jne    0x41a2c7
41a2ae:	83 0d d0 ec 44 00 01 	orl    $0x1,0x44ecd0
41a2b5:	8b ce                	mov    %esi,%ecx
41a2b7:	e8 d2 7a ff ff       	call   0x411d8e
41a2bc:	68 2f 96 42 00       	push   $0x42962f
41a2c1:	e8 00 20 00 00       	call   0x41c2c6
41a2c6:	59                   	pop    %ecx
41a2c7:	56                   	push   %esi
41a2c8:	8d 4d f4             	lea    -0xc(%ebp),%ecx
41a2cb:	e8 4e 7f ff ff       	call   0x41221e
41a2d0:	68 c4 d4 42 00       	push   $0x42d4c4
41a2d5:	8d 45 f4             	lea    -0xc(%ebp),%eax
41a2d8:	50                   	push   %eax
41a2d9:	e8 ff 1f 00 00       	call   0x41c2dd
41a2de:	cc                   	int3
41a2df:	8b ff                	mov    %edi,%edi
41a2e1:	55                   	push   %ebp
41a2e2:	8b ec                	mov    %esp,%ebp
41a2e4:	83 ec 20             	sub    $0x20,%esp
41a2e7:	53                   	push   %ebx
41a2e8:	33 db                	xor    %ebx,%ebx
41a2ea:	39 5d 14             	cmp    %ebx,0x14(%ebp)
41a2ed:	75 20                	jne    0x41a30f
41a2ef:	e8 aa 45 00 00       	call   0x41e89e
41a2f4:	53                   	push   %ebx
41a2f5:	53                   	push   %ebx
41a2f6:	53                   	push   %ebx
41a2f7:	53                   	push   %ebx
41a2f8:	53                   	push   %ebx
41a2f9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41a2ff:	e8 ef 58 00 00       	call   0x41fbf3
41a304:	83 c4 14             	add    $0x14,%esp
41a307:	83 c8 ff             	or     $0xffffffff,%eax
41a30a:	e9 c5 00 00 00       	jmp    0x41a3d4
41a30f:	56                   	push   %esi
41a310:	8b 75 0c             	mov    0xc(%ebp),%esi
41a313:	57                   	push   %edi
41a314:	8b 7d 10             	mov    0x10(%ebp),%edi
41a317:	3b fb                	cmp    %ebx,%edi
41a319:	74 24                	je     0x41a33f
41a31b:	3b f3                	cmp    %ebx,%esi
41a31d:	75 20                	jne    0x41a33f
41a31f:	e8 7a 45 00 00       	call   0x41e89e
41a324:	53                   	push   %ebx
41a325:	53                   	push   %ebx
41a326:	53                   	push   %ebx
41a327:	53                   	push   %ebx
41a328:	53                   	push   %ebx
41a329:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41a32f:	e8 bf 58 00 00       	call   0x41fbf3
41a334:	83 c4 14             	add    $0x14,%esp
41a337:	83 c8 ff             	or     $0xffffffff,%eax
41a33a:	e9 93 00 00 00       	jmp    0x41a3d2
41a33f:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
41a346:	89 75 e8             	mov    %esi,-0x18(%ebp)
41a349:	89 75 e0             	mov    %esi,-0x20(%ebp)
41a34c:	81 ff ff ff ff 3f    	cmp    $0x3fffffff,%edi
41a352:	76 09                	jbe    0x41a35d
41a354:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
41a35b:	eb 06                	jmp    0x41a363
41a35d:	8d 04 3f             	lea    (%edi,%edi,1),%eax
41a360:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41a363:	ff 75 1c             	push   0x1c(%ebp)
41a366:	8d 45 e0             	lea    -0x20(%ebp),%eax
41a369:	ff 75 18             	push   0x18(%ebp)
41a36c:	ff 75 14             	push   0x14(%ebp)
41a36f:	50                   	push   %eax
41a370:	ff 55 08             	call   *0x8(%ebp)
41a373:	83 c4 10             	add    $0x10,%esp
41a376:	89 45 14             	mov    %eax,0x14(%ebp)
41a379:	3b f3                	cmp    %ebx,%esi
41a37b:	74 55                	je     0x41a3d2
41a37d:	3b c3                	cmp    %ebx,%eax
41a37f:	7c 42                	jl     0x41a3c3
41a381:	ff 4d e4             	decl   -0x1c(%ebp)
41a384:	78 0a                	js     0x41a390
41a386:	8b 45 e0             	mov    -0x20(%ebp),%eax
41a389:	88 18                	mov    %bl,(%eax)
41a38b:	ff 45 e0             	incl   -0x20(%ebp)
41a38e:	eb 11                	jmp    0x41a3a1
41a390:	8d 45 e0             	lea    -0x20(%ebp),%eax
41a393:	50                   	push   %eax
41a394:	53                   	push   %ebx
41a395:	e8 be 55 00 00       	call   0x41f958
41a39a:	59                   	pop    %ecx
41a39b:	59                   	pop    %ecx
41a39c:	83 f8 ff             	cmp    $0xffffffff,%eax
41a39f:	74 22                	je     0x41a3c3
41a3a1:	ff 4d e4             	decl   -0x1c(%ebp)
41a3a4:	78 07                	js     0x41a3ad
41a3a6:	8b 45 e0             	mov    -0x20(%ebp),%eax
41a3a9:	88 18                	mov    %bl,(%eax)
41a3ab:	eb 11                	jmp    0x41a3be
41a3ad:	8d 45 e0             	lea    -0x20(%ebp),%eax
41a3b0:	50                   	push   %eax
41a3b1:	53                   	push   %ebx
41a3b2:	e8 a1 55 00 00       	call   0x41f958
41a3b7:	59                   	pop    %ecx
41a3b8:	59                   	pop    %ecx
41a3b9:	83 f8 ff             	cmp    $0xffffffff,%eax
41a3bc:	74 05                	je     0x41a3c3
41a3be:	8b 45 14             	mov    0x14(%ebp),%eax
41a3c1:	eb 0f                	jmp    0x41a3d2
41a3c3:	33 c0                	xor    %eax,%eax
41a3c5:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
41a3c8:	66 89 44 7e fe       	mov    %ax,-0x2(%esi,%edi,2)
41a3cd:	0f 9d c0             	setge  %al
41a3d0:	48                   	dec    %eax
41a3d1:	48                   	dec    %eax
41a3d2:	5f                   	pop    %edi
41a3d3:	5e                   	pop    %esi
41a3d4:	5b                   	pop    %ebx
41a3d5:	c9                   	leave
41a3d6:	c3                   	ret
41a3d7:	8b ff                	mov    %edi,%edi
41a3d9:	55                   	push   %ebp
41a3da:	8b ec                	mov    %esp,%ebp
41a3dc:	ff 75 18             	push   0x18(%ebp)
41a3df:	ff 75 14             	push   0x14(%ebp)
41a3e2:	ff 75 10             	push   0x10(%ebp)
41a3e5:	ff 75 0c             	push   0xc(%ebp)
41a3e8:	ff 75 08             	push   0x8(%ebp)
41a3eb:	68 c1 fc 41 00       	push   $0x41fcc1
41a3f0:	e8 ea fe ff ff       	call   0x41a2df
41a3f5:	83 c4 18             	add    $0x18,%esp
41a3f8:	85 c0                	test   %eax,%eax
41a3fa:	7d 03                	jge    0x41a3ff
41a3fc:	83 c8 ff             	or     $0xffffffff,%eax
41a3ff:	5d                   	pop    %ebp
41a400:	c3                   	ret
41a401:	8b ff                	mov    %edi,%edi
41a403:	55                   	push   %ebp
41a404:	8b ec                	mov    %esp,%ebp
41a406:	8b 55 08             	mov    0x8(%ebp),%edx
41a409:	56                   	push   %esi
41a40a:	8b 75 0c             	mov    0xc(%ebp),%esi
41a40d:	57                   	push   %edi
41a40e:	eb 09                	jmp    0x41a419
41a410:	66 85 c9             	test   %cx,%cx
41a413:	74 11                	je     0x41a426
41a415:	42                   	inc    %edx
41a416:	42                   	inc    %edx
41a417:	46                   	inc    %esi
41a418:	46                   	inc    %esi
41a419:	0f b7 0e             	movzwl (%esi),%ecx
41a41c:	0f b7 02             	movzwl (%edx),%eax
41a41f:	0f b7 f9             	movzwl %cx,%edi
41a422:	2b c7                	sub    %edi,%eax
41a424:	74 ea                	je     0x41a410
41a426:	5f                   	pop    %edi
41a427:	5e                   	pop    %esi
41a428:	85 c0                	test   %eax,%eax
41a42a:	7d 05                	jge    0x41a431
41a42c:	83 c8 ff             	or     $0xffffffff,%eax
41a42f:	5d                   	pop    %ebp
41a430:	c3                   	ret
41a431:	7e 03                	jle    0x41a436
41a433:	33 c0                	xor    %eax,%eax
41a435:	40                   	inc    %eax
41a436:	5d                   	pop    %ebp
41a437:	c3                   	ret
41a438:	cc                   	int3
41a439:	cc                   	int3
41a43a:	cc                   	int3
41a43b:	cc                   	int3
41a43c:	cc                   	int3
41a43d:	cc                   	int3
41a43e:	cc                   	int3
41a43f:	cc                   	int3
41a440:	8b 4c 24 04          	mov    0x4(%esp),%ecx
41a444:	f7 c1 03 00 00 00    	test   $0x3,%ecx
41a44a:	74 24                	je     0x41a470
41a44c:	8a 01                	mov    (%ecx),%al
41a44e:	83 c1 01             	add    $0x1,%ecx
41a451:	84 c0                	test   %al,%al
41a453:	74 4e                	je     0x41a4a3
41a455:	f7 c1 03 00 00 00    	test   $0x3,%ecx
41a45b:	75 ef                	jne    0x41a44c
41a45d:	05 00 00 00 00       	add    $0x0,%eax
41a462:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
41a469:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
41a470:	8b 01                	mov    (%ecx),%eax
41a472:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
41a477:	03 d0                	add    %eax,%edx
41a479:	83 f0 ff             	xor    $0xffffffff,%eax
41a47c:	33 c2                	xor    %edx,%eax
41a47e:	83 c1 04             	add    $0x4,%ecx
41a481:	a9 00 01 01 81       	test   $0x81010100,%eax