403773:	50                   	push   %eax
403774:	8b cf                	mov    %edi,%ecx
403776:	e8 c7 ec ff ff       	call   0x402442
40377b:	50                   	push   %eax
40377c:	e8 89 0b 00 00       	call   0x40430a
403781:	83 c4 0c             	add    $0xc,%esp
403784:	6a 00                	push   $0x0
403786:	6a 01                	push   $0x1
403788:	8b cb                	mov    %ebx,%ecx
40378a:	e8 ab 06 00 00       	call   0x403e3a
40378f:	8d 45 ec             	lea    -0x14(%ebp),%eax
403792:	8b cb                	mov    %ebx,%ecx
403794:	50                   	push   %eax
403795:	e8 c0 fe ff ff       	call   0x40365a
40379a:	8b c8                	mov    %eax,%ecx
40379c:	e8 a7 ec ff ff       	call   0x402448
4037a1:	50                   	push   %eax
4037a2:	8b cb                	mov    %ebx,%ecx
4037a4:	e8 7b 01 00 00       	call   0x403924
4037a9:	8b c8                	mov    %eax,%ecx
4037ab:	e8 9b ec ff ff       	call   0x40244b
4037b0:	8b cb                	mov    %ebx,%ecx
4037b2:	e8 a9 05 00 00       	call   0x403d60
4037b7:	ff 75 0c             	push   0xc(%ebp)
4037ba:	8b cb                	mov    %ebx,%ecx
4037bc:	89 30                	mov    %esi,(%eax)
4037be:	e8 10 01 00 00       	call   0x4038d3
4037c3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4037c6:	5f                   	pop    %edi
4037c7:	5e                   	pop    %esi
4037c8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4037cf:	5b                   	pop    %ebx
4037d0:	8b e5                	mov    %ebp,%esp
4037d2:	5d                   	pop    %ebp
4037d3:	c2 08 00             	ret    $0x8
4037d6:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4037d9:	6a 00                	push   $0x0
4037db:	6a 01                	push   $0x1
4037dd:	e8 58 06 00 00       	call   0x403e3a
4037e2:	6a 00                	push   $0x0
4037e4:	6a 00                	push   $0x0
4037e6:	e8 2b 48 00 00       	call   0x408016
4037eb:	cc                   	int3
4037ec:	56                   	push   %esi
4037ed:	8b f2                	mov    %edx,%esi
4037ef:	83 c8 ff             	or     $0xffffffff,%eax
4037f2:	33 d2                	xor    %edx,%edx
4037f4:	f7 74 24 08          	divl   0x8(%esp)
4037f8:	3b f0                	cmp    %eax,%esi
4037fa:	77 32                	ja     0x40382e
4037fc:	0f af 74 24 08       	imul   0x8(%esp),%esi
403801:	81 fe 00 10 00 00    	cmp    $0x1000,%esi
403807:	72 1a                	jb     0x403823
403809:	f6 c1 1f             	test   $0x1f,%cl
40380c:	75 20                	jne    0x40382e
40380e:	8b 41 fc             	mov    -0x4(%ecx),%eax
403811:	3b c1                	cmp    %ecx,%eax
403813:	73 19                	jae    0x40382e
403815:	2b c8                	sub    %eax,%ecx
403817:	83 f9 04             	cmp    $0x4,%ecx
40381a:	72 12                	jb     0x40382e
40381c:	83 f9 23             	cmp    $0x23,%ecx
40381f:	77 0d                	ja     0x40382e
403821:	8b c8                	mov    %eax,%ecx
403823:	51                   	push   %ecx
403824:	e8 a5 30 00 00       	call   0x4068ce
403829:	59                   	pop    %ecx
40382a:	5e                   	pop    %esi
40382b:	c2 04 00             	ret    $0x4
40382e:	e8 bf 84 00 00       	call   0x40bcf2
403833:	cc                   	int3
403834:	83 c8 ff             	or     $0xffffffff,%eax
403837:	f0 0f c1 41 04       	lock xadd %eax,0x4(%ecx)
40383c:	6a 00                	push   $0x0
40383e:	58                   	pop    %eax
40383f:	0f 44 c1             	cmove  %ecx,%eax
403842:	c3                   	ret
403843:	e8 e6 00 00 00       	call   0x40392e
403848:	8b 54 24 08          	mov    0x8(%esp),%edx
40384c:	8b 4c 24 04          	mov    0x4(%esp),%ecx
403850:	50                   	push   %eax
403851:	e8 80 eb ff ff       	call   0x4023d6
403856:	c2 08 00             	ret    $0x8
403859:	55                   	push   %ebp
40385a:	8b ec                	mov    %esp,%ebp
40385c:	83 ec 10             	sub    $0x10,%esp
40385f:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
403863:	8d 41 18             	lea    0x18(%ecx),%eax
403866:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40386a:	50                   	push   %eax
40386b:	8d 45 f0             	lea    -0x10(%ebp),%eax
40386e:	50                   	push   %eax
40386f:	ff 75 08             	push   0x8(%ebp)
403872:	8d 45 f8             	lea    -0x8(%ebp),%eax
403875:	50                   	push   %eax
403876:	e8 f6 21 00 00       	call   0x405a71
40387b:	0f b6 55 f8          	movzbl -0x8(%ebp),%edx
40387f:	83 c4 10             	add    $0x10,%esp
403882:	0f b6 4d 0c          	movzbl 0xc(%ebp),%ecx
403886:	83 f8 01             	cmp    $0x1,%eax
403889:	0f 45 d1             	cmovne %ecx,%edx
40388c:	8a c2                	mov    %dl,%al
40388e:	8b e5                	mov    %ebp,%esp
403890:	5d                   	pop    %ebp
403891:	c2 08 00             	ret    $0x8
403894:	55                   	push   %ebp
403895:	8b ec                	mov    %esp,%ebp
403897:	83 ec 0c             	sub    $0xc,%esp
40389a:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40389e:	8d 41 18             	lea    0x18(%ecx),%eax
4038a1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4038a5:	50                   	push   %eax
4038a6:	8d 45 f4             	lea    -0xc(%ebp),%eax
4038a9:	50                   	push   %eax
4038aa:	6a 01                	push   $0x1
4038ac:	8d 45 08             	lea    0x8(%ebp),%eax
4038af:	50                   	push   %eax
4038b0:	8d 45 fc             	lea    -0x4(%ebp),%eax
4038b3:	50                   	push   %eax
4038b4:	e8 16 22 00 00       	call   0x405acf
4038b9:	0f b7 4d fc          	movzwl -0x4(%ebp),%ecx
4038bd:	83 c4 14             	add    $0x14,%esp
4038c0:	85 c0                	test   %eax,%eax
4038c2:	ba ff ff 00 00       	mov    $0xffff,%edx
4038c7:	0f 48 ca             	cmovs  %edx,%ecx
4038ca:	66 8b c1             	mov    %cx,%ax
4038cd:	8b e5                	mov    %ebp,%esp
4038cf:	5d                   	pop    %ebp
4038d0:	c2 04 00             	ret    $0x4
4038d3:	55                   	push   %ebp
4038d4:	8b ec                	mov    %esp,%ebp
4038d6:	51                   	push   %ecx
4038d7:	56                   	push   %esi
4038d8:	e8 26 00 00 00       	call   0x403903
4038dd:	8b 75 08             	mov    0x8(%ebp),%esi
4038e0:	8d 4d ff             	lea    -0x1(%ebp),%ecx
4038e3:	51                   	push   %ecx
4038e4:	8b c8                	mov    %eax,%ecx
4038e6:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
4038ea:	89 70 10             	mov    %esi,0x10(%eax)
4038ed:	e8 4a 04 00 00       	call   0x403d3c
4038f2:	03 c6                	add    %esi,%eax
4038f4:	50                   	push   %eax
4038f5:	e8 35 09 00 00       	call   0x40422f
4038fa:	59                   	pop    %ecx
4038fb:	59                   	pop    %ecx
4038fc:	5e                   	pop    %esi
4038fd:	8b e5                	mov    %ebp,%esp
4038ff:	5d                   	pop    %ebp
403900:	c2 04 00             	ret    $0x4
403903:	e9 13 00 00 00       	jmp    0x40391b
403908:	e9 11 00 00 00       	jmp    0x40391e
40390d:	e9 0f 00 00 00       	jmp    0x403921
403912:	8b c1                	mov    %ecx,%eax
403914:	c3                   	ret
403915:	8b c1                	mov    %ecx,%eax
403917:	c3                   	ret
403918:	8b c1                	mov    %ecx,%eax
40391a:	c3                   	ret
40391b:	8b c1                	mov    %ecx,%eax
40391d:	c3                   	ret
40391e:	8b c1                	mov    %ecx,%eax
403920:	c3                   	ret
403921:	8b c1                	mov    %ecx,%eax
403923:	c3                   	ret
403924:	e9 e9 ff ff ff       	jmp    0x403912
403929:	e9 e7 ff ff ff       	jmp    0x403915
40392e:	e9 e5 ff ff ff       	jmp    0x403918
403933:	b8 20 6b 42 00       	mov    $0x426b20,%eax
403938:	e8 83 34 00 00       	call   0x406dc0
40393d:	83 ec 38             	sub    $0x38,%esp
403940:	53                   	push   %ebx
403941:	56                   	push   %esi
403942:	33 f6                	xor    %esi,%esi
403944:	57                   	push   %edi
403945:	8b 7d 08             	mov    0x8(%ebp),%edi
403948:	8b de                	mov    %esi,%ebx
40394a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40394d:	85 ff                	test   %edi,%edi
40394f:	74 43                	je     0x403994
403951:	39 37                	cmp    %esi,(%edi)
403953:	75 3f                	jne    0x403994
403955:	6a 44                	push   $0x44
403957:	e8 3f 2f 00 00       	call   0x40689b
40395c:	59                   	pop    %ecx
40395d:	89 45 08             	mov    %eax,0x8(%ebp)
403960:	89 75 fc             	mov    %esi,-0x4(%ebp)
403963:	85 c0                	test   %eax,%eax
403965:	74 1e                	je     0x403985
403967:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40396a:	e8 dc 08 00 00       	call   0x40424b
40396f:	50                   	push   %eax
403970:	8d 4d bc             	lea    -0x44(%ebp),%ecx
403973:	e8 ba f0 ff ff       	call   0x402a32
403978:	8b 4d 08             	mov    0x8(%ebp),%ecx
40397b:	43                   	inc    %ebx
40397c:	56                   	push   %esi
40397d:	50                   	push   %eax
40397e:	e8 1d f0 ff ff       	call   0x4029a0
403983:	8b f0                	mov    %eax,%esi
403985:	89 37                	mov    %esi,(%edi)
403987:	f6 c3 01             	test   $0x1,%bl
40398a:	74 08                	je     0x403994
40398c:	8d 4d bc             	lea    -0x44(%ebp),%ecx
40398f:	e8 3c f6 ff ff       	call   0x402fd0
403994:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403997:	6a 02                	push   $0x2
403999:	58                   	pop    %eax
40399a:	5f                   	pop    %edi
40399b:	5e                   	pop    %esi
40399c:	5b                   	pop    %ebx
40399d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4039a4:	8b e5                	mov    %ebp,%esp
4039a6:	5d                   	pop    %ebp
4039a7:	c3                   	ret
4039a8:	55                   	push   %ebp
4039a9:	8b ec                	mov    %esp,%ebp
4039ab:	83 ec 10             	sub    $0x10,%esp
4039ae:	8d 45 f0             	lea    -0x10(%ebp),%eax
4039b1:	56                   	push   %esi
4039b2:	57                   	push   %edi
4039b3:	50                   	push   %eax
4039b4:	e8 e0 1f 00 00       	call   0x405999
4039b9:	8b f0                	mov    %eax,%esi
4039bb:	8b 45 08             	mov    0x8(%ebp),%eax
4039be:	8b f8                	mov    %eax,%edi
4039c0:	59                   	pop    %ecx
4039c1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4039c2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4039c3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4039c4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4039c5:	5f                   	pop    %edi
4039c6:	5e                   	pop    %esi
4039c7:	8b e5                	mov    %ebp,%esp
4039c9:	5d                   	pop    %ebp
4039ca:	c2 04 00             	ret    $0x4
4039cd:	55                   	push   %ebp
4039ce:	8b ec                	mov    %esp,%ebp
4039d0:	83 ec 2c             	sub    $0x2c,%esp
4039d3:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4039d6:	56                   	push   %esi
4039d7:	57                   	push   %edi
4039d8:	50                   	push   %eax
4039d9:	e8 26 20 00 00       	call   0x405a04
4039de:	59                   	pop    %ecx
4039df:	6a 0b                	push   $0xb
4039e1:	8b f0                	mov    %eax,%esi
4039e3:	8b 45 08             	mov    0x8(%ebp),%eax
4039e6:	59                   	pop    %ecx
4039e7:	8b f8                	mov    %eax,%edi
4039e9:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4039eb:	5f                   	pop    %edi
4039ec:	5e                   	pop    %esi
4039ed:	8b e5                	mov    %ebp,%esp
4039ef:	5d                   	pop    %ebp
4039f0:	c2 04 00             	ret    $0x4
4039f3:	8b 49 04             	mov    0x4(%ecx),%ecx
4039f6:	56                   	push   %esi
4039f7:	8b 74 24 08          	mov    0x8(%esp),%esi
4039fb:	57                   	push   %edi
4039fc:	33 ff                	xor    %edi,%edi
4039fe:	3b 71 0c             	cmp    0xc(%ecx),%esi
403a01:	73 08                	jae    0x403a0b
403a03:	8b 41 08             	mov    0x8(%ecx),%eax
403a06:	8b 04 b0             	mov    (%eax,%esi,4),%eax
403a09:	eb 02                	jmp    0x403a0d
403a0b:	8b c7                	mov    %edi,%eax
403a0d:	85 c0                	test   %eax,%eax
403a0f:	75 17                	jne    0x403a28
403a11:	38 41 14             	cmp    %al,0x14(%ecx)
403a14:	74 12                	je     0x403a28
403a16:	e8 da 24 00 00       	call   0x405ef5
403a1b:	3b 70 0c             	cmp    0xc(%eax),%esi
403a1e:	73 06                	jae    0x403a26
403a20:	8b 40 08             	mov    0x8(%eax),%eax
403a23:	8b 3c b0             	mov    (%eax,%esi,4),%edi
403a26:	8b c7                	mov    %edi,%eax
403a28:	5f                   	pop    %edi
403a29:	5e                   	pop    %esi
403a2a:	c2 04 00             	ret    $0x4
403a2d:	53                   	push   %ebx
403a2e:	8b 5c 24 08          	mov    0x8(%esp),%ebx
403a32:	8b cb                	mov    %ebx,%ecx
403a34:	c1 e1 02             	shl    $0x2,%ecx
403a37:	8b c3                	mov    %ebx,%eax
403a39:	f7 d1                	not    %ecx
403a3b:	83 e1 04             	and    $0x4,%ecx
403a3e:	8b d1                	mov    %ecx,%edx
403a40:	83 ca 02             	or     $0x2,%edx
403a43:	24 02                	and    $0x2,%al
403a45:	8b c3                	mov    %ebx,%eax
403a47:	0f 45 d1             	cmovne %ecx,%edx
403a4a:	8b ca                	mov    %edx,%ecx
403a4c:	83 c9 08             	or     $0x8,%ecx
403a4f:	24 08                	and    $0x8,%al
403a51:	0f 44 ca             	cmove  %edx,%ecx
403a54:	8b c1                	mov    %ecx,%eax
403a56:	83 c8 10             	or     $0x10,%eax
403a59:	80 e3 04             	and    $0x4,%bl
403a5c:	5b                   	pop    %ebx
403a5d:	0f 44 c1             	cmove  %ecx,%eax
403a60:	c2 04 00             	ret    $0x4
403a63:	8b 41 1c             	mov    0x1c(%ecx),%eax
403a66:	33 d2                	xor    %edx,%edx
403a68:	39 10                	cmp    %edx,(%eax)
403a6a:	74 05                	je     0x403a71
403a6c:	8b 41 2c             	mov    0x2c(%ecx),%eax
403a6f:	8b 10                	mov    (%eax),%edx
403a71:	8b c2                	mov    %edx,%eax
403a73:	99                   	cltd
403a74:	c3                   	ret
403a75:	8b 41 2c             	mov    0x2c(%ecx),%eax
403a78:	ff 08                	decl   (%eax)
403a7a:	8b 51 1c             	mov    0x1c(%ecx),%edx
403a7d:	8b 02                	mov    (%edx),%eax
403a7f:	8d 48 02             	lea    0x2(%eax),%ecx
403a82:	89 0a                	mov    %ecx,(%edx)
403a84:	c3                   	ret
403a85:	56                   	push   %esi
403a86:	57                   	push   %edi
403a87:	8b f9                	mov    %ecx,%edi
403a89:	e8 83 0d 00 00       	call   0x404811
403a8e:	8b 74 24 0c          	mov    0xc(%esp),%esi
403a92:	8b cf                	mov    %edi,%ecx
403a94:	3b c6                	cmp    %esi,%eax
403a96:	72 62                	jb     0x403afa
403a98:	e8 c3 02 00 00       	call   0x403d60
403a9d:	39 30                	cmp    %esi,(%eax)
403a9f:	73 13                	jae    0x403ab4
403aa1:	8b cf                	mov    %edi,%ecx
403aa3:	e8 c1 02 00 00       	call   0x403d69
403aa8:	8b cf                	mov    %edi,%ecx
403aaa:	ff 30                	push   (%eax)
403aac:	56                   	push   %esi
403aad:	e8 e0 fb ff ff       	call   0x403692
403ab2:	eb 3c                	jmp    0x403af0
403ab4:	80 7c 24 10 00       	cmpb   $0x0,0x10(%esp)
403ab9:	74 29                	je     0x403ae4
403abb:	83 fe 10             	cmp    $0x10,%esi
403abe:	73 24                	jae    0x403ae4
403ac0:	8b cf                	mov    %edi,%ecx
403ac2:	e8 a2 02 00 00       	call   0x403d69
403ac7:	3b 30                	cmp    (%eax),%esi
403ac9:	73 04                	jae    0x403acf
403acb:	8b c6                	mov    %esi,%eax
403acd:	eb 09                	jmp    0x403ad8
403acf:	8b cf                	mov    %edi,%ecx
403ad1:	e8 93 02 00 00       	call   0x403d69
403ad6:	8b 00                	mov    (%eax),%eax
403ad8:	50                   	push   %eax