4193c3:	ff d6                	call   *%esi
4193c5:	0f b7 c0             	movzwl %ax,%eax
4193c8:	8b c8                	mov    %eax,%ecx
4193ca:	8b 7d e0             	mov    -0x20(%ebp),%edi
4193cd:	b8 ff ff 00 00       	mov    $0xffff,%eax
4193d2:	66 3b c1             	cmp    %cx,%ax
4193d5:	75 04                	jne    0x4193db
4193d7:	b0 01                	mov    $0x1,%al
4193d9:	eb 1b                	jmp    0x4193f6
4193db:	8b 07                	mov    (%edi),%eax
4193dd:	51                   	push   %ecx
4193de:	6a 48                	push   $0x48
4193e0:	8b 70 10             	mov    0x10(%eax),%esi
4193e3:	8b ce                	mov    %esi,%ecx
4193e5:	ff 15 3c f2 43 00    	call   *0x43f23c
4193eb:	8b cf                	mov    %edi,%ecx
4193ed:	ff d6                	call   *%esi
4193ef:	84 c0                	test   %al,%al
4193f1:	75 31                	jne    0x419424
4193f3:	8a 45 eb             	mov    -0x15(%ebp),%al
4193f6:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4193fd:	84 c0                	test   %al,%al
4193ff:	74 5b                	je     0x41945c
419401:	8b 03                	mov    (%ebx),%eax
419403:	6a 00                	push   $0x0
419405:	8b 48 04             	mov    0x4(%eax),%ecx
419408:	33 c0                	xor    %eax,%eax
41940a:	03 cb                	add    %ebx,%ecx
41940c:	39 41 38             	cmp    %eax,0x38(%ecx)
41940f:	0f 94 c0             	sete   %al
419412:	8d 04 85 03 00 00 00 	lea    0x3(,%eax,4),%eax
419419:	0b 41 0c             	or     0xc(%ecx),%eax
41941c:	50                   	push   %eax
41941d:	e8 0e b7 fe ff       	call   0x404b30
419422:	eb 38                	jmp    0x41945c
419424:	8b 03                	mov    (%ebx),%eax
419426:	8b 48 04             	mov    0x4(%eax),%ecx
419429:	8b 4c 19 38          	mov    0x38(%ecx,%ebx,1),%ecx
41942d:	e8 ce fd ff ff       	call   0x419200
419432:	0f b7 c0             	movzwl %ax,%eax
419435:	8b c8                	mov    %eax,%ecx
419437:	eb 94                	jmp    0x4193cd
419439:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41943c:	6a 01                	push   $0x1
41943e:	6a 04                	push   $0x4
419440:	8b 02                	mov    (%edx),%eax
419442:	8b 48 04             	mov    0x4(%eax),%ecx
419445:	03 ca                	add    %edx,%ecx
419447:	e8 54 12 ff ff       	call   0x40a6a0
41944c:	b8 52 94 41 00       	mov    $0x419452,%eax
419451:	c3                   	ret
419452:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
419455:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
41945c:	8b 03                	mov    (%ebx),%eax
41945e:	8b 40 04             	mov    0x4(%eax),%eax
419461:	83 7c 18 0c 00       	cmpl   $0x0,0xc(%eax,%ebx,1)
419466:	0f 94 c0             	sete   %al
419469:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41946c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
419473:	59                   	pop    %ecx
419474:	5f                   	pop    %edi
419475:	5e                   	pop    %esi
419476:	5b                   	pop    %ebx
419477:	8b e5                	mov    %ebp,%esp
419479:	5d                   	pop    %ebp
41947a:	c2 04 00             	ret    $0x4
41947d:	cc                   	int3
41947e:	cc                   	int3
41947f:	cc                   	int3
419480:	55                   	push   %ebp
419481:	8b ec                	mov    %esp,%ebp
419483:	83 ec 08             	sub    $0x8,%esp
419486:	53                   	push   %ebx
419487:	8b d9                	mov    %ecx,%ebx
419489:	b9 fe ff ff 7f       	mov    $0x7ffffffe,%ecx
41948e:	8b c1                	mov    %ecx,%eax
419490:	56                   	push   %esi
419491:	57                   	push   %edi
419492:	8b 53 10             	mov    0x10(%ebx),%edx
419495:	2b c2                	sub    %edx,%eax
419497:	89 55 fc             	mov    %edx,-0x4(%ebp)
41949a:	83 f8 01             	cmp    $0x1,%eax
41949d:	0f 82 2e 01 00 00    	jb     0x4195d1
4194a3:	8b 73 14             	mov    0x14(%ebx),%esi
4194a6:	8d 7a 01             	lea    0x1(%edx),%edi
4194a9:	83 cf 07             	or     $0x7,%edi
4194ac:	89 75 f8             	mov    %esi,-0x8(%ebp)
4194af:	3b f9                	cmp    %ecx,%edi
4194b1:	76 04                	jbe    0x4194b7
4194b3:	8b f9                	mov    %ecx,%edi
4194b5:	eb 18                	jmp    0x4194cf
4194b7:	8b c6                	mov    %esi,%eax
4194b9:	d1 e8                	shr    $1,%eax
4194bb:	2b c8                	sub    %eax,%ecx
4194bd:	3b f1                	cmp    %ecx,%esi
4194bf:	76 07                	jbe    0x4194c8
4194c1:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
4194c6:	eb 07                	jmp    0x4194cf
4194c8:	03 c6                	add    %esi,%eax
4194ca:	3b f8                	cmp    %eax,%edi
4194cc:	0f 42 f8             	cmovb  %eax,%edi
4194cf:	33 c9                	xor    %ecx,%ecx
4194d1:	8b c7                	mov    %edi,%eax
4194d3:	83 c0 01             	add    $0x1,%eax
4194d6:	0f 92 c1             	setb   %cl
4194d9:	f7 d9                	neg    %ecx
4194db:	0b c8                	or     %eax,%ecx
4194dd:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
4194e3:	0f 87 e3 00 00 00    	ja     0x4195cc
4194e9:	03 c9                	add    %ecx,%ecx
4194eb:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4194f1:	72 2a                	jb     0x41951d
4194f3:	8d 41 23             	lea    0x23(%ecx),%eax
4194f6:	3b c1                	cmp    %ecx,%eax
4194f8:	0f 86 ce 00 00 00    	jbe    0x4195cc
4194fe:	50                   	push   %eax
4194ff:	e8 da 23 00 00       	call   0x41b8de
419504:	83 c4 04             	add    $0x4,%esp
419507:	85 c0                	test   %eax,%eax
419509:	0f 84 c7 00 00 00    	je     0x4195d6
41950f:	8b 55 fc             	mov    -0x4(%ebp),%edx
419512:	8d 70 23             	lea    0x23(%eax),%esi
419515:	83 e6 e0             	and    $0xffffffe0,%esi
419518:	89 46 fc             	mov    %eax,-0x4(%esi)
41951b:	eb 16                	jmp    0x419533
41951d:	85 c9                	test   %ecx,%ecx
41951f:	74 10                	je     0x419531
419521:	51                   	push   %ecx
419522:	e8 b7 23 00 00       	call   0x41b8de
419527:	8b 55 fc             	mov    -0x4(%ebp),%edx
41952a:	83 c4 04             	add    $0x4,%esp
41952d:	8b f0                	mov    %eax,%esi
41952f:	eb 02                	jmp    0x419533
419531:	33 f6                	xor    %esi,%esi
419533:	83 7d f8 08          	cmpl   $0x8,-0x8(%ebp)
419537:	8d 42 01             	lea    0x1(%edx),%eax
41953a:	89 7b 14             	mov    %edi,0x14(%ebx)
41953d:	8d 3c 12             	lea    (%edx,%edx,1),%edi
419540:	89 43 10             	mov    %eax,0x10(%ebx)
419543:	72 60                	jb     0x4195a5
419545:	8b 3b                	mov    (%ebx),%edi
419547:	8d 04 12             	lea    (%edx,%edx,1),%eax
41954a:	50                   	push   %eax
41954b:	57                   	push   %edi
41954c:	56                   	push   %esi
41954d:	e8 fe 3e 00 00       	call   0x41d450
419552:	8b 55 fc             	mov    -0x4(%ebp),%edx
419555:	83 c4 0c             	add    $0xc,%esp
419558:	66 8b 45 10          	mov    0x10(%ebp),%ax
41955c:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
41955f:	66 89 04 31          	mov    %ax,(%ecx,%esi,1)
419563:	33 c0                	xor    %eax,%eax
419565:	66 89 44 31 02       	mov    %ax,0x2(%ecx,%esi,1)
41956a:	8b 45 f8             	mov    -0x8(%ebp),%eax
41956d:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
419574:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
41957a:	72 12                	jb     0x41958e
41957c:	8b 57 fc             	mov    -0x4(%edi),%edx
41957f:	83 c1 23             	add    $0x23,%ecx
419582:	2b fa                	sub    %edx,%edi
419584:	8d 47 fc             	lea    -0x4(%edi),%eax
419587:	83 f8 1f             	cmp    $0x1f,%eax
41958a:	77 4a                	ja     0x4195d6
41958c:	8b fa                	mov    %edx,%edi
41958e:	51                   	push   %ecx
41958f:	57                   	push   %edi
419590:	e8 79 23 00 00       	call   0x41b90e
419595:	83 c4 08             	add    $0x8,%esp
419598:	89 33                	mov    %esi,(%ebx)
41959a:	8b c3                	mov    %ebx,%eax
41959c:	5f                   	pop    %edi
41959d:	5e                   	pop    %esi
41959e:	5b                   	pop    %ebx
41959f:	8b e5                	mov    %ebp,%esp
4195a1:	5d                   	pop    %ebp
4195a2:	c2 0c 00             	ret    $0xc
4195a5:	57                   	push   %edi
4195a6:	53                   	push   %ebx
4195a7:	56                   	push   %esi
4195a8:	e8 a3 3e 00 00       	call   0x41d450
4195ad:	66 8b 4d 10          	mov    0x10(%ebp),%cx
4195b1:	83 c4 0c             	add    $0xc,%esp
4195b4:	33 c0                	xor    %eax,%eax
4195b6:	66 89 0c 37          	mov    %cx,(%edi,%esi,1)
4195ba:	66 89 44 37 02       	mov    %ax,0x2(%edi,%esi,1)
4195bf:	8b c3                	mov    %ebx,%eax
4195c1:	89 33                	mov    %esi,(%ebx)
4195c3:	5f                   	pop    %edi
4195c4:	5e                   	pop    %esi
4195c5:	5b                   	pop    %ebx
4195c6:	8b e5                	mov    %ebp,%esp
4195c8:	5d                   	pop    %ebp
4195c9:	c2 0c 00             	ret    $0xc
4195cc:	e8 2f 7c fe ff       	call   0x401200
4195d1:	e8 ca 7c fe ff       	call   0x4012a0
4195d6:	e8 a4 74 00 00       	call   0x420a7f
4195db:	cc                   	int3
4195dc:	cc                   	int3
4195dd:	cc                   	int3
4195de:	cc                   	int3
4195df:	cc                   	int3
4195e0:	53                   	push   %ebx
4195e1:	8b dc                	mov    %esp,%ebx
4195e3:	83 ec 08             	sub    $0x8,%esp
4195e6:	83 e4 f8             	and    $0xfffffff8,%esp
4195e9:	83 c4 04             	add    $0x4,%esp
4195ec:	55                   	push   %ebp
4195ed:	8b 6b 04             	mov    0x4(%ebx),%ebp
4195f0:	89 6c 24 04          	mov    %ebp,0x4(%esp)
4195f4:	8b ec                	mov    %esp,%ebp
4195f6:	6a ff                	push   $0xffffffff
4195f8:	68 ed e6 43 00       	push   $0x43e6ed
4195fd:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
419603:	50                   	push   %eax
419604:	53                   	push   %ebx
419605:	83 ec 50             	sub    $0x50,%esp
419608:	a1 14 40 45 00       	mov    0x454014,%eax
41960d:	33 c5                	xor    %ebp,%eax
41960f:	89 45 ec             	mov    %eax,-0x14(%ebp)
419612:	56                   	push   %esi
419613:	57                   	push   %edi
419614:	50                   	push   %eax
419615:	8d 45 f4             	lea    -0xc(%ebp),%eax
419618:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
41961e:	89 55 c4             	mov    %edx,-0x3c(%ebp)
419621:	8b f9                	mov    %ecx,%edi
419623:	8b 07                	mov    (%edi),%eax
419625:	8b 77 04             	mov    0x4(%edi),%esi
419628:	8b 4b 08             	mov    0x8(%ebx),%ecx
41962b:	89 4d bc             	mov    %ecx,-0x44(%ebp)
41962e:	3b c6                	cmp    %esi,%eax
419630:	74 18                	je     0x41964a
419632:	51                   	push   %ecx
419633:	8b d6                	mov    %esi,%edx
419635:	8b c8                	mov    %eax,%ecx
419637:	e8 84 2c ff ff       	call   0x40c2c0
41963c:	8b 07                	mov    (%edi),%eax
41963e:	83 c4 04             	add    $0x4,%esp
419641:	8b 55 c4             	mov    -0x3c(%ebp),%edx
419644:	8b 4d bc             	mov    -0x44(%ebp),%ecx
419647:	89 47 04             	mov    %eax,0x4(%edi)
41964a:	8b 72 10             	mov    0x10(%edx),%esi
41964d:	33 c0                	xor    %eax,%eax
41964f:	3b c6                	cmp    %esi,%eax
419651:	89 4d cc             	mov    %ecx,-0x34(%ebp)
419654:	1b c0                	sbb    %eax,%eax
419656:	f7 d8                	neg    %eax
419658:	48                   	dec    %eax
419659:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
41965d:	89 45 c0             	mov    %eax,-0x40(%ebp)
419660:	72 05                	jb     0x419667
419662:	8b 01                	mov    (%ecx),%eax
419664:	89 45 cc             	mov    %eax,-0x34(%ebp)
419667:	8b 42 14             	mov    0x14(%edx),%eax
41966a:	89 55 d0             	mov    %edx,-0x30(%ebp)
41966d:	89 45 c8             	mov    %eax,-0x38(%ebp)
419670:	83 f8 08             	cmp    $0x8,%eax
419673:	72 04                	jb     0x419679
419675:	8b 02                	mov    (%edx),%eax
419677:	eb 03                	jmp    0x41967c
419679:	8b 45 d0             	mov    -0x30(%ebp),%eax
41967c:	ff 71 10             	push   0x10(%ecx)
41967f:	8b d6                	mov    %esi,%edx
419681:	8b c8                	mov    %eax,%ecx
419683:	ff 75 cc             	push   -0x34(%ebp)
419686:	6a 00                	push   $0x0
419688:	e8 33 28 ff ff       	call   0x40bec0
41968d:	8b c8                	mov    %eax,%ecx
41968f:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
419696:	83 c4 0c             	add    $0xc,%esp
419699:	89 4d cc             	mov    %ecx,-0x34(%ebp)
41969c:	33 c0                	xor    %eax,%eax
41969e:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
4196a5:	c7 45 e8 07 00 00 00 	movl   $0x7,-0x18(%ebp)
4196ac:	66 89 45 d4          	mov    %ax,-0x2c(%ebp)
4196b0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4196b3:	83 f9 ff             	cmp    $0xffffffff,%ecx
4196b6:	0f 84 fa 00 00 00    	je     0x4197b6
4196bc:	8b 45 c0             	mov    -0x40(%ebp),%eax
4196bf:	8b 55 c8             	mov    -0x38(%ebp),%edx
4196c2:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%ebp)
4196c9:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
4196d0:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
4196d7:	3b f0                	cmp    %eax,%esi
4196d9:	0f 82 fb 01 00 00    	jb     0x4198da
4196df:	2b f0                	sub    %eax,%esi
4196e1:	2b c8                	sub    %eax,%ecx
4196e3:	3b f1                	cmp    %ecx,%esi
4196e5:	0f 42 ce             	cmovb  %esi,%ecx
4196e8:	8b 75 c4             	mov    -0x3c(%ebp),%esi
4196eb:	83 fa 08             	cmp    $0x8,%edx
4196ee:	72 04                	jb     0x4196f4
4196f0:	8b 16                	mov    (%esi),%edx
4196f2:	eb 02                	jmp    0x4196f6
4196f4:	8b d6                	mov    %esi,%edx
4196f6:	51                   	push   %ecx
4196f7:	8d 04 42             	lea    (%edx,%eax,2),%eax
4196fa:	50                   	push   %eax
4196fb:	8d 4d a4             	lea    -0x5c(%ebp),%ecx
4196fe:	e8 0d 8e fe ff       	call   0x402510
419703:	8b 45 e8             	mov    -0x18(%ebp),%eax
419706:	83 f8 08             	cmp    $0x8,%eax
419709:	72 32                	jb     0x41973d
41970b:	8b 55 d4             	mov    -0x2c(%ebp),%edx
41970e:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
419715:	8b c2                	mov    %edx,%eax
419717:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
41971d:	72 14                	jb     0x419733
41971f:	8b 50 fc             	mov    -0x4(%eax),%edx
419722:	83 c1 23             	add    $0x23,%ecx
419725:	2b c2                	sub    %edx,%eax
419727:	83 c0 fc             	add    $0xfffffffc,%eax
41972a:	83 f8 1f             	cmp    $0x1f,%eax
41972d:	0f 87 ac 01 00 00    	ja     0x4198df
419733:	51                   	push   %ecx
419734:	52                   	push   %edx
419735:	e8 d4 21 00 00       	call   0x41b90e
41973a:	83 c4 08             	add    $0x8,%esp
41973d:	0f 10 45 a4          	movups -0x5c(%ebp),%xmm0
419741:	8b 47 04             	mov    0x4(%edi),%eax
419744:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
419747:	51                   	push   %ecx
419748:	0f 11 45 d4          	movups %xmm0,-0x2c(%ebp)
41974c:	f3 0f 7e 45 b4       	movq   -0x4c(%ebp),%xmm0
419751:	66 0f d6 45 e4       	movq   %xmm0,-0x1c(%ebp)
419756:	3b 47 08             	cmp    0x8(%edi),%eax
419759:	74 0d                	je     0x419768
41975b:	8b c8                	mov    %eax,%ecx
41975d:	e8 5e 8b fe ff       	call   0x4022c0
419762:	83 47 04 18          	addl   $0x18,0x4(%edi)
419766:	eb 08                	jmp    0x419770
419768:	50                   	push   %eax
419769:	8b cf                	mov    %edi,%ecx
41976b:	e8 e0 38 ff ff       	call   0x40d050
419770:	8b 4d bc             	mov    -0x44(%ebp),%ecx
419773:	8b d1                	mov    %ecx,%edx
419775:	8b 41 10             	mov    0x10(%ecx),%eax
419778:	89 45 d0             	mov    %eax,-0x30(%ebp)
41977b:	03 45 cc             	add    -0x34(%ebp),%eax
41977e:	83 79 14 08          	cmpl   $0x8,0x14(%ecx)
419782:	89 45 c0             	mov    %eax,-0x40(%ebp)
419785:	72 02                	jb     0x419789
419787:	8b 11                	mov    (%ecx),%edx
419789:	8b 4e 14             	mov    0x14(%esi),%ecx
41978c:	89 4d c8             	mov    %ecx,-0x38(%ebp)
41978f:	83 f9 08             	cmp    $0x8,%ecx
419792:	72 04                	jb     0x419798
419794:	8b 0e                	mov    (%esi),%ecx
419796:	eb 02                	jmp    0x41979a
419798:	8b ce                	mov    %esi,%ecx