4097d1:	8b d8                	mov    %eax,%ebx
4097d3:	6a 00                	push   $0x0
4097d5:	68 80 00 00 00       	push   $0x80
4097da:	6a 02                	push   $0x2
4097dc:	6a 00                	push   $0x0
4097de:	6a 00                	push   $0x0
4097e0:	68 00 00 00 c0       	push   $0xc0000000
4097e5:	8b c3                	mov    %ebx,%eax
4097e7:	e8 2c b5 ff ff       	call   0x404d18
4097ec:	50                   	push   %eax
4097ed:	e8 d6 d8 ff ff       	call   0x4070c8
4097f2:	5b                   	pop    %ebx
4097f3:	c3                   	ret
4097f4:	e8 d7 ff ff ff       	call   0x4097d0
4097f9:	c3                   	ret
4097fa:	8b c0                	mov    %eax,%eax
4097fc:	53                   	push   %ebx
4097fd:	56                   	push   %esi
4097fe:	57                   	push   %edi
4097ff:	51                   	push   %ecx
409800:	8b f9                	mov    %ecx,%edi
409802:	8b f2                	mov    %edx,%esi
409804:	8b d8                	mov    %eax,%ebx
409806:	6a 00                	push   $0x0
409808:	8d 44 24 04          	lea    0x4(%esp),%eax
40980c:	50                   	push   %eax
40980d:	57                   	push   %edi
40980e:	56                   	push   %esi
40980f:	53                   	push   %ebx
409810:	e8 4b db ff ff       	call   0x407360
409815:	85 c0                	test   %eax,%eax
409817:	75 07                	jne    0x409820
409819:	c7 04 24 ff ff ff ff 	movl   $0xffffffff,(%esp)
409820:	8b 04 24             	mov    (%esp),%eax
409823:	5a                   	pop    %edx
409824:	5f                   	pop    %edi
409825:	5e                   	pop    %esi
409826:	5b                   	pop    %ebx
409827:	c3                   	ret
409828:	53                   	push   %ebx
409829:	56                   	push   %esi
40982a:	57                   	push   %edi
40982b:	51                   	push   %ecx
40982c:	8b f9                	mov    %ecx,%edi
40982e:	8b f2                	mov    %edx,%esi
409830:	8b d8                	mov    %eax,%ebx
409832:	6a 00                	push   $0x0
409834:	8d 44 24 04          	lea    0x4(%esp),%eax
409838:	50                   	push   %eax
409839:	57                   	push   %edi
40983a:	56                   	push   %esi
40983b:	53                   	push   %ebx
40983c:	e8 b7 db ff ff       	call   0x4073f8
409841:	85 c0                	test   %eax,%eax
409843:	75 07                	jne    0x40984c
409845:	c7 04 24 ff ff ff ff 	movl   $0xffffffff,(%esp)
40984c:	8b 04 24             	mov    (%esp),%eax
40984f:	5a                   	pop    %edx
409850:	5f                   	pop    %edi
409851:	5e                   	pop    %esi
409852:	5b                   	pop    %ebx
409853:	c3                   	ret
409854:	55                   	push   %ebp
409855:	8b ec                	mov    %esp,%ebp
409857:	83 c4 f8             	add    $0xfffffff8,%esp
40985a:	53                   	push   %ebx
40985b:	56                   	push   %esi
40985c:	8b f2                	mov    %edx,%esi
40985e:	8b d8                	mov    %eax,%ebx
409860:	8b 45 08             	mov    0x8(%ebp),%eax
409863:	89 45 f8             	mov    %eax,-0x8(%ebp)
409866:	8b 45 0c             	mov    0xc(%ebp),%eax
409869:	89 45 fc             	mov    %eax,-0x4(%ebp)
40986c:	56                   	push   %esi
40986d:	8d 45 fc             	lea    -0x4(%ebp),%eax
409870:	50                   	push   %eax
409871:	8b 45 f8             	mov    -0x8(%ebp),%eax
409874:	50                   	push   %eax
409875:	53                   	push   %ebx
409876:	e8 15 db ff ff       	call   0x407390
40987b:	89 45 f8             	mov    %eax,-0x8(%ebp)
40987e:	8b 45 f8             	mov    -0x8(%ebp),%eax
409881:	8b 55 fc             	mov    -0x4(%ebp),%edx
409884:	5e                   	pop    %esi
409885:	5b                   	pop    %ebx
409886:	59                   	pop    %ecx
409887:	59                   	pop    %ecx
409888:	5d                   	pop    %ebp
409889:	c2 08 00             	ret    $0x8
40988c:	50                   	push   %eax
40988d:	e8 0e d8 ff ff       	call   0x4070a0
409892:	c3                   	ret
409893:	90                   	nop
409894:	55                   	push   %ebp
409895:	8b ec                	mov    %esp,%ebp
409897:	81 c4 b4 fe ff ff    	add    $0xfffffeb4,%esp
40989d:	53                   	push   %ebx
40989e:	8b d8                	mov    %eax,%ebx
4098a0:	8d 85 b4 fe ff ff    	lea    -0x14c(%ebp),%eax
4098a6:	50                   	push   %eax
4098a7:	8b c3                	mov    %ebx,%eax
4098a9:	e8 6a b4 ff ff       	call   0x404d18
4098ae:	50                   	push   %eax
4098af:	e8 94 d8 ff ff       	call   0x407148
4098b4:	83 f8 ff             	cmp    $0xffffffff,%eax
4098b7:	74 34                	je     0x4098ed
4098b9:	50                   	push   %eax
4098ba:	e8 79 d8 ff ff       	call   0x407138
4098bf:	f6 85 b4 fe ff ff 10 	testb  $0x10,-0x14c(%ebp)
4098c6:	75 25                	jne    0x4098ed
4098c8:	8d 45 f4             	lea    -0xc(%ebp),%eax
4098cb:	50                   	push   %eax
4098cc:	8d 85 c8 fe ff ff    	lea    -0x138(%ebp),%eax
4098d2:	50                   	push   %eax
4098d3:	e8 50 d8 ff ff       	call   0x407128
4098d8:	8d 45 fc             	lea    -0x4(%ebp),%eax
4098db:	50                   	push   %eax
4098dc:	8d 45 fe             	lea    -0x2(%ebp),%eax
4098df:	50                   	push   %eax
4098e0:	8d 45 f4             	lea    -0xc(%ebp),%eax
4098e3:	50                   	push   %eax
4098e4:	e8 37 d8 ff ff       	call   0x407120
4098e9:	85 c0                	test   %eax,%eax
4098eb:	75 07                	jne    0x4098f4
4098ed:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4098f4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4098f7:	5b                   	pop    %ebx
4098f8:	8b e5                	mov    %ebp,%esp
4098fa:	5d                   	pop    %ebp
4098fb:	c3                   	ret
4098fc:	53                   	push   %ebx
4098fd:	8b d8                	mov    %eax,%ebx
4098ff:	8b c3                	mov    %ebx,%eax
409901:	e8 8e ff ff ff       	call   0x409894
409906:	40                   	inc    %eax
409907:	0f 95 c0             	setne  %al
40990a:	5b                   	pop    %ebx
40990b:	c3                   	ret
40990c:	53                   	push   %ebx
40990d:	8b d8                	mov    %eax,%ebx
40990f:	8b c3                	mov    %ebx,%eax
409911:	e8 02 b4 ff ff       	call   0x404d18
409916:	50                   	push   %eax
409917:	e8 d4 d8 ff ff       	call   0x4071f0
40991c:	83 f8 ff             	cmp    $0xffffffff,%eax
40991f:	74 04                	je     0x409925
409921:	a8 10                	test   $0x10,%al
409923:	75 04                	jne    0x409929
409925:	33 c0                	xor    %eax,%eax
409927:	5b                   	pop    %ebx
409928:	c3                   	ret
409929:	b0 01                	mov    $0x1,%al
40992b:	5b                   	pop    %ebx
40992c:	c3                   	ret
40992d:	8d 40 00             	lea    0x0(%eax),%eax
409930:	55                   	push   %ebp
409931:	8b ec                	mov    %esp,%ebp
409933:	33 c9                	xor    %ecx,%ecx
409935:	51                   	push   %ecx
409936:	51                   	push   %ecx
409937:	51                   	push   %ecx
409938:	51                   	push   %ecx
409939:	53                   	push   %ebx
40993a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40993d:	8b 45 fc             	mov    -0x4(%ebp),%eax
409940:	e8 c3 b3 ff ff       	call   0x404d08
409945:	33 c0                	xor    %eax,%eax
409947:	55                   	push   %ebp
409948:	68 03 9a 40 00       	push   $0x409a03
40994d:	64 ff 30             	push   %fs:(%eax)
409950:	64 89 20             	mov    %esp,%fs:(%eax)
409953:	b3 01                	mov    $0x1,%bl
409955:	8b 45 fc             	mov    -0x4(%ebp),%eax
409958:	e8 c3 b1 ff ff       	call   0x404b20
40995d:	85 c0                	test   %eax,%eax
40995f:	75 17                	jne    0x409978
409961:	8b 0d 54 72 6a 00    	mov    0x6a7254,%ecx
409967:	b2 01                	mov    $0x1,%dl
409969:	a1 cc 84 40 00       	mov    0x4084cc,%eax
40996e:	e8 91 35 00 00       	call   0x40cf04
409973:	e8 cc a8 ff ff       	call   0x404244
409978:	8d 55 f8             	lea    -0x8(%ebp),%edx
40997b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40997e:	e8 d9 40 00 00       	call   0x40da5c
409983:	8b 55 f8             	mov    -0x8(%ebp),%edx
409986:	8d 45 fc             	lea    -0x4(%ebp),%eax
409989:	e8 72 af ff ff       	call   0x404900
40998e:	8b 45 fc             	mov    -0x4(%ebp),%eax
409991:	e8 8a b1 ff ff       	call   0x404b20
409996:	83 f8 03             	cmp    $0x3,%eax
409999:	7c 4d                	jl     0x4099e8
40999b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40999e:	e8 69 ff ff ff       	call   0x40990c
4099a3:	84 c0                	test   %al,%al
4099a5:	75 41                	jne    0x4099e8
4099a7:	8d 55 f4             	lea    -0xc(%ebp),%edx
4099aa:	8b 45 fc             	mov    -0x4(%ebp),%eax
4099ad:	e8 ee 01 00 00       	call   0x409ba0
4099b2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4099b5:	8b 55 fc             	mov    -0x4(%ebp),%edx
4099b8:	e8 a7 b2 ff ff       	call   0x404c64
4099bd:	74 29                	je     0x4099e8
4099bf:	8d 55 f0             	lea    -0x10(%ebp),%edx
4099c2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4099c5:	e8 d6 01 00 00       	call   0x409ba0
4099ca:	8b 45 f0             	mov    -0x10(%ebp),%eax
4099cd:	e8 5e ff ff ff       	call   0x409930
4099d2:	84 c0                	test   %al,%al
4099d4:	74 0c                	je     0x4099e2
4099d6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4099d9:	e8 f6 03 00 00       	call   0x409dd4
4099de:	84 c0                	test   %al,%al
4099e0:	75 04                	jne    0x4099e6
4099e2:	33 db                	xor    %ebx,%ebx
4099e4:	eb 02                	jmp    0x4099e8
4099e6:	b3 01                	mov    $0x1,%bl
4099e8:	33 c0                	xor    %eax,%eax
4099ea:	5a                   	pop    %edx
4099eb:	59                   	pop    %ecx
4099ec:	59                   	pop    %ecx
4099ed:	64 89 10             	mov    %edx,%fs:(%eax)
4099f0:	68 0a 9a 40 00       	push   $0x409a0a
4099f5:	8d 45 f0             	lea    -0x10(%ebp),%eax
4099f8:	ba 04 00 00 00       	mov    $0x4,%edx
4099fd:	e8 8a ae ff ff       	call   0x40488c
409a02:	c3                   	ret
409a03:	e9 04 a8 ff ff       	jmp    0x40420c
409a08:	eb eb                	jmp    0x4099f5
409a0a:	8b c3                	mov    %ebx,%eax
409a0c:	5b                   	pop    %ebx
409a0d:	8b e5                	mov    %ebp,%esp
409a0f:	5d                   	pop    %ebp
409a10:	c3                   	ret
409a11:	8d 40 00             	lea    0x0(%eax),%eax
409a14:	53                   	push   %ebx
409a15:	83 c4 f8             	add    $0xfffffff8,%esp
409a18:	8b d8                	mov    %eax,%ebx
409a1a:	eb 18                	jmp    0x409a34
409a1c:	8d 43 18             	lea    0x18(%ebx),%eax
409a1f:	50                   	push   %eax
409a20:	8b 43 14             	mov    0x14(%ebx),%eax
409a23:	50                   	push   %eax
409a24:	e8 2f d7 ff ff       	call   0x407158
409a29:	85 c0                	test   %eax,%eax
409a2b:	75 07                	jne    0x409a34
409a2d:	e8 ce d7 ff ff       	call   0x407200
409a32:	eb 3f                	jmp    0x409a73
409a34:	8b 43 18             	mov    0x18(%ebx),%eax
409a37:	23 43 10             	and    0x10(%ebx),%eax
409a3a:	75 e0                	jne    0x409a1c
409a3c:	54                   	push   %esp
409a3d:	8d 43 2c             	lea    0x2c(%ebx),%eax
409a40:	50                   	push   %eax
409a41:	e8 e2 d6 ff ff       	call   0x407128
409a46:	53                   	push   %ebx
409a47:	8d 43 02             	lea    0x2(%ebx),%eax
409a4a:	50                   	push   %eax
409a4b:	8d 44 24 08          	lea    0x8(%esp),%eax
409a4f:	50                   	push   %eax
409a50:	e8 cb d6 ff ff       	call   0x407120
409a55:	8b 43 38             	mov    0x38(%ebx),%eax
409a58:	89 43 04             	mov    %eax,0x4(%ebx)
409a5b:	8b 43 18             	mov    0x18(%ebx),%eax
409a5e:	89 43 08             	mov    %eax,0x8(%ebx)
409a61:	8d 43 0c             	lea    0xc(%ebx),%eax
409a64:	8d 53 44             	lea    0x44(%ebx),%edx
409a67:	b9 04 01 00 00       	mov    $0x104,%ecx
409a6c:	e8 5f b0 ff ff       	call   0x404ad0
409a71:	33 c0                	xor    %eax,%eax
409a73:	59                   	pop    %ecx
409a74:	5a                   	pop    %edx
409a75:	5b                   	pop    %ebx
409a76:	c3                   	ret
409a77:	90                   	nop
409a78:	53                   	push   %ebx
409a79:	56                   	push   %esi
409a7a:	57                   	push   %edi
409a7b:	8b d9                	mov    %ecx,%ebx
409a7d:	8b f8                	mov    %eax,%edi
409a7f:	f7 d2                	not    %edx
409a81:	83 e2 1e             	and    $0x1e,%edx
409a84:	89 53 10             	mov    %edx,0x10(%ebx)
409a87:	8d 43 18             	lea    0x18(%ebx),%eax
409a8a:	50                   	push   %eax
409a8b:	8b c7                	mov    %edi,%eax
409a8d:	e8 86 b2 ff ff       	call   0x404d18
409a92:	50                   	push   %eax
409a93:	e8 b0 d6 ff ff       	call   0x407148
409a98:	8b f0                	mov    %eax,%esi
409a9a:	89 73 14             	mov    %esi,0x14(%ebx)
409a9d:	83 fe ff             	cmp    $0xffffffff,%esi
409aa0:	74 16                	je     0x409ab8
409aa2:	8b c3                	mov    %ebx,%eax
409aa4:	e8 6b ff ff ff       	call   0x409a14
409aa9:	8b f0                	mov    %eax,%esi
409aab:	85 f6                	test   %esi,%esi
409aad:	74 10                	je     0x409abf
409aaf:	8b c3                	mov    %ebx,%eax
409ab1:	e8 36 00 00 00       	call   0x409aec
409ab6:	eb 07                	jmp    0x409abf
409ab8:	e8 43 d7 ff ff       	call   0x407200
409abd:	8b f0                	mov    %eax,%esi
409abf:	8b c6                	mov    %esi,%eax
409ac1:	5f                   	pop    %edi
409ac2:	5e                   	pop    %esi
409ac3:	5b                   	pop    %ebx
409ac4:	c3                   	ret
409ac5:	8d 40 00             	lea    0x0(%eax),%eax
409ac8:	53                   	push   %ebx
409ac9:	8b d8                	mov    %eax,%ebx
409acb:	8d 43 18             	lea    0x18(%ebx),%eax
409ace:	50                   	push   %eax
409acf:	8b 43 14             	mov    0x14(%ebx),%eax
409ad2:	50                   	push   %eax
409ad3:	e8 80 d6 ff ff       	call   0x407158
409ad8:	85 c0                	test   %eax,%eax
409ada:	74 09                	je     0x409ae5
409adc:	8b c3                	mov    %ebx,%eax
409ade:	e8 31 ff ff ff       	call   0x409a14
409ae3:	5b                   	pop    %ebx
409ae4:	c3                   	ret
409ae5:	e8 16 d7 ff ff       	call   0x407200
409aea:	5b                   	pop    %ebx
409aeb:	c3                   	ret
409aec:	53                   	push   %ebx
409aed:	8b d8                	mov    %eax,%ebx
409aef:	8b 43 14             	mov    0x14(%ebx),%eax
409af2:	83 f8 ff             	cmp    $0xffffffff,%eax
409af5:	74 0d                	je     0x409b04
409af7:	50                   	push   %eax
409af8:	e8 3b d6 ff ff       	call   0x407138
409afd:	c7 43 14 ff ff ff ff 	movl   $0xffffffff,0x14(%ebx)
409b04:	5b                   	pop    %ebx
409b05:	c3                   	ret
409b06:	8b c0                	mov    %eax,%eax
409b08:	53                   	push   %ebx
409b09:	8b d8                	mov    %eax,%ebx
409b0b:	8b c3                	mov    %ebx,%eax
409b0d:	e8 06 b2 ff ff       	call   0x404d18
409b12:	50                   	push   %eax
409b13:	e8 f0 d5 ff ff       	call   0x407108
409b18:	83 f8 01             	cmp    $0x1,%eax
409b1b:	1b c0                	sbb    %eax,%eax
409b1d:	40                   	inc    %eax
409b1e:	5b                   	pop    %ebx
409b1f:	c3                   	ret
409b20:	53                   	push   %ebx
409b21:	56                   	push   %esi
409b22:	8b f0                	mov    %eax,%esi
409b24:	8b c6                	mov    %esi,%eax