41005e:	f7 d0                	not    %eax
410060:	83 e0 01             	and    $0x1,%eax
410063:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410066:	5f                   	pop    %edi
410067:	33 cd                	xor    %ebp,%ecx
410069:	5e                   	pop    %esi
41006a:	e8 b7 65 ff ff       	call   0x406626
41006f:	c9                   	leave
410070:	c2 04 00             	ret    $0x4
410073:	ff 36                	push   (%esi)
410075:	e8 e6 5e ff ff       	call   0x405f60
41007a:	ff 76 04             	push   0x4(%esi)
41007d:	83 e8 03             	sub    $0x3,%eax
410080:	f7 d8                	neg    %eax
410082:	1b c0                	sbb    %eax,%eax
410084:	40                   	inc    %eax
410085:	89 46 10             	mov    %eax,0x10(%esi)
410088:	e8 d3 5e ff ff       	call   0x405f60
41008d:	83 e8 03             	sub    $0x3,%eax
410090:	f7 d8                	neg    %eax
410092:	1b c0                	sbb    %eax,%eax
410094:	83 66 18 00          	andl   $0x0,0x18(%esi)
410098:	40                   	inc    %eax
410099:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
41009d:	59                   	pop    %ecx
41009e:	59                   	pop    %ecx
41009f:	89 46 14             	mov    %eax,0x14(%esi)
4100a2:	74 05                	je     0x4100a9
4100a4:	6a 02                	push   $0x2
4100a6:	58                   	pop    %eax
4100a7:	eb 07                	jmp    0x4100b0
4100a9:	8b 16                	mov    (%esi),%edx
4100ab:	e8 09 fc ff ff       	call   0x40fcb9
4100b0:	6a 01                	push   $0x1
4100b2:	68 e0 fd 40 00       	push   $0x40fde0
4100b7:	89 46 0c             	mov    %eax,0xc(%esi)
4100ba:	ff 15 54 a1 41 00    	call   *0x41a154
4100c0:	8b 46 08             	mov    0x8(%esi),%eax
4100c3:	a9 00 01 00 00       	test   $0x100,%eax
4100c8:	74 0b                	je     0x4100d5
4100ca:	a9 00 02 00 00       	test   $0x200,%eax
4100cf:	74 04                	je     0x4100d5
4100d1:	a8 07                	test   $0x7,%al
4100d3:	75 04                	jne    0x4100d9
4100d5:	83 66 08 00          	andl   $0x0,0x8(%esi)
4100d9:	c3                   	ret
4100da:	ff 36                	push   (%esi)
4100dc:	e8 7f 5e ff ff       	call   0x405f60
4100e1:	83 e8 03             	sub    $0x3,%eax
4100e4:	f7 d8                	neg    %eax
4100e6:	1b c0                	sbb    %eax,%eax
4100e8:	40                   	inc    %eax
4100e9:	59                   	pop    %ecx
4100ea:	89 46 10             	mov    %eax,0x10(%esi)
4100ed:	74 05                	je     0x4100f4
4100ef:	6a 02                	push   $0x2
4100f1:	58                   	pop    %eax
4100f2:	eb 07                	jmp    0x4100fb
4100f4:	8b 16                	mov    (%esi),%edx
4100f6:	e8 be fb ff ff       	call   0x40fcb9
4100fb:	6a 01                	push   $0x1
4100fd:	68 b2 ff 40 00       	push   $0x40ffb2
410102:	89 46 0c             	mov    %eax,0xc(%esi)
410105:	ff 15 54 a1 41 00    	call   *0x41a154
41010b:	f6 46 08 04          	testb  $0x4,0x8(%esi)
41010f:	75 04                	jne    0x410115
410111:	83 66 08 00          	andl   $0x0,0x8(%esi)
410115:	c3                   	ret
410116:	8b ff                	mov    %edi,%edi
410118:	55                   	push   %ebp
410119:	8b ec                	mov    %esp,%ebp
41011b:	53                   	push   %ebx
41011c:	56                   	push   %esi
41011d:	57                   	push   %edi
41011e:	e8 1e a9 ff ff       	call   0x40aa41
410123:	8b 5d 08             	mov    0x8(%ebp),%ebx
410126:	8b f0                	mov    %eax,%esi
410128:	81 c6 9c 00 00 00    	add    $0x9c,%esi
41012e:	85 db                	test   %ebx,%ebx
410130:	75 0c                	jne    0x41013e
410132:	81 4e 08 04 01 00 00 	orl    $0x104,0x8(%esi)
410139:	e9 bd 00 00 00       	jmp    0x4101fb
41013e:	8d 43 40             	lea    0x40(%ebx),%eax
410141:	8d 7e 04             	lea    0x4(%esi),%edi
410144:	89 1e                	mov    %ebx,(%esi)
410146:	89 07                	mov    %eax,(%edi)
410148:	85 c0                	test   %eax,%eax
41014a:	74 15                	je     0x410161
41014c:	80 38 00             	cmpb   $0x0,(%eax)
41014f:	74 10                	je     0x410161
410151:	57                   	push   %edi
410152:	6a 16                	push   $0x16
410154:	68 40 d4 41 00       	push   $0x41d440
410159:	e8 fd f9 ff ff       	call   0x40fb5b
41015e:	83 c4 0c             	add    $0xc,%esp
410161:	8b 06                	mov    (%esi),%eax
410163:	83 66 08 00          	andl   $0x0,0x8(%esi)
410167:	85 c0                	test   %eax,%eax
410169:	74 53                	je     0x4101be
41016b:	80 38 00             	cmpb   $0x0,(%eax)
41016e:	74 4e                	je     0x4101be
410170:	8b 07                	mov    (%edi),%eax
410172:	85 c0                	test   %eax,%eax
410174:	74 0c                	je     0x410182
410176:	80 38 00             	cmpb   $0x0,(%eax)
410179:	74 07                	je     0x410182
41017b:	e8 f3 fe ff ff       	call   0x410073
410180:	eb 05                	jmp    0x410187
410182:	e8 53 ff ff ff       	call   0x4100da
410187:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
41018b:	0f 85 80 00 00 00    	jne    0x410211
410191:	56                   	push   %esi
410192:	6a 40                	push   $0x40
410194:	68 38 d2 41 00       	push   $0x41d238
410199:	e8 bd f9 ff ff       	call   0x40fb5b
41019e:	83 c4 0c             	add    $0xc,%esp
4101a1:	85 c0                	test   %eax,%eax
4101a3:	74 62                	je     0x410207
4101a5:	8b 3f                	mov    (%edi),%edi
4101a7:	85 ff                	test   %edi,%edi
4101a9:	74 0c                	je     0x4101b7
4101ab:	80 3f 00             	cmpb   $0x0,(%edi)
4101ae:	74 07                	je     0x4101b7
4101b0:	e8 be fe ff ff       	call   0x410073
4101b5:	eb 50                	jmp    0x410207
4101b7:	e8 1e ff ff ff       	call   0x4100da
4101bc:	eb 49                	jmp    0x410207
4101be:	8b 3f                	mov    (%edi),%edi
4101c0:	85 ff                	test   %edi,%edi
4101c2:	74 30                	je     0x4101f4
4101c4:	80 3f 00             	cmpb   $0x0,(%edi)
4101c7:	74 2b                	je     0x4101f4
4101c9:	57                   	push   %edi
4101ca:	e8 91 5d ff ff       	call   0x405f60
4101cf:	83 e8 03             	sub    $0x3,%eax
4101d2:	f7 d8                	neg    %eax
4101d4:	59                   	pop    %ecx
4101d5:	1b c0                	sbb    %eax,%eax
4101d7:	6a 01                	push   $0x1
4101d9:	40                   	inc    %eax
4101da:	68 d4 fc 40 00       	push   $0x40fcd4
4101df:	89 46 14             	mov    %eax,0x14(%esi)
4101e2:	ff 15 54 a1 41 00    	call   *0x41a154
4101e8:	f6 46 08 04          	testb  $0x4,0x8(%esi)
4101ec:	75 19                	jne    0x410207
4101ee:	83 66 08 00          	andl   $0x0,0x8(%esi)
4101f2:	eb 13                	jmp    0x410207
4101f4:	c7 46 08 04 01 00 00 	movl   $0x104,0x8(%esi)
4101fb:	ff 15 4c a1 41 00    	call   *0x41a14c
410201:	89 46 18             	mov    %eax,0x18(%esi)
410204:	89 46 1c             	mov    %eax,0x1c(%esi)
410207:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
41020b:	0f 84 ef 00 00 00    	je     0x410300
410211:	8b cb                	mov    %ebx,%ecx
410213:	83 eb 80             	sub    $0xffffff80,%ebx
410216:	f7 d9                	neg    %ecx
410218:	1b c9                	sbb    %ecx,%ecx
41021a:	23 cb                	and    %ebx,%ecx
41021c:	8b fe                	mov    %esi,%edi
41021e:	e8 9a f9 ff ff       	call   0x40fbbd
410223:	8b f8                	mov    %eax,%edi
410225:	89 7d 08             	mov    %edi,0x8(%ebp)
410228:	85 ff                	test   %edi,%edi
41022a:	0f 84 d0 00 00 00    	je     0x410300
410230:	81 ff e8 fd 00 00    	cmp    $0xfde8,%edi
410236:	0f 84 c4 00 00 00    	je     0x410300
41023c:	81 ff e9 fd 00 00    	cmp    $0xfde9,%edi
410242:	0f 84 b8 00 00 00    	je     0x410300
410248:	0f b7 c7             	movzwl %di,%eax
41024b:	50                   	push   %eax
41024c:	ff 15 48 a1 41 00    	call   *0x41a148
410252:	85 c0                	test   %eax,%eax
410254:	0f 84 a6 00 00 00    	je     0x410300
41025a:	6a 01                	push   $0x1
41025c:	ff 76 18             	push   0x18(%esi)
41025f:	ff 15 58 a1 41 00    	call   *0x41a158
410265:	85 c0                	test   %eax,%eax
410267:	0f 84 93 00 00 00    	je     0x410300
41026d:	8b 45 0c             	mov    0xc(%ebp),%eax
410270:	85 c0                	test   %eax,%eax
410272:	74 13                	je     0x410287
410274:	66 8b 4e 18          	mov    0x18(%esi),%cx
410278:	66 89 08             	mov    %cx,(%eax)
41027b:	66 8b 4e 1c          	mov    0x1c(%esi),%cx
41027f:	66 89 48 02          	mov    %cx,0x2(%eax)
410283:	66 89 78 04          	mov    %di,0x4(%eax)
410287:	8b 5d 10             	mov    0x10(%ebp),%ebx
41028a:	85 db                	test   %ebx,%ebx
41028c:	74 6d                	je     0x4102fb
41028e:	8b 3d 50 a1 41 00    	mov    0x41a150,%edi
410294:	b9 14 08 00 00       	mov    $0x814,%ecx
410299:	66 39 08             	cmp    %cx,(%eax)
41029c:	75 25                	jne    0x4102c3
41029e:	68 18 d5 41 00       	push   $0x41d518
4102a3:	6a 40                	push   $0x40
4102a5:	53                   	push   %ebx
4102a6:	e8 0c 93 ff ff       	call   0x4095b7
4102ab:	83 c4 0c             	add    $0xc,%esp
4102ae:	85 c0                	test   %eax,%eax
4102b0:	74 22                	je     0x4102d4
4102b2:	33 c0                	xor    %eax,%eax
4102b4:	50                   	push   %eax
4102b5:	50                   	push   %eax
4102b6:	50                   	push   %eax
4102b7:	50                   	push   %eax
4102b8:	50                   	push   %eax
4102b9:	e8 3f 4e ff ff       	call   0x4050fd
4102be:	83 c4 14             	add    $0x14,%esp
4102c1:	eb 11                	jmp    0x4102d4
4102c3:	6a 40                	push   $0x40
4102c5:	53                   	push   %ebx
4102c6:	68 01 10 00 00       	push   $0x1001
4102cb:	ff 76 18             	push   0x18(%esi)
4102ce:	ff d7                	call   *%edi
4102d0:	85 c0                	test   %eax,%eax
4102d2:	74 2c                	je     0x410300
4102d4:	6a 40                	push   $0x40
4102d6:	8d 43 40             	lea    0x40(%ebx),%eax
4102d9:	50                   	push   %eax
4102da:	68 02 10 00 00       	push   $0x1002
4102df:	ff 76 1c             	push   0x1c(%esi)
4102e2:	ff d7                	call   *%edi
4102e4:	85 c0                	test   %eax,%eax
4102e6:	74 18                	je     0x410300
4102e8:	6a 0a                	push   $0xa
4102ea:	6a 10                	push   $0x10
4102ec:	83 eb 80             	sub    $0xffffff80,%ebx
4102ef:	53                   	push   %ebx
4102f0:	ff 75 08             	push   0x8(%ebp)
4102f3:	e8 27 77 ff ff       	call   0x407a1f
4102f8:	83 c4 10             	add    $0x10,%esp
4102fb:	33 c0                	xor    %eax,%eax
4102fd:	40                   	inc    %eax
4102fe:	eb 02                	jmp    0x410302
410300:	33 c0                	xor    %eax,%eax
410302:	5f                   	pop    %edi
410303:	5e                   	pop    %esi
410304:	5b                   	pop    %ebx
410305:	5d                   	pop    %ebp
410306:	c3                   	ret
410307:	8b ff                	mov    %edi,%edi
410309:	55                   	push   %ebp
41030a:	8b ec                	mov    %esp,%ebp
41030c:	56                   	push   %esi
41030d:	57                   	push   %edi
41030e:	8b 7d 10             	mov    0x10(%ebp),%edi
410311:	8b c7                	mov    %edi,%eax
410313:	83 e8 00             	sub    $0x0,%eax
410316:	0f 84 e5 15 00 00    	je     0x411901
41031c:	48                   	dec    %eax
41031d:	0f 84 cd 15 00 00    	je     0x4118f0
410323:	48                   	dec    %eax
410324:	0f 84 98 15 00 00    	je     0x4118c2
41032a:	48                   	dec    %eax
41032b:	0f 84 49 15 00 00    	je     0x41187a
410331:	48                   	dec    %eax
410332:	0f 84 b9 14 00 00    	je     0x4117f1
410338:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41033b:	8b 45 08             	mov    0x8(%ebp),%eax
41033e:	53                   	push   %ebx
41033f:	6a 20                	push   $0x20
410341:	5a                   	pop    %edx
410342:	e9 72 04 00 00       	jmp    0x4107b9
410347:	8b 30                	mov    (%eax),%esi
410349:	3b 31                	cmp    (%ecx),%esi
41034b:	74 7c                	je     0x4103c9
41034d:	0f b6 30             	movzbl (%eax),%esi
410350:	0f b6 19             	movzbl (%ecx),%ebx
410353:	2b f3                	sub    %ebx,%esi
410355:	74 15                	je     0x41036c
410357:	33 db                	xor    %ebx,%ebx
410359:	85 f6                	test   %esi,%esi
41035b:	0f 9f c3             	setg   %bl
41035e:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
410362:	8b f3                	mov    %ebx,%esi
410364:	85 f6                	test   %esi,%esi
410366:	0f 85 69 04 00 00    	jne    0x4107d5
41036c:	0f b6 70 01          	movzbl 0x1(%eax),%esi
410370:	0f b6 59 01          	movzbl 0x1(%ecx),%ebx
410374:	2b f3                	sub    %ebx,%esi
410376:	74 15                	je     0x41038d
410378:	33 db                	xor    %ebx,%ebx
41037a:	85 f6                	test   %esi,%esi
41037c:	0f 9f c3             	setg   %bl
41037f:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
410383:	8b f3                	mov    %ebx,%esi
410385:	85 f6                	test   %esi,%esi
410387:	0f 85 48 04 00 00    	jne    0x4107d5
41038d:	0f b6 70 02          	movzbl 0x2(%eax),%esi
410391:	0f b6 59 02          	movzbl 0x2(%ecx),%ebx
410395:	2b f3                	sub    %ebx,%esi
410397:	74 15                	je     0x4103ae
410399:	33 db                	xor    %ebx,%ebx
41039b:	85 f6                	test   %esi,%esi
41039d:	0f 9f c3             	setg   %bl
4103a0:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
4103a4:	8b f3                	mov    %ebx,%esi
4103a6:	85 f6                	test   %esi,%esi
4103a8:	0f 85 27 04 00 00    	jne    0x4107d5
4103ae:	0f b6 70 03          	movzbl 0x3(%eax),%esi
4103b2:	0f b6 59 03          	movzbl 0x3(%ecx),%ebx
4103b6:	2b f3                	sub    %ebx,%esi
4103b8:	74 11                	je     0x4103cb
4103ba:	33 db                	xor    %ebx,%ebx
4103bc:	85 f6                	test   %esi,%esi
4103be:	0f 9f c3             	setg   %bl
4103c1:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
4103c5:	8b f3                	mov    %ebx,%esi
4103c7:	eb 02                	jmp    0x4103cb
4103c9:	33 f6                	xor    %esi,%esi
4103cb:	85 f6                	test   %esi,%esi
4103cd:	0f 85 02 04 00 00    	jne    0x4107d5
4103d3:	8b 70 04             	mov    0x4(%eax),%esi
4103d6:	3b 71 04             	cmp    0x4(%ecx),%esi
4103d9:	74 7e                	je     0x410459
4103db:	0f b6 70 04          	movzbl 0x4(%eax),%esi
4103df:	0f b6 59 04          	movzbl 0x4(%ecx),%ebx
4103e3:	2b f3                	sub    %ebx,%esi
4103e5:	74 15                	je     0x4103fc
4103e7:	33 db                	xor    %ebx,%ebx
4103e9:	85 f6                	test   %esi,%esi
4103eb:	0f 9f c3             	setg   %bl
4103ee:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
4103f2:	8b f3                	mov    %ebx,%esi
4103f4:	85 f6                	test   %esi,%esi
4103f6:	0f 85 d9 03 00 00    	jne    0x4107d5
4103fc:	0f b6 70 05          	movzbl 0x5(%eax),%esi
410400:	0f b6 59 05          	movzbl 0x5(%ecx),%ebx
410404:	2b f3                	sub    %ebx,%esi
410406:	74 15                	je     0x41041d
410408:	33 db                	xor    %ebx,%ebx
41040a:	85 f6                	test   %esi,%esi
41040c:	0f 9f c3             	setg   %bl
41040f:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
410413:	8b f3                	mov    %ebx,%esi
410415:	85 f6                	test   %esi,%esi
410417:	0f 85 b8 03 00 00    	jne    0x4107d5
41041d:	0f b6 70 06          	movzbl 0x6(%eax),%esi
410421:	0f b6 59 06          	movzbl 0x6(%ecx),%ebx
410425:	2b f3                	sub    %ebx,%esi
410427:	74 15                	je     0x41043e
410429:	33 db                	xor    %ebx,%ebx
41042b:	85 f6                	test   %esi,%esi
41042d:	0f 9f c3             	setg   %bl
410430:	8d 5c 1b ff          	lea    -0x1(%ebx,%ebx,1),%ebx
410434:	8b f3                	mov    %ebx,%esi
410436:	85 f6                	test   %esi,%esi
410438:	0f 85 97 03 00 00    	jne    0x4107d5
41043e:	0f b6 70 07          	movzbl 0x7(%eax),%esi
410442:	0f b6 59 07          	movzbl 0x7(%ecx),%ebx