403605:	68 80 2b 42 00       	push   $0x422b80
40360a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
403610:	50                   	push   %eax
403611:	51                   	push   %ecx
403612:	56                   	push   %esi
403613:	a1 14 30 43 00       	mov    0x433014,%eax
403618:	33 c5                	xor    %ebp,%eax
40361a:	50                   	push   %eax
40361b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40361e:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
403624:	8b f1                	mov    %ecx,%esi
403626:	e8 c4 36 00 00       	call   0x406cef
40362b:	84 c0                	test   %al,%al
40362d:	75 07                	jne    0x403636
40362f:	8b 0e                	mov    (%esi),%ecx
403631:	e8 da 0e 00 00       	call   0x404510
403636:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40363d:	8b 0e                	mov    (%esi),%ecx
40363f:	8b 01                	mov    (%ecx),%eax
403641:	8b 40 04             	mov    0x4(%eax),%eax
403644:	8b 4c 08 38          	mov    0x38(%eax,%ecx,1),%ecx
403648:	85 c9                	test   %ecx,%ecx
40364a:	74 05                	je     0x403651
40364c:	8b 01                	mov    (%ecx),%eax
40364e:	ff 50 08             	call   *0x8(%eax)
403651:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403654:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40365b:	59                   	pop    %ecx
40365c:	5e                   	pop    %esi
40365d:	8b e5                	mov    %ebp,%esp
40365f:	5d                   	pop    %ebp
403660:	c3                   	ret
403661:	cc                   	int3
403662:	cc                   	int3
403663:	cc                   	int3
403664:	cc                   	int3
403665:	cc                   	int3
403666:	cc                   	int3
403667:	cc                   	int3
403668:	cc                   	int3
403669:	cc                   	int3
40366a:	cc                   	int3
40366b:	cc                   	int3
40366c:	cc                   	int3
40366d:	cc                   	int3
40366e:	cc                   	int3
40366f:	cc                   	int3
403670:	55                   	push   %ebp
403671:	8b ec                	mov    %esp,%ebp
403673:	6a ff                	push   $0xffffffff
403675:	68 b5 2b 42 00       	push   $0x422bb5
40367a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
403680:	50                   	push   %eax
403681:	83 ec 0c             	sub    $0xc,%esp
403684:	53                   	push   %ebx
403685:	56                   	push   %esi
403686:	57                   	push   %edi
403687:	a1 14 30 43 00       	mov    0x433014,%eax
40368c:	33 c5                	xor    %ebp,%eax
40368e:	50                   	push   %eax
40368f:	8d 45 f4             	lea    -0xc(%ebp),%eax
403692:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
403698:	8b d9                	mov    %ecx,%ebx
40369a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40369d:	8b 7d 08             	mov    0x8(%ebp),%edi
4036a0:	89 3b                	mov    %edi,(%ebx)
4036a2:	8b 17                	mov    (%edi),%edx
4036a4:	8b 42 04             	mov    0x4(%edx),%eax
4036a7:	8b 4c 38 38          	mov    0x38(%eax,%edi,1),%ecx
4036ab:	85 c9                	test   %ecx,%ecx
4036ad:	74 07                	je     0x4036b6
4036af:	8b 01                	mov    (%ecx),%eax
4036b1:	ff 50 04             	call   *0x4(%eax)
4036b4:	8b 17                	mov    (%edi),%edx
4036b6:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4036bd:	8b 42 04             	mov    0x4(%edx),%eax
4036c0:	83 7c 38 0c 00       	cmpl   $0x0,0xc(%eax,%edi,1)
4036c5:	8d 34 38             	lea    (%eax,%edi,1),%esi
4036c8:	74 07                	je     0x4036d1
4036ca:	32 c0                	xor    %al,%al
4036cc:	e9 98 00 00 00       	jmp    0x403769
4036d1:	8b 76 3c             	mov    0x3c(%esi),%esi
4036d4:	85 f6                	test   %esi,%esi
4036d6:	0f 84 8b 00 00 00    	je     0x403767
4036dc:	3b f7                	cmp    %edi,%esi
4036de:	0f 84 83 00 00 00    	je     0x403767
4036e4:	8b 06                	mov    (%esi),%eax
4036e6:	8b 40 04             	mov    0x4(%eax),%eax
4036e9:	8b 44 30 38          	mov    0x38(%eax,%esi,1),%eax
4036ed:	89 45 08             	mov    %eax,0x8(%ebp)
4036f0:	85 c0                	test   %eax,%eax
4036f2:	74 66                	je     0x40375a
4036f4:	56                   	push   %esi
4036f5:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4036f8:	e8 73 ff ff ff       	call   0x403670
4036fd:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
403701:	80 7d ec 00          	cmpb   $0x0,-0x14(%ebp)
403705:	74 23                	je     0x40372a
403707:	8b 4d 08             	mov    0x8(%ebp),%ecx
40370a:	8b 01                	mov    (%ecx),%eax
40370c:	ff 50 34             	call   *0x34(%eax)
40370f:	83 f8 ff             	cmp    $0xffffffff,%eax
403712:	75 16                	jne    0x40372a
403714:	8b 06                	mov    (%esi),%eax
403716:	6a 00                	push   $0x0
403718:	8b 48 04             	mov    0x4(%eax),%ecx
40371b:	8b 44 31 0c          	mov    0xc(%ecx,%esi,1),%eax
40371f:	03 ce                	add    %esi,%ecx
403721:	83 c8 04             	or     $0x4,%eax
403724:	50                   	push   %eax
403725:	e8 76 e7 ff ff       	call   0x401ea0
40372a:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40372e:	e8 bc 35 00 00       	call   0x406cef
403733:	84 c0                	test   %al,%al
403735:	75 08                	jne    0x40373f
403737:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40373a:	e8 d1 0d 00 00       	call   0x404510
40373f:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
403743:	8b 4d e8             	mov    -0x18(%ebp),%ecx
403746:	8b 01                	mov    (%ecx),%eax
403748:	8b 40 04             	mov    0x4(%eax),%eax
40374b:	8b 4c 08 38          	mov    0x38(%eax,%ecx,1),%ecx
40374f:	85 c9                	test   %ecx,%ecx
403751:	74 05                	je     0x403758
403753:	8b 01                	mov    (%ecx),%eax
403755:	ff 50 08             	call   *0x8(%eax)
403758:	8b 17                	mov    (%edi),%edx
40375a:	8b 42 04             	mov    0x4(%edx),%eax
40375d:	83 7c 38 0c 00       	cmpl   $0x0,0xc(%eax,%edi,1)
403762:	0f 94 c0             	sete   %al
403765:	eb 02                	jmp    0x403769
403767:	b0 01                	mov    $0x1,%al
403769:	88 43 04             	mov    %al,0x4(%ebx)
40376c:	8b c3                	mov    %ebx,%eax
40376e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403771:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
403778:	59                   	pop    %ecx
403779:	5f                   	pop    %edi
40377a:	5e                   	pop    %esi
40377b:	5b                   	pop    %ebx
40377c:	8b e5                	mov    %ebp,%esp
40377e:	5d                   	pop    %ebp
40377f:	c2 04 00             	ret    $0x4
403782:	cc                   	int3
403783:	cc                   	int3
403784:	cc                   	int3
403785:	cc                   	int3
403786:	cc                   	int3
403787:	cc                   	int3
403788:	cc                   	int3
403789:	cc                   	int3
40378a:	cc                   	int3
40378b:	cc                   	int3
40378c:	cc                   	int3
40378d:	cc                   	int3
40378e:	cc                   	int3
40378f:	cc                   	int3
403790:	55                   	push   %ebp
403791:	8b ec                	mov    %esp,%ebp
403793:	ff 75 0c             	push   0xc(%ebp)
403796:	33 d2                	xor    %edx,%edx
403798:	b8 04 00 00 00       	mov    $0x4,%eax
40379d:	39 51 38             	cmp    %edx,0x38(%ecx)
4037a0:	0f 45 c2             	cmovne %edx,%eax
4037a3:	0b 41 0c             	or     0xc(%ecx),%eax
4037a6:	0b 45 08             	or     0x8(%ebp),%eax
4037a9:	50                   	push   %eax
4037aa:	e8 f1 e6 ff ff       	call   0x401ea0
4037af:	5d                   	pop    %ebp
4037b0:	c2 08 00             	ret    $0x8
4037b3:	cc                   	int3
4037b4:	cc                   	int3
4037b5:	cc                   	int3
4037b6:	cc                   	int3
4037b7:	cc                   	int3
4037b8:	cc                   	int3
4037b9:	cc                   	int3
4037ba:	cc                   	int3
4037bb:	cc                   	int3
4037bc:	cc                   	int3
4037bd:	cc                   	int3
4037be:	cc                   	int3
4037bf:	cc                   	int3
4037c0:	55                   	push   %ebp
4037c1:	8b ec                	mov    %esp,%ebp
4037c3:	51                   	push   %ecx
4037c4:	53                   	push   %ebx
4037c5:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4037c8:	56                   	push   %esi
4037c9:	8b f1                	mov    %ecx,%esi
4037cb:	57                   	push   %edi
4037cc:	8b 4e 14             	mov    0x14(%esi),%ecx
4037cf:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4037d2:	3b d9                	cmp    %ecx,%ebx
4037d4:	77 28                	ja     0x4037fe
4037d6:	8b fe                	mov    %esi,%edi
4037d8:	83 f9 10             	cmp    $0x10,%ecx
4037db:	72 02                	jb     0x4037df
4037dd:	8b 3e                	mov    (%esi),%edi
4037df:	53                   	push   %ebx
4037e0:	ff 75 08             	push   0x8(%ebp)
4037e3:	89 5e 10             	mov    %ebx,0x10(%esi)
4037e6:	57                   	push   %edi
4037e7:	e8 84 51 00 00       	call   0x408970
4037ec:	83 c4 0c             	add    $0xc,%esp
4037ef:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
4037f3:	8b c6                	mov    %esi,%eax
4037f5:	5f                   	pop    %edi
4037f6:	5e                   	pop    %esi
4037f7:	5b                   	pop    %ebx
4037f8:	8b e5                	mov    %ebp,%esp
4037fa:	5d                   	pop    %ebp
4037fb:	c2 08 00             	ret    $0x8
4037fe:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
403804:	0f 87 d1 00 00 00    	ja     0x4038db
40380a:	8b fb                	mov    %ebx,%edi
40380c:	83 cf 0f             	or     $0xf,%edi
40380f:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
403815:	77 2f                	ja     0x403846
403817:	8b d1                	mov    %ecx,%edx
403819:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40381e:	d1 ea                	shr    $1,%edx
403820:	2b c2                	sub    %edx,%eax
403822:	3b c8                	cmp    %eax,%ecx
403824:	77 20                	ja     0x403846
403826:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
403829:	3b f8                	cmp    %eax,%edi
40382b:	0f 42 f8             	cmovb  %eax,%edi
40382e:	8d 4f 01             	lea    0x1(%edi),%ecx
403831:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
403837:	72 31                	jb     0x40386a
403839:	8d 41 23             	lea    0x23(%ecx),%eax
40383c:	3b c1                	cmp    %ecx,%eax
40383e:	0f 86 9c 00 00 00    	jbe    0x4038e0
403844:	eb 0a                	jmp    0x403850
403846:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
40384b:	b8 23 00 00 80       	mov    $0x80000023,%eax
403850:	50                   	push   %eax
403851:	e8 c6 3d 00 00       	call   0x40761c
403856:	8b c8                	mov    %eax,%ecx
403858:	83 c4 04             	add    $0x4,%esp
40385b:	85 c9                	test   %ecx,%ecx
40385d:	74 77                	je     0x4038d6
40385f:	8d 41 23             	lea    0x23(%ecx),%eax
403862:	83 e0 e0             	and    $0xffffffe0,%eax
403865:	89 48 fc             	mov    %ecx,-0x4(%eax)
403868:	eb 11                	jmp    0x40387b
40386a:	85 c9                	test   %ecx,%ecx
40386c:	74 0b                	je     0x403879
40386e:	51                   	push   %ecx
40386f:	e8 a8 3d 00 00       	call   0x40761c
403874:	83 c4 04             	add    $0x4,%esp
403877:	eb 02                	jmp    0x40387b
403879:	33 c0                	xor    %eax,%eax
40387b:	53                   	push   %ebx
40387c:	ff 75 08             	push   0x8(%ebp)
40387f:	89 45 0c             	mov    %eax,0xc(%ebp)
403882:	50                   	push   %eax
403883:	89 5e 10             	mov    %ebx,0x10(%esi)
403886:	89 7e 14             	mov    %edi,0x14(%esi)
403889:	e8 e2 50 00 00       	call   0x408970
40388e:	8b 7d 0c             	mov    0xc(%ebp),%edi
403891:	83 c4 0c             	add    $0xc,%esp
403894:	8b 45 fc             	mov    -0x4(%ebp),%eax
403897:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
40389b:	83 f8 10             	cmp    $0x10,%eax
40389e:	72 29                	jb     0x4038c9
4038a0:	8d 48 01             	lea    0x1(%eax),%ecx
4038a3:	8b 06                	mov    (%esi),%eax
4038a5:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4038ab:	72 12                	jb     0x4038bf
4038ad:	8b 50 fc             	mov    -0x4(%eax),%edx
4038b0:	83 c1 23             	add    $0x23,%ecx
4038b3:	2b c2                	sub    %edx,%eax
4038b5:	83 c0 fc             	add    $0xfffffffc,%eax
4038b8:	83 f8 1f             	cmp    $0x1f,%eax
4038bb:	77 19                	ja     0x4038d6
4038bd:	8b c2                	mov    %edx,%eax
4038bf:	51                   	push   %ecx
4038c0:	50                   	push   %eax
4038c1:	e8 86 3d 00 00       	call   0x40764c
4038c6:	83 c4 08             	add    $0x8,%esp
4038c9:	89 3e                	mov    %edi,(%esi)
4038cb:	8b c6                	mov    %esi,%eax
4038cd:	5f                   	pop    %edi
4038ce:	5e                   	pop    %esi
4038cf:	5b                   	pop    %ebx
4038d0:	8b e5                	mov    %ebp,%esp
4038d2:	5d                   	pop    %ebp
4038d3:	c2 08 00             	ret    $0x8
4038d6:	e8 b6 97 00 00       	call   0x40d091
4038db:	e8 d0 da ff ff       	call   0x4013b0
4038e0:	e8 fb d9 ff ff       	call   0x4012e0
4038e5:	cc                   	int3
4038e6:	cc                   	int3
4038e7:	cc                   	int3
4038e8:	cc                   	int3
4038e9:	cc                   	int3
4038ea:	cc                   	int3
4038eb:	cc                   	int3
4038ec:	cc                   	int3
4038ed:	cc                   	int3
4038ee:	cc                   	int3
4038ef:	cc                   	int3
4038f0:	55                   	push   %ebp
4038f1:	8b ec                	mov    %esp,%ebp
4038f3:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4038f7:	56                   	push   %esi
4038f8:	8b f1                	mov    %ecx,%esi
4038fa:	c7 06 78 43 42 00    	movl   $0x424378,(%esi)
403900:	74 0b                	je     0x40390d
403902:	6a 08                	push   $0x8
403904:	56                   	push   %esi
403905:	e8 42 3d 00 00       	call   0x40764c
40390a:	83 c4 08             	add    $0x8,%esp
40390d:	8b c6                	mov    %esi,%eax
40390f:	5e                   	pop    %esi
403910:	5d                   	pop    %ebp
403911:	c2 04 00             	ret    $0x4
403914:	cc                   	int3
403915:	cc                   	int3
403916:	cc                   	int3
403917:	cc                   	int3
403918:	cc                   	int3
403919:	cc                   	int3
40391a:	cc                   	int3
40391b:	cc                   	int3
40391c:	cc                   	int3
40391d:	cc                   	int3
40391e:	cc                   	int3
40391f:	cc                   	int3
403920:	55                   	push   %ebp
403921:	8b ec                	mov    %esp,%ebp
403923:	8b 51 14             	mov    0x14(%ecx),%edx
403926:	8b ca                	mov    %edx,%ecx
403928:	56                   	push   %esi
403929:	8b 75 08             	mov    0x8(%ebp),%esi
40392c:	57                   	push   %edi
40392d:	8d 79 01             	lea    0x1(%ecx),%edi
403930:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
403936:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40393d:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
403944:	c6 06 00             	movb   $0x0,(%esi)
403947:	8a 01                	mov    (%ecx),%al
403949:	41                   	inc    %ecx
40394a:	84 c0                	test   %al,%al
40394c:	75 f9                	jne    0x403947
40394e:	2b cf                	sub    %edi,%ecx
403950:	51                   	push   %ecx
403951:	52                   	push   %edx