4787c6:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
4787ca:	75 04                	jne    0x4787d0
4787cc:	33 db                	xor    %ebx,%ebx
4787ce:	eb 02                	jmp    0x4787d2
4787d0:	b3 01                	mov    $0x1,%bl
4787d2:	33 c0                	xor    %eax,%eax
4787d4:	5a                   	pop    %edx
4787d5:	59                   	pop    %ecx
4787d6:	59                   	pop    %ecx
4787d7:	64 89 10             	mov    %edx,%fs:(%eax)
4787da:	68 07 88 47 00       	push   $0x478807
4787df:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4787e2:	ba 04 00 00 00       	mov    $0x4,%edx
4787e7:	e8 9c b9 f8 ff       	call   0x404188
4787ec:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4787ef:	b9 05 00 00 00       	mov    $0x5,%ecx
4787f4:	8b 15 e8 10 40 00    	mov    0x4010e8,%edx
4787fa:	e8 19 c4 f8 ff       	call   0x404c18
4787ff:	c3                   	ret
478800:	e9 63 b3 f8 ff       	jmp    0x403b68
478805:	eb d8                	jmp    0x4787df
478807:	8b c3                	mov    %ebx,%eax
478809:	5f                   	pop    %edi
47880a:	5e                   	pop    %esi
47880b:	5b                   	pop    %ebx
47880c:	8b e5                	mov    %ebp,%esp
47880e:	5d                   	pop    %ebp
47880f:	c3                   	ret
478810:	04 fe                	add    $0xfe,%al
478812:	2c 03                	sub    $0x3,%al
478814:	72 14                	jb     0x47882a
478816:	48                   	dec    %eax
478817:	2c 03                	sub    $0x3,%al
478819:	72 0f                	jb     0x47882a
47881b:	2c 05                	sub    $0x5,%al
47881d:	74 0b                	je     0x47882a
47881f:	2c 0b                	sub    $0xb,%al
478821:	74 07                	je     0x47882a
478823:	2c 0c                	sub    $0xc,%al
478825:	74 03                	je     0x47882a
478827:	33 c0                	xor    %eax,%eax
478829:	c3                   	ret
47882a:	b0 01                	mov    $0x1,%al
47882c:	c3                   	ret
47882d:	8d 40 00             	lea    0x0(%eax),%eax
478830:	04 f7                	add    $0xf7,%al
478832:	2c 03                	sub    $0x3,%al
478834:	72 07                	jb     0x47883d
478836:	2c 18                	sub    $0x18,%al
478838:	74 03                	je     0x47883d
47883a:	33 c0                	xor    %eax,%eax
47883c:	c3                   	ret
47883d:	b0 01                	mov    $0x1,%al
47883f:	c3                   	ret
478840:	55                   	push   %ebp
478841:	8b ec                	mov    %esp,%ebp
478843:	83 c4 d8             	add    $0xffffffd8,%esp
478846:	53                   	push   %ebx
478847:	56                   	push   %esi
478848:	57                   	push   %edi
478849:	84 d2                	test   %dl,%dl
47884b:	74 08                	je     0x478855
47884d:	83 c4 f0             	add    $0xfffffff0,%esp
478850:	e8 e3 ae f8 ff       	call   0x403738
478855:	8b 75 08             	mov    0x8(%ebp),%esi
478858:	8d 7d da             	lea    -0x26(%ebp),%edi
47885b:	51                   	push   %ecx
47885c:	b9 09 00 00 00       	mov    $0x9,%ecx
478861:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
478863:	59                   	pop    %ecx
478864:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
478866:	8b f1                	mov    %ecx,%esi
478868:	8b da                	mov    %edx,%ebx
47886a:	8b f8                	mov    %eax,%edi
47886c:	56                   	push   %esi
47886d:	57                   	push   %edi
47886e:	83 c7 08             	add    $0x8,%edi
478871:	8d 75 da             	lea    -0x26(%ebp),%esi
478874:	b9 09 00 00 00       	mov    $0x9,%ecx
478879:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
47887b:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
47887d:	5f                   	pop    %edi
47887e:	5e                   	pop    %esi
47887f:	89 77 04             	mov    %esi,0x4(%edi)
478882:	8a 45 18             	mov    0x18(%ebp),%al
478885:	88 47 2e             	mov    %al,0x2e(%edi)
478888:	8d 47 44             	lea    0x44(%edi),%eax
47888b:	8b 55 10             	mov    0x10(%ebp),%edx
47888e:	e8 25 b9 f8 ff       	call   0x4041b8
478893:	8a 45 14             	mov    0x14(%ebp),%al
478896:	88 47 2f             	mov    %al,0x2f(%edi)
478899:	8b 45 0c             	mov    0xc(%ebp),%eax
47889c:	89 47 48             	mov    %eax,0x48(%edi)
47889f:	8b c7                	mov    %edi,%eax
4788a1:	84 db                	test   %bl,%bl
4788a3:	74 0f                	je     0x4788b4
4788a5:	e8 e6 ae f8 ff       	call   0x403790
4788aa:	64 8f 05 00 00 00 00 	pop    %fs:0x0
4788b1:	83 c4 0c             	add    $0xc,%esp
4788b4:	8b c7                	mov    %edi,%eax
4788b6:	5f                   	pop    %edi
4788b7:	5e                   	pop    %esi
4788b8:	5b                   	pop    %ebx
4788b9:	8b e5                	mov    %ebp,%esp
4788bb:	5d                   	pop    %ebp
4788bc:	c2 14 00             	ret    $0x14
4788bf:	90                   	nop
4788c0:	53                   	push   %ebx
4788c1:	56                   	push   %esi
4788c2:	57                   	push   %edi
4788c3:	e8 d8 ae f8 ff       	call   0x4037a0
4788c8:	8b da                	mov    %edx,%ebx
4788ca:	8b f0                	mov    %eax,%esi
4788cc:	6a 00                	push   $0x0
4788ce:	8d 46 34             	lea    0x34(%esi),%eax
4788d1:	b9 01 00 00 00       	mov    $0x1,%ecx
4788d6:	8b 15 88 7b 47 00    	mov    0x477b88,%edx
4788dc:	e8 bb cc f8 ff       	call   0x40559c
4788e1:	83 c4 04             	add    $0x4,%esp
4788e4:	eb 28                	jmp    0x47890e
4788e6:	8b f8                	mov    %eax,%edi
4788e8:	8b 07                	mov    (%edi),%eax
4788ea:	89 46 30             	mov    %eax,0x30(%esi)
4788ed:	80 7f 04 03          	cmpb   $0x3,0x4(%edi)
4788f1:	75 0e                	jne    0x478901
4788f3:	83 7f 28 00          	cmpl   $0x0,0x28(%edi)
4788f7:	74 08                	je     0x478901
4788f9:	8b 47 28             	mov    0x28(%edi),%eax
4788fc:	e8 eb aa f8 ff       	call   0x4033ec
478901:	8b 15 b0 7b 47 00    	mov    0x477bb0,%edx
478907:	8b c7                	mov    %edi,%eax
478909:	e8 3e c6 f8 ff       	call   0x404f4c
47890e:	8b 46 30             	mov    0x30(%esi),%eax
478911:	85 c0                	test   %eax,%eax
478913:	75 d1                	jne    0x4788e6
478915:	84 db                	test   %bl,%bl
478917:	7e 07                	jle    0x478920
478919:	8b c6                	mov    %esi,%eax
47891b:	e8 68 ae f8 ff       	call   0x403788
478920:	5f                   	pop    %edi
478921:	5e                   	pop    %esi
478922:	5b                   	pop    %ebx
478923:	c3                   	ret
478924:	55                   	push   %ebp
478925:	8b ec                	mov    %esp,%ebp
478927:	83 c4 f0             	add    $0xfffffff0,%esp
47892a:	53                   	push   %ebx
47892b:	56                   	push   %esi
47892c:	33 c9                	xor    %ecx,%ecx
47892e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
478931:	89 4d fc             	mov    %ecx,-0x4(%ebp)
478934:	8b f2                	mov    %edx,%esi
478936:	8b d8                	mov    %eax,%ebx
478938:	33 c0                	xor    %eax,%eax
47893a:	55                   	push   %ebp
47893b:	68 ab 89 47 00       	push   $0x4789ab
478940:	64 ff 30             	push   %fs:(%eax)
478943:	64 89 20             	mov    %esp,%fs:(%eax)
478946:	8d 45 fc             	lea    -0x4(%ebp),%eax
478949:	8d 56 08             	lea    0x8(%esi),%edx
47894c:	e8 9b ab f9 ff       	call   0x4134ec
478951:	8b 55 fc             	mov    -0x4(%ebp),%edx
478954:	8b c3                	mov    %ebx,%eax
478956:	e8 c1 10 00 00       	call   0x479a1c
47895b:	8b d8                	mov    %eax,%ebx
47895d:	8a 43 42             	mov    0x42(%ebx),%al
478960:	84 c0                	test   %al,%al
478962:	74 2c                	je     0x478990
478964:	2c 03                	sub    $0x3,%al
478966:	74 28                	je     0x478990
478968:	6a 00                	push   $0x0
47896a:	8d 55 f8             	lea    -0x8(%ebp),%edx
47896d:	a1 28 b5 49 00       	mov    0x49b528,%eax
478972:	e8 c1 d8 f8 ff       	call   0x406238
478977:	8b 45 f8             	mov    -0x8(%ebp),%eax
47897a:	50                   	push   %eax
47897b:	8b 43 38             	mov    0x38(%ebx),%eax
47897e:	89 45 f0             	mov    %eax,-0x10(%ebp)
478981:	c6 45 f4 0b          	movb   $0xb,-0xc(%ebp)
478985:	8d 55 f0             	lea    -0x10(%ebp),%edx
478988:	33 c9                	xor    %ecx,%ecx
47898a:	58                   	pop    %eax
47898b:	e8 9c 11 ff ff       	call   0x469b2c
478990:	33 c0                	xor    %eax,%eax
478992:	5a                   	pop    %edx
478993:	59                   	pop    %ecx
478994:	59                   	pop    %ecx
478995:	64 89 10             	mov    %edx,%fs:(%eax)
478998:	68 b2 89 47 00       	push   $0x4789b2
47899d:	8d 45 f8             	lea    -0x8(%ebp),%eax
4789a0:	ba 02 00 00 00       	mov    $0x2,%edx
4789a5:	e8 de b7 f8 ff       	call   0x404188
4789aa:	c3                   	ret
4789ab:	e9 b8 b1 f8 ff       	jmp    0x403b68
4789b0:	eb eb                	jmp    0x47899d
4789b2:	8b c3                	mov    %ebx,%eax
4789b4:	5e                   	pop    %esi
4789b5:	5b                   	pop    %ebx
4789b6:	8b e5                	mov    %ebp,%esp
4789b8:	5d                   	pop    %ebp
4789b9:	c3                   	ret
4789ba:	8b c0                	mov    %eax,%eax
4789bc:	53                   	push   %ebx
4789bd:	56                   	push   %esi
4789be:	57                   	push   %edi
4789bf:	8b f9                	mov    %ecx,%edi
4789c1:	8b f2                	mov    %edx,%esi
4789c3:	8b d8                	mov    %eax,%ebx
4789c5:	8b 43 38             	mov    0x38(%ebx),%eax
4789c8:	03 c7                	add    %edi,%eax
4789ca:	50                   	push   %eax
4789cb:	8d 43 34             	lea    0x34(%ebx),%eax
4789ce:	b9 01 00 00 00       	mov    $0x1,%ecx
4789d3:	8b 15 88 7b 47 00    	mov    0x477b88,%edx
4789d9:	e8 be cb f8 ff       	call   0x40559c
4789de:	83 c4 04             	add    $0x4,%esp
4789e1:	8d 04 37             	lea    (%edi,%esi,1),%eax
4789e4:	8b 53 34             	mov    0x34(%ebx),%edx
4789e7:	03 d0                	add    %eax,%edx
4789e9:	8b 4b 38             	mov    0x38(%ebx),%ecx
4789ec:	2b ce                	sub    %esi,%ecx
4789ee:	8b 43 34             	mov    0x34(%ebx),%eax
4789f1:	03 c6                	add    %esi,%eax
4789f3:	e8 7c 9f f8 ff       	call   0x402974
4789f8:	01 7b 38             	add    %edi,0x38(%ebx)
4789fb:	8b 43 34             	mov    0x34(%ebx),%eax
4789fe:	03 c6                	add    %esi,%eax
478a00:	5f                   	pop    %edi
478a01:	5e                   	pop    %esi
478a02:	5b                   	pop    %ebx
478a03:	c3                   	ret
478a04:	53                   	push   %ebx
478a05:	56                   	push   %esi
478a06:	57                   	push   %edi
478a07:	55                   	push   %ebp
478a08:	8b e9                	mov    %ecx,%ebp
478a0a:	8b fa                	mov    %edx,%edi
478a0c:	8b d8                	mov    %eax,%ebx
478a0e:	be 0a 00 00 00       	mov    $0xa,%esi
478a13:	89 73 38             	mov    %esi,0x38(%ebx)
478a16:	56                   	push   %esi
478a17:	8d 43 34             	lea    0x34(%ebx),%eax
478a1a:	b9 01 00 00 00       	mov    $0x1,%ecx
478a1f:	8b 15 88 7b 47 00    	mov    0x477b88,%edx
478a25:	e8 72 cb f8 ff       	call   0x40559c
478a2a:	83 c4 04             	add    $0x4,%esp
478a2d:	33 c9                	xor    %ecx,%ecx
478a2f:	8b d7                	mov    %edi,%edx
478a31:	8b c3                	mov    %ebx,%eax
478a33:	e8 38 08 00 00       	call   0x479270
478a38:	8b 43 34             	mov    0x34(%ebx),%eax
478a3b:	66 c7 00 02 00       	movw   $0x2,(%eax)
478a40:	8b 43 34             	mov    0x34(%ebx),%eax
478a43:	83 c0 02             	add    $0x2,%eax
478a46:	66 8b 53 38          	mov    0x38(%ebx),%dx
478a4a:	66 89 10             	mov    %dx,(%eax)
478a4d:	8b 43 34             	mov    0x34(%ebx),%eax
478a50:	83 c0 04             	add    $0x4,%eax
478a53:	66 c7 00 ff ff       	movw   $0xffff,(%eax)
478a58:	8b 43 34             	mov    0x34(%ebx),%eax
478a5b:	83 c0 06             	add    $0x6,%eax
478a5e:	66 c7 00 0a 00       	movw   $0xa,(%eax)
478a63:	66 8b 43 3c          	mov    0x3c(%ebx),%ax
478a67:	66 83 c0 0a          	add    $0xa,%ax
478a6b:	8b 53 34             	mov    0x34(%ebx),%edx
478a6e:	83 c2 08             	add    $0x8,%edx
478a71:	66 89 02             	mov    %ax,(%edx)
478a74:	8b c5                	mov    %ebp,%eax
478a76:	8b 53 34             	mov    0x34(%ebx),%edx
478a79:	8b 0d 88 7b 47 00    	mov    0x477b88,%ecx
478a7f:	e8 74 cc f8 ff       	call   0x4056f8
478a84:	5d                   	pop    %ebp
478a85:	5f                   	pop    %edi
478a86:	5e                   	pop    %esi
478a87:	5b                   	pop    %ebx
478a88:	c3                   	ret
478a89:	8d 40 00             	lea    0x0(%eax),%eax
478a8c:	55                   	push   %ebp
478a8d:	8b ec                	mov    %esp,%ebp
478a8f:	51                   	push   %ecx
478a90:	b9 04 00 00 00       	mov    $0x4,%ecx
478a95:	6a 00                	push   $0x0
478a97:	6a 00                	push   $0x0
478a99:	49                   	dec    %ecx
478a9a:	75 f9                	jne    0x478a95
478a9c:	87 4d fc             	xchg   %ecx,-0x4(%ebp)
478a9f:	53                   	push   %ebx
478aa0:	56                   	push   %esi
478aa1:	57                   	push   %edi
478aa2:	88 4d ff             	mov    %cl,-0x1(%ebp)
478aa5:	8b fa                	mov    %edx,%edi
478aa7:	8b d8                	mov    %eax,%ebx
478aa9:	33 c0                	xor    %eax,%eax
478aab:	55                   	push   %ebp
478aac:	68 3a 8b 47 00       	push   $0x478b3a
478ab1:	64 ff 30             	push   %fs:(%eax)
478ab4:	64 89 20             	mov    %esp,%fs:(%eax)
478ab7:	8b 45 08             	mov    0x8(%ebp),%eax
478aba:	50                   	push   %eax
478abb:	6a 00                	push   $0x0
478abd:	6a 00                	push   $0x0
478abf:	33 c9                	xor    %ecx,%ecx
478ac1:	b2 01                	mov    $0x1,%dl
478ac3:	8b c3                	mov    %ebx,%eax
478ac5:	e8 82 00 00 00       	call   0x478b4c
478aca:	8b f0                	mov    %eax,%esi
478acc:	8a 47 40             	mov    0x40(%edi),%al
478acf:	88 46 20             	mov    %al,0x20(%esi)
478ad2:	8b c7                	mov    %edi,%eax
478ad4:	8b 10                	mov    (%eax),%edx
478ad6:	ff 92 88 00 00 00    	call   *0x88(%edx)
478adc:	89 46 24             	mov    %eax,0x24(%esi)
478adf:	8d 45 ec             	lea    -0x14(%ebp),%eax
478ae2:	e8 55 e7 f9 ff       	call   0x41723c
478ae7:	8d 45 ec             	lea    -0x14(%ebp),%eax
478aea:	50                   	push   %eax
478aeb:	8d 45 dc             	lea    -0x24(%ebp),%eax
478aee:	8b 57 38             	mov    0x38(%edi),%edx
478af1:	e8 c2 ba f9 ff       	call   0x4145b8
478af6:	8d 45 dc             	lea    -0x24(%ebp),%eax
478af9:	50                   	push   %eax
478afa:	6a 00                	push   $0x0
478afc:	6a 00                	push   $0x0
478afe:	33 c9                	xor    %ecx,%ecx
478b00:	33 d2                	xor    %edx,%edx
478b02:	8b c3                	mov    %ebx,%eax
478b04:	e8 43 00 00 00       	call   0x478b4c
478b09:	50                   	push   %eax
478b0a:	56                   	push   %esi
478b0b:	8a 4d ff             	mov    -0x1(%ebp),%cl
478b0e:	b2 02                	mov    $0x2,%dl
478b10:	8b c3                	mov    %ebx,%eax
478b12:	e8 35 00 00 00       	call   0x478b4c
478b17:	8b d8                	mov    %eax,%ebx
478b19:	33 c0                	xor    %eax,%eax
478b1b:	5a                   	pop    %edx
478b1c:	59                   	pop    %ecx
478b1d:	59                   	pop    %ecx
478b1e:	64 89 10             	mov    %edx,%fs:(%eax)
478b21:	68 41 8b 47 00       	push   $0x478b41
478b26:	8d 45 dc             	lea    -0x24(%ebp),%eax
478b29:	8b 15 04 11 40 00    	mov    0x401104,%edx
478b2f:	b9 02 00 00 00       	mov    $0x2,%ecx
478b34:	e8 df c0 f8 ff       	call   0x404c18
478b39:	c3                   	ret
478b3a:	e9 29 b0 f8 ff       	jmp    0x403b68
478b3f:	eb e5                	jmp    0x478b26
478b41:	8b c3                	mov    %ebx,%eax
478b43:	5f                   	pop    %edi
478b44:	5e                   	pop    %esi