4017a5:	ff 15 10 30 40 00    	call   *0x403010
4017ab:	33 c0                	xor    %eax,%eax
4017ad:	c3                   	ret
4017ae:	ff 25 90 30 40 00    	jmp    *0x403090
4017b4:	6a 0c                	push   $0xc
4017b6:	68 78 1c 40 00       	push   $0x401c78
4017bb:	e8 b8 02 00 00       	call   0x401a78
4017c0:	33 c9                	xor    %ecx,%ecx
4017c2:	8b 45 08             	mov    0x8(%ebp),%eax
4017c5:	85 c0                	test   %eax,%eax
4017c7:	74 4b                	je     0x401814
4017c9:	83 f8 ff             	cmp    $0xffffffff,%eax
4017cc:	74 46                	je     0x401814
4017ce:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4017d1:	ba 4d 5a 00 00       	mov    $0x5a4d,%edx
4017d6:	66 39 10             	cmp    %dx,(%eax)
4017d9:	75 32                	jne    0x40180d
4017db:	8b 50 3c             	mov    0x3c(%eax),%edx
4017de:	85 d2                	test   %edx,%edx
4017e0:	78 2b                	js     0x40180d
4017e2:	81 fa 00 00 00 10    	cmp    $0x10000000,%edx
4017e8:	73 23                	jae    0x40180d
4017ea:	03 c2                	add    %edx,%eax
4017ec:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4017ef:	8b 08                	mov    (%eax),%ecx
4017f1:	81 e9 50 45 00 00    	sub    $0x4550,%ecx
4017f7:	f7 d9                	neg    %ecx
4017f9:	1b c9                	sbb    %ecx,%ecx
4017fb:	f7 d1                	not    %ecx
4017fd:	23 c8                	and    %eax,%ecx
4017ff:	eb 09                	jmp    0x40180a
401801:	33 c0                	xor    %eax,%eax
401803:	40                   	inc    %eax
401804:	c3                   	ret
401805:	8b 65 e8             	mov    -0x18(%ebp),%esp
401808:	33 c9                	xor    %ecx,%ecx
40180a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40180d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401814:	8b c1                	mov    %ecx,%eax
401816:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401819:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401820:	59                   	pop    %ecx
401821:	5f                   	pop    %edi
401822:	5e                   	pop    %esi
401823:	5b                   	pop    %ebx
401824:	c9                   	leave
401825:	c2 04 00             	ret    $0x4
401828:	8b ff                	mov    %edi,%edi
40182a:	55                   	push   %ebp
40182b:	8b ec                	mov    %esp,%ebp
40182d:	6a 00                	push   $0x0
40182f:	ff 15 1c 30 40 00    	call   *0x40301c
401835:	85 c0                	test   %eax,%eax
401837:	74 20                	je     0x401859
401839:	50                   	push   %eax
40183a:	e8 75 ff ff ff       	call   0x4017b4
40183f:	85 c0                	test   %eax,%eax
401841:	74 16                	je     0x401859
401843:	0f b7 48 5c          	movzwl 0x5c(%eax),%ecx
401847:	6a 02                	push   $0x2
401849:	58                   	pop    %eax
40184a:	66 3b c8             	cmp    %ax,%cx
40184d:	74 0d                	je     0x40185c
40184f:	83 f9 03             	cmp    $0x3,%ecx
401852:	75 05                	jne    0x401859
401854:	33 c0                	xor    %eax,%eax
401856:	40                   	inc    %eax
401857:	5d                   	pop    %ebp
401858:	c3                   	ret
401859:	8b 45 08             	mov    0x8(%ebp),%eax
40185c:	5d                   	pop    %ebp
40185d:	c3                   	ret
40185e:	ff 25 88 30 40 00    	jmp    *0x403088
401864:	cc                   	int3
401865:	cc                   	int3
401866:	cc                   	int3
401867:	cc                   	int3
401868:	cc                   	int3
401869:	cc                   	int3
40186a:	cc                   	int3
40186b:	cc                   	int3
40186c:	cc                   	int3
40186d:	cc                   	int3
40186e:	cc                   	int3
40186f:	cc                   	int3
401870:	33 c0                	xor    %eax,%eax
401872:	c3                   	ret
401873:	cc                   	int3
401874:	cc                   	int3
401875:	cc                   	int3
401876:	cc                   	int3
401877:	cc                   	int3
401878:	cc                   	int3
401879:	cc                   	int3
40187a:	cc                   	int3
40187b:	cc                   	int3
40187c:	cc                   	int3
40187d:	cc                   	int3
40187e:	cc                   	int3
40187f:	cc                   	int3
401880:	8b ff                	mov    %edi,%edi
401882:	55                   	push   %ebp
401883:	8b ec                	mov    %esp,%ebp
401885:	8b 45 08             	mov    0x8(%ebp),%eax
401888:	33 d2                	xor    %edx,%edx
40188a:	53                   	push   %ebx
40188b:	56                   	push   %esi
40188c:	57                   	push   %edi
40188d:	8b 48 3c             	mov    0x3c(%eax),%ecx
401890:	03 c8                	add    %eax,%ecx
401892:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
401896:	0f b7 59 06          	movzwl 0x6(%ecx),%ebx
40189a:	83 c0 18             	add    $0x18,%eax
40189d:	03 c1                	add    %ecx,%eax
40189f:	85 db                	test   %ebx,%ebx
4018a1:	74 1b                	je     0x4018be
4018a3:	8b 7d 0c             	mov    0xc(%ebp),%edi
4018a6:	8b 70 0c             	mov    0xc(%eax),%esi
4018a9:	3b fe                	cmp    %esi,%edi
4018ab:	72 09                	jb     0x4018b6
4018ad:	8b 48 08             	mov    0x8(%eax),%ecx
4018b0:	03 ce                	add    %esi,%ecx
4018b2:	3b f9                	cmp    %ecx,%edi
4018b4:	72 0a                	jb     0x4018c0
4018b6:	42                   	inc    %edx
4018b7:	83 c0 28             	add    $0x28,%eax
4018ba:	3b d3                	cmp    %ebx,%edx
4018bc:	72 e8                	jb     0x4018a6
4018be:	33 c0                	xor    %eax,%eax
4018c0:	5f                   	pop    %edi
4018c1:	5e                   	pop    %esi
4018c2:	5b                   	pop    %ebx
4018c3:	5d                   	pop    %ebp
4018c4:	c3                   	ret
4018c5:	cc                   	int3
4018c6:	cc                   	int3
4018c7:	cc                   	int3
4018c8:	cc                   	int3
4018c9:	cc                   	int3
4018ca:	cc                   	int3
4018cb:	cc                   	int3
4018cc:	cc                   	int3
4018cd:	cc                   	int3
4018ce:	cc                   	int3
4018cf:	cc                   	int3
4018d0:	8b ff                	mov    %edi,%edi
4018d2:	55                   	push   %ebp
4018d3:	8b ec                	mov    %esp,%ebp
4018d5:	6a fe                	push   $0xfffffffe
4018d7:	68 98 1c 40 00       	push   $0x401c98
4018dc:	68 e0 1a 40 00       	push   $0x401ae0
4018e1:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4018e7:	50                   	push   %eax
4018e8:	83 ec 08             	sub    $0x8,%esp
4018eb:	53                   	push   %ebx
4018ec:	56                   	push   %esi
4018ed:	57                   	push   %edi
4018ee:	a1 04 20 40 00       	mov    0x402004,%eax
4018f3:	31 45 f8             	xor    %eax,-0x8(%ebp)
4018f6:	33 c5                	xor    %ebp,%eax
4018f8:	50                   	push   %eax
4018f9:	8d 45 f0             	lea    -0x10(%ebp),%eax
4018fc:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
401902:	89 65 e8             	mov    %esp,-0x18(%ebp)
401905:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40190c:	68 00 00 40 00       	push   $0x400000
401911:	e8 7a 00 00 00       	call   0x401990
401916:	83 c4 04             	add    $0x4,%esp
401919:	85 c0                	test   %eax,%eax
40191b:	74 54                	je     0x401971
40191d:	8b 45 08             	mov    0x8(%ebp),%eax
401920:	2d 00 00 40 00       	sub    $0x400000,%eax
401925:	50                   	push   %eax
401926:	68 00 00 40 00       	push   $0x400000
40192b:	e8 50 ff ff ff       	call   0x401880
401930:	83 c4 08             	add    $0x8,%esp
401933:	85 c0                	test   %eax,%eax
401935:	74 3a                	je     0x401971
401937:	8b 40 24             	mov    0x24(%eax),%eax
40193a:	c1 e8 1f             	shr    $0x1f,%eax
40193d:	f7 d0                	not    %eax
40193f:	83 e0 01             	and    $0x1,%eax
401942:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401949:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40194c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401953:	59                   	pop    %ecx
401954:	5f                   	pop    %edi
401955:	5e                   	pop    %esi
401956:	5b                   	pop    %ebx
401957:	8b e5                	mov    %ebp,%esp
401959:	5d                   	pop    %ebp
40195a:	c3                   	ret
40195b:	8b 45 ec             	mov    -0x14(%ebp),%eax
40195e:	8b 00                	mov    (%eax),%eax
401960:	33 c9                	xor    %ecx,%ecx
401962:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
401968:	0f 94 c1             	sete   %cl
40196b:	8b c1                	mov    %ecx,%eax
40196d:	c3                   	ret
40196e:	8b 65 e8             	mov    -0x18(%ebp),%esp
401971:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401978:	33 c0                	xor    %eax,%eax
40197a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40197d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401984:	59                   	pop    %ecx
401985:	5f                   	pop    %edi
401986:	5e                   	pop    %esi
401987:	5b                   	pop    %ebx
401988:	8b e5                	mov    %ebp,%esp
40198a:	5d                   	pop    %ebp
40198b:	c3                   	ret
40198c:	cc                   	int3
40198d:	cc                   	int3
40198e:	cc                   	int3
40198f:	cc                   	int3
401990:	8b ff                	mov    %edi,%edi
401992:	55                   	push   %ebp
401993:	8b ec                	mov    %esp,%ebp
401995:	8b 4d 08             	mov    0x8(%ebp),%ecx
401998:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40199d:	66 39 01             	cmp    %ax,(%ecx)
4019a0:	75 1f                	jne    0x4019c1
4019a2:	8b 41 3c             	mov    0x3c(%ecx),%eax
4019a5:	03 c1                	add    %ecx,%eax
4019a7:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
4019ad:	75 12                	jne    0x4019c1
4019af:	b9 0b 01 00 00       	mov    $0x10b,%ecx
4019b4:	66 39 48 18          	cmp    %cx,0x18(%eax)
4019b8:	75 07                	jne    0x4019c1
4019ba:	b8 01 00 00 00       	mov    $0x1,%eax
4019bf:	5d                   	pop    %ebp
4019c0:	c3                   	ret
4019c1:	33 c0                	xor    %eax,%eax
4019c3:	5d                   	pop    %ebp
4019c4:	c3                   	ret
4019c5:	8b ff                	mov    %edi,%edi
4019c7:	55                   	push   %ebp
4019c8:	8b ec                	mov    %esp,%ebp
4019ca:	83 ec 14             	sub    $0x14,%esp
4019cd:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
4019d1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4019d5:	a1 04 20 40 00       	mov    0x402004,%eax
4019da:	56                   	push   %esi
4019db:	57                   	push   %edi
4019dc:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
4019e1:	be 00 00 ff ff       	mov    $0xffff0000,%esi
4019e6:	3b c7                	cmp    %edi,%eax
4019e8:	74 04                	je     0x4019ee
4019ea:	85 c6                	test   %eax,%esi
4019ec:	75 64                	jne    0x401a52
4019ee:	8d 45 f4             	lea    -0xc(%ebp),%eax
4019f1:	50                   	push   %eax
4019f2:	ff 15 50 30 40 00    	call   *0x403050
4019f8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4019fb:	33 45 f4             	xor    -0xc(%ebp),%eax
4019fe:	89 45 fc             	mov    %eax,-0x4(%ebp)
401a01:	ff 15 34 30 40 00    	call   *0x403034
401a07:	31 45 fc             	xor    %eax,-0x4(%ebp)
401a0a:	ff 15 30 30 40 00    	call   *0x403030
401a10:	31 45 fc             	xor    %eax,-0x4(%ebp)
401a13:	ff 15 4c 30 40 00    	call   *0x40304c
401a19:	33 45 fc             	xor    -0x4(%ebp),%eax
401a1c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
401a1f:	33 c1                	xor    %ecx,%eax
401a21:	89 45 fc             	mov    %eax,-0x4(%ebp)
401a24:	8d 45 ec             	lea    -0x14(%ebp),%eax
401a27:	50                   	push   %eax
401a28:	ff 15 3c 30 40 00    	call   *0x40303c
401a2e:	8b 45 f0             	mov    -0x10(%ebp),%eax
401a31:	33 45 ec             	xor    -0x14(%ebp),%eax
401a34:	33 45 fc             	xor    -0x4(%ebp),%eax
401a37:	8b c8                	mov    %eax,%ecx
401a39:	3b c7                	cmp    %edi,%eax
401a3b:	74 08                	je     0x401a45
401a3d:	85 35 04 20 40 00    	test   %esi,0x402004
401a43:	75 07                	jne    0x401a4c
401a45:	b8 4f e6 40 bb       	mov    $0xbb40e64f,%eax
401a4a:	8b c8                	mov    %eax,%ecx
401a4c:	89 0d 04 20 40 00    	mov    %ecx,0x402004
401a52:	f7 d0                	not    %eax
401a54:	5f                   	pop    %edi
401a55:	a3 08 20 40 00       	mov    %eax,0x402008
401a5a:	5e                   	pop    %esi
401a5b:	c9                   	leave
401a5c:	c3                   	ret
401a5d:	68 00 00 03 00       	push   $0x30000
401a62:	68 00 00 01 00       	push   $0x10000
401a67:	ff 15 5c 30 40 00    	call   *0x40305c
401a6d:	59                   	pop    %ecx
401a6e:	59                   	pop    %ecx
401a6f:	c3                   	ret
401a70:	ff 25 68 30 40 00    	jmp    *0x403068
401a76:	cc                   	int3
401a77:	cc                   	int3
401a78:	68 e0 1a 40 00       	push   $0x401ae0
401a7d:	64 ff 35 00 00 00 00 	push   %fs:0x0
401a84:	8b 44 24 10          	mov    0x10(%esp),%eax
401a88:	89 6c 24 10          	mov    %ebp,0x10(%esp)
401a8c:	8d 6c 24 10          	lea    0x10(%esp),%ebp
401a90:	2b e0                	sub    %eax,%esp
401a92:	53                   	push   %ebx
401a93:	56                   	push   %esi
401a94:	57                   	push   %edi
401a95:	a1 04 20 40 00       	mov    0x402004,%eax
401a9a:	31 45 fc             	xor    %eax,-0x4(%ebp)
401a9d:	33 c5                	xor    %ebp,%eax
401a9f:	50                   	push   %eax
401aa0:	89 65 e8             	mov    %esp,-0x18(%ebp)
401aa3:	ff 75 f8             	push   -0x8(%ebp)
401aa6:	8b 45 fc             	mov    -0x4(%ebp),%eax
401aa9:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
401ab0:	89 45 f8             	mov    %eax,-0x8(%ebp)
401ab3:	8d 45 f0             	lea    -0x10(%ebp),%eax
401ab6:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
401abc:	c3                   	ret
401abd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401ac0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401ac7:	59                   	pop    %ecx
401ac8:	5f                   	pop    %edi
401ac9:	5f                   	pop    %edi
401aca:	5e                   	pop    %esi
401acb:	5b                   	pop    %ebx
401acc:	8b e5                	mov    %ebp,%esp
401ace:	5d                   	pop    %ebp
401acf:	51                   	push   %ecx
401ad0:	c3                   	ret
401ad1:	cc                   	int3
401ad2:	cc                   	int3
401ad3:	cc                   	int3
401ad4:	cc                   	int3
401ad5:	cc                   	int3
401ad6:	cc                   	int3
401ad7:	cc                   	int3
401ad8:	cc                   	int3
401ad9:	cc                   	int3
401ada:	cc                   	int3
401adb:	cc                   	int3
401adc:	cc                   	int3
401add:	cc                   	int3
401ade:	cc                   	int3
401adf:	cc                   	int3
401ae0:	8b ff                	mov    %edi,%edi
401ae2:	55                   	push   %ebp
401ae3:	8b ec                	mov    %esp,%ebp
401ae5:	ff 75 14             	push   0x14(%ebp)
401ae8:	ff 75 10             	push   0x10(%ebp)
401aeb:	ff 75 0c             	push   0xc(%ebp)
401aee:	ff 75 08             	push   0x8(%ebp)
401af1:	68 40 17 40 00       	push   $0x401740
401af6:	68 04 20 40 00       	push   $0x402004