4101e9:	e8 f2 fc ff ff       	call   0x40fee0
4101ee:	66 8b 3e             	mov    (%esi),%di
4101f1:	66 83 ff 14          	cmp    $0x14,%di
4101f5:	73 0e                	jae    0x410205
4101f7:	56                   	push   %esi
4101f8:	53                   	push   %ebx
4101f9:	e8 0a e5 ff ff       	call   0x40e708
4101fe:	e8 a9 f9 ff ff       	call   0x40fbac
410203:	eb 79                	jmp    0x41027e
410205:	66 81 ff 00 01       	cmp    $0x100,%di
41020a:	75 17                	jne    0x410223
41020c:	66 c7 03 00 01       	movw   $0x100,(%ebx)
410211:	33 c0                	xor    %eax,%eax
410213:	89 43 08             	mov    %eax,0x8(%ebx)
410216:	8d 43 08             	lea    0x8(%ebx),%eax
410219:	8b 56 08             	mov    0x8(%esi),%edx
41021c:	e8 97 3f ff ff       	call   0x4041b8
410221:	eb 5b                	jmp    0x41027e
410223:	66 81 ff 01 01       	cmp    $0x101,%di
410228:	75 13                	jne    0x41023d
41022a:	66 89 3b             	mov    %di,(%ebx)
41022d:	8b 46 08             	mov    0x8(%esi),%eax
410230:	89 43 08             	mov    %eax,0x8(%ebx)
410233:	8b c3                	mov    %ebx,%eax
410235:	ff 15 1c c8 49 00    	call   *0x49c81c
41023b:	eb 41                	jmp    0x41027e
41023d:	66 f7 c7 00 20       	test   $0x2000,%di
410242:	74 10                	je     0x410254
410244:	b9 d0 01 41 00       	mov    $0x4101d0,%ecx
410249:	8b d6                	mov    %esi,%edx
41024b:	8b c3                	mov    %ebx,%eax
41024d:	e8 b2 fd ff ff       	call   0x410004
410252:	eb 2a                	jmp    0x41027e
410254:	8b d4                	mov    %esp,%edx
410256:	8b c7                	mov    %edi,%eax
410258:	e8 3f 6e 00 00       	call   0x41709c
41025d:	84 c0                	test   %al,%al
41025f:	74 11                	je     0x410272
410261:	6a 00                	push   $0x0
410263:	8b ce                	mov    %esi,%ecx
410265:	8b d3                	mov    %ebx,%edx
410267:	8b 44 24 04          	mov    0x4(%esp),%eax
41026b:	8b 18                	mov    (%eax),%ebx
41026d:	ff 53 28             	call   *0x28(%ebx)
410270:	eb 0c                	jmp    0x41027e
410272:	56                   	push   %esi
410273:	53                   	push   %ebx
410274:	e8 8f e4 ff ff       	call   0x40e708
410279:	e8 2e f9 ff ff       	call   0x40fbac
41027e:	5a                   	pop    %edx
41027f:	5f                   	pop    %edi
410280:	5e                   	pop    %esi
410281:	5b                   	pop    %ebx
410282:	c3                   	ret
410283:	90                   	nop
410284:	53                   	push   %ebx
410285:	56                   	push   %esi
410286:	8b da                	mov    %edx,%ebx
410288:	8b f0                	mov    %eax,%esi
41028a:	3b f3                	cmp    %ebx,%esi
41028c:	74 36                	je     0x4102c4
41028e:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
410293:	75 26                	jne    0x4102bb
410295:	66 f7 06 e8 bf       	testw  $0xbfe8,(%esi)
41029a:	74 07                	je     0x4102a3
41029c:	8b c6                	mov    %esi,%eax
41029e:	e8 3d fc ff ff       	call   0x40fee0
4102a3:	8b 03                	mov    (%ebx),%eax
4102a5:	89 06                	mov    %eax,(%esi)
4102a7:	8b 43 04             	mov    0x4(%ebx),%eax
4102aa:	89 46 04             	mov    %eax,0x4(%esi)
4102ad:	8b 43 08             	mov    0x8(%ebx),%eax
4102b0:	89 46 08             	mov    %eax,0x8(%esi)
4102b3:	8b 43 0c             	mov    0xc(%ebx),%eax
4102b6:	89 46 0c             	mov    %eax,0xc(%esi)
4102b9:	eb 09                	jmp    0x4102c4
4102bb:	8b d3                	mov    %ebx,%edx
4102bd:	8b c6                	mov    %esi,%eax
4102bf:	e8 14 ff ff ff       	call   0x4101d8
4102c4:	5e                   	pop    %esi
4102c5:	5b                   	pop    %ebx
4102c6:	c3                   	ret
4102c7:	90                   	nop
4102c8:	53                   	push   %ebx
4102c9:	56                   	push   %esi
4102ca:	8b f2                	mov    %edx,%esi
4102cc:	8b d8                	mov    %eax,%ebx
4102ce:	3b de                	cmp    %esi,%ebx
4102d0:	74 07                	je     0x4102d9
4102d2:	8b c3                	mov    %ebx,%eax
4102d4:	e8 83 fc ff ff       	call   0x40ff5c
4102d9:	56                   	push   %esi
4102da:	53                   	push   %ebx
4102db:	e8 30 e4 ff ff       	call   0x40e710
4102e0:	e8 c7 f8 ff ff       	call   0x40fbac
4102e5:	5e                   	pop    %esi
4102e6:	5b                   	pop    %ebx
4102e7:	c3                   	ret
4102e8:	92                   	xchg   %eax,%edx
4102e9:	e8 26 39 00 00       	call   0x413c14
4102ee:	c3                   	ret
4102ef:	90                   	nop
4102f0:	e8 0f 02 00 00       	call   0x410504
4102f5:	c3                   	ret
4102f6:	8b c0                	mov    %eax,%eax
4102f8:	53                   	push   %ebx
4102f9:	56                   	push   %esi
4102fa:	51                   	push   %ecx
4102fb:	8b da                	mov    %edx,%ebx
4102fd:	8b f0                	mov    %eax,%esi
4102ff:	8b d4                	mov    %esp,%edx
410301:	66 8b 03             	mov    (%ebx),%ax
410304:	e8 93 6d 00 00       	call   0x41709c
410309:	84 c0                	test   %al,%al
41030b:	74 11                	je     0x41031e
41030d:	6a 01                	push   $0x1
41030f:	8b cb                	mov    %ebx,%ecx
410311:	8b d6                	mov    %esi,%edx
410313:	8b 44 24 04          	mov    0x4(%esp),%eax
410317:	8b 18                	mov    (%eax),%ebx
410319:	ff 53 28             	call   *0x28(%ebx)
41031c:	eb 09                	jmp    0x410327
41031e:	8b d3                	mov    %ebx,%edx
410320:	8b c6                	mov    %esi,%eax
410322:	e8 a1 ff ff ff       	call   0x4102c8
410327:	5a                   	pop    %edx
410328:	5e                   	pop    %esi
410329:	5b                   	pop    %ebx
41032a:	c3                   	ret
41032b:	90                   	nop
41032c:	55                   	push   %ebp
41032d:	8b ec                	mov    %esp,%ebp
41032f:	6a 00                	push   $0x0
410331:	53                   	push   %ebx
410332:	56                   	push   %esi
410333:	8b da                	mov    %edx,%ebx
410335:	8b f0                	mov    %eax,%esi
410337:	33 c0                	xor    %eax,%eax
410339:	55                   	push   %ebp
41033a:	68 f5 04 41 00       	push   $0x4104f5
41033f:	64 ff 30             	push   %fs:(%eax)
410342:	64 89 20             	mov    %esp,%fs:(%eax)
410345:	66 8b 03             	mov    (%ebx),%ax
410348:	0f b7 d0             	movzwl %ax,%edx
41034b:	81 e2 ff bf ff ff    	and    $0xffffbfff,%edx
410351:	83 fa 14             	cmp    $0x14,%edx
410354:	0f 87 67 01 00 00    	ja     0x4104c1
41035a:	ff 24 95 61 03 41 00 	jmp    *0x410361(,%edx,4)
410361:	c1 04 41 00          	roll   $0x0,(%ecx,%eax,2)
410365:	c1 04 41 00          	roll   $0x0,(%ecx,%eax,2)
410369:	b5 03                	mov    $0x3,%ch
41036b:	41                   	inc    %ecx
41036c:	00 c9                	add    %cl,%cl
41036e:	03 41 00             	add    0x0(%ecx),%eax
410371:	dc 03                	faddl  (%ebx)
410373:	41                   	inc    %ecx
410374:	00 ed                	add    %ch,%ch
410376:	03 41 00             	add    0x0(%ecx),%eax
410379:	fe 03                	incb   (%ebx)
41037b:	41                   	inc    %ecx
41037c:	00 0f                	add    %cl,(%edi)
41037e:	04 41                	add    $0x41,%al
410380:	00 20                	add    %ah,(%eax)
410382:	04 41                	add    $0x41,%al
410384:	00 b6 04 41 00 c1    	add    %dh,-0x3effbefc(%esi)
41038a:	04 41                	add    $0x41,%al
41038c:	00 39                	add    %bh,(%ecx)
41038e:	04 41                	add    $0x41,%al
410390:	00 a8 04 41 00 b6    	add    %ch,-0x49ffbefc(%eax)
410396:	04 41                	add    $0x41,%al
410398:	00 c1                	add    %al,%cl
41039a:	04 41                	add    $0x41,%al
41039c:	00 c1                	add    %al,%cl
41039e:	04 41                	add    $0x41,%al
4103a0:	00 52 04             	add    %dl,0x4(%edx)
4103a3:	41                   	inc    %ecx
4103a4:	00 63 04             	add    %ah,0x4(%ebx)
4103a7:	41                   	inc    %ecx
4103a8:	00 74 04 41          	add    %dh,0x41(%esp,%eax,1)
4103ac:	00 85 04 41 00 95    	add    %al,-0x6affbefc(%ebp)
4103b2:	04 41                	add    $0x41,%al
4103b4:	00 8b c6 8b 53 08    	add    %cl,0x8538bc6(%ebx)
4103ba:	0f bf 12             	movswl (%edx),%edx
4103bd:	b1 fe                	mov    $0xfe,%cl
4103bf:	e8 a0 3f 00 00       	call   0x414364
4103c4:	e9 16 01 00 00       	jmp    0x4104df
4103c9:	8b c6                	mov    %esi,%eax
4103cb:	8b 53 08             	mov    0x8(%ebx),%edx
4103ce:	8b 12                	mov    (%edx),%edx
4103d0:	b1 fc                	mov    $0xfc,%cl
4103d2:	e8 8d 3f 00 00       	call   0x414364
4103d7:	e9 03 01 00 00       	jmp    0x4104df
4103dc:	8b 43 08             	mov    0x8(%ebx),%eax
4103df:	d9 00                	flds   (%eax)
4103e1:	8b c6                	mov    %esi,%eax
4103e3:	e8 94 41 00 00       	call   0x41457c
4103e8:	e9 f2 00 00 00       	jmp    0x4104df
4103ed:	8b 43 08             	mov    0x8(%ebx),%eax
4103f0:	dd 00                	fldl   (%eax)
4103f2:	8b c6                	mov    %esi,%eax
4103f4:	e8 83 41 00 00       	call   0x41457c
4103f9:	e9 e1 00 00 00       	jmp    0x4104df
4103fe:	8b 43 08             	mov    0x8(%ebx),%eax
410401:	df 28                	fildll (%eax)
410403:	8b c6                	mov    %esi,%eax
410405:	e8 9a 41 00 00       	call   0x4145a4
41040a:	e9 d0 00 00 00       	jmp    0x4104df
41040f:	8b 43 08             	mov    0x8(%ebx),%eax
410412:	dd 00                	fldl   (%eax)
410414:	8b c6                	mov    %esi,%eax
410416:	e8 61 41 00 00       	call   0x41457c
41041b:	e9 bf 00 00 00       	jmp    0x4104df
410420:	8d 55 fc             	lea    -0x4(%ebp),%edx
410423:	8b c3                	mov    %ebx,%eax
410425:	e8 be fe ff ff       	call   0x4102e8
41042a:	8b 55 fc             	mov    -0x4(%ebp),%edx
41042d:	8b c6                	mov    %esi,%eax
41042f:	e8 00 42 00 00       	call   0x414634
410434:	e9 a6 00 00 00       	jmp    0x4104df
410439:	8b c6                	mov    %esi,%eax
41043b:	8b 53 08             	mov    0x8(%ebx),%edx
41043e:	66 8b 12             	mov    (%edx),%dx
410441:	66 f7 da             	neg    %dx
410444:	1b d2                	sbb    %edx,%edx
410446:	f7 da                	neg    %edx
410448:	e8 07 41 00 00       	call   0x414554
41044d:	e9 8d 00 00 00       	jmp    0x4104df
410452:	8b c6                	mov    %esi,%eax
410454:	8b 53 08             	mov    0x8(%ebx),%edx
410457:	0f be 12             	movsbl (%edx),%edx
41045a:	b1 ff                	mov    $0xff,%cl
41045c:	e8 03 3f 00 00       	call   0x414364
410461:	eb 7c                	jmp    0x4104df
410463:	8b c6                	mov    %esi,%eax
410465:	8b 53 08             	mov    0x8(%ebx),%edx
410468:	0f b6 12             	movzbl (%edx),%edx
41046b:	b1 01                	mov    $0x1,%cl
41046d:	e8 f2 3e 00 00       	call   0x414364
410472:	eb 6b                	jmp    0x4104df
410474:	8b c6                	mov    %esi,%eax
410476:	8b 53 08             	mov    0x8(%ebx),%edx
410479:	0f b7 12             	movzwl (%edx),%edx
41047c:	b1 02                	mov    $0x2,%cl
41047e:	e8 e1 3e 00 00       	call   0x414364
410483:	eb 5a                	jmp    0x4104df
410485:	8b c6                	mov    %esi,%eax
410487:	8b 53 08             	mov    0x8(%ebx),%edx
41048a:	8b 12                	mov    (%edx),%edx
41048c:	b1 04                	mov    $0x4,%cl
41048e:	e8 d1 3e 00 00       	call   0x414364
410493:	eb 4a                	jmp    0x4104df
410495:	8b 43 08             	mov    0x8(%ebx),%eax
410498:	8b 50 04             	mov    0x4(%eax),%edx
41049b:	8b 00                	mov    (%eax),%eax
41049d:	52                   	push   %edx
41049e:	50                   	push   %eax
41049f:	8b c6                	mov    %esi,%eax
4104a1:	e8 da 3f 00 00       	call   0x414480
4104a6:	eb 37                	jmp    0x4104df
4104a8:	8b 43 08             	mov    0x8(%ebx),%eax
4104ab:	8b d0                	mov    %eax,%edx
4104ad:	8b c6                	mov    %esi,%eax
4104af:	e8 50 00 00 00       	call   0x410504
4104b4:	eb 29                	jmp    0x4104df
4104b6:	8b d3                	mov    %ebx,%edx
4104b8:	8b c6                	mov    %esi,%eax
4104ba:	e8 09 fe ff ff       	call   0x4102c8
4104bf:	eb 1e                	jmp    0x4104df
4104c1:	f6 c4 20             	test   $0x20,%ah
4104c4:	74 10                	je     0x4104d6
4104c6:	b9 f0 02 41 00       	mov    $0x4102f0,%ecx
4104cb:	8b d3                	mov    %ebx,%edx
4104cd:	8b c6                	mov    %esi,%eax
4104cf:	e8 30 fb ff ff       	call   0x410004
4104d4:	eb 09                	jmp    0x4104df
4104d6:	8b d3                	mov    %ebx,%edx
4104d8:	8b c6                	mov    %esi,%eax
4104da:	e8 19 fe ff ff       	call   0x4102f8
4104df:	33 c0                	xor    %eax,%eax
4104e1:	5a                   	pop    %edx
4104e2:	59                   	pop    %ecx
4104e3:	59                   	pop    %ecx
4104e4:	64 89 10             	mov    %edx,%fs:(%eax)
4104e7:	68 fc 04 41 00       	push   $0x4104fc
4104ec:	8d 45 fc             	lea    -0x4(%ebp),%eax
4104ef:	e8 7c 43 ff ff       	call   0x404870
4104f4:	c3                   	ret
4104f5:	e9 6e 36 ff ff       	jmp    0x403b68
4104fa:	eb f0                	jmp    0x4104ec
4104fc:	5e                   	pop    %esi
4104fd:	5b                   	pop    %ebx
4104fe:	59                   	pop    %ecx
4104ff:	5d                   	pop    %ebp
410500:	c3                   	ret
410501:	8d 40 00             	lea    0x0(%eax),%eax
410504:	f6 42 01 40          	testb  $0x40,0x1(%edx)
410508:	75 06                	jne    0x410510
41050a:	e8 75 fd ff ff       	call   0x410284
41050f:	c3                   	ret
410510:	e8 17 fe ff ff       	call   0x41032c
410515:	c3                   	ret
410516:	8b c0                	mov    %eax,%eax
410518:	53                   	push   %ebx
410519:	56                   	push   %esi
41051a:	8b d8                	mov    %eax,%ebx
41051c:	8b 42 08             	mov    0x8(%edx),%eax
41051f:	e8 68 4a ff ff       	call   0x404f8c
410524:	8b f0                	mov    %eax,%esi
410526:	8b c3                	mov    %ebx,%eax
410528:	e8 2f fa ff ff       	call   0x40ff5c
41052d:	66 c7 03 08 00       	movw   $0x8,(%ebx)
410532:	89 73 08             	mov    %esi,0x8(%ebx)
410535:	5e                   	pop    %esi
410536:	5b                   	pop    %ebx
410537:	c3                   	ret
410538:	e9 db ff ff ff       	jmp    0x410518
41053d:	c3                   	ret
41053e:	8b c0                	mov    %eax,%eax
410540:	55                   	push   %ebp
410541:	8b ec                	mov    %esp,%ebp
410543:	83 c4 f0             	add    $0xfffffff0,%esp
410546:	53                   	push   %ebx
410547:	56                   	push   %esi
410548:	57                   	push   %edi
410549:	8b f9                	mov    %ecx,%edi
41054b:	8b f2                	mov    %edx,%esi
41054d:	8b d8                	mov    %eax,%ebx
41054f:	8d 45 f0             	lea    -0x10(%ebp),%eax
410552:	50                   	push   %eax
410553:	e8 a0 e1 ff ff       	call   0x40e6f8
410558:	33 c0                	xor    %eax,%eax
41055a:	55                   	push   %ebp
41055b:	68 9c 05 41 00       	push   $0x41059c
410560:	64 ff 30             	push   %fs:(%eax)
410563:	64 89 20             	mov    %esp,%fs:(%eax)
410566:	8b d6                	mov    %esi,%edx
410568:	8d 45 f0             	lea    -0x10(%ebp),%eax
41056b:	e8 14 fd ff ff       	call   0x410284
410570:	8d 45 f0             	lea    -0x10(%ebp),%eax
410573:	ff 15 18 c8 49 00    	call   *0x49c818
410579:	0f b7 cf             	movzwl %di,%ecx
41057c:	8d 55 f0             	lea    -0x10(%ebp),%edx
41057f:	8b c3                	mov    %ebx,%eax
410581:	e8 42 02 00 00       	call   0x4107c8
410586:	33 c0                	xor    %eax,%eax
410588:	5a                   	pop    %edx
410589:	59                   	pop    %ecx
41058a:	59                   	pop    %ecx
41058b:	64 89 10             	mov    %edx,%fs:(%eax)
41058e:	68 a3 05 41 00       	push   $0x4105a3