40b74a:	8b 45 98             	mov    -0x68(%ebp),%eax
40b74d:	ff 75 84             	push   -0x7c(%ebp)
40b750:	68 30 3f 40 00       	push   $0x403f30
40b755:	8b 08                	mov    (%eax),%ecx
40b757:	50                   	push   %eax
40b758:	8b 31                	mov    (%ecx),%esi
40b75a:	8b ce                	mov    %esi,%ecx
40b75c:	ff 15 20 a5 43 00    	call   *0x43a520
40b762:	ff d6                	call   *%esi
40b764:	8b f0                	mov    %eax,%esi
40b766:	85 f6                	test   %esi,%esi
40b768:	79 15                	jns    0x40b77f
40b76a:	ba cb 00 00 00       	mov    $0xcb,%edx
40b76f:	8b 4d 04             	mov    0x4(%ebp),%ecx
40b772:	56                   	push   %esi
40b773:	68 40 56 40 00       	push   $0x405640
40b778:	e8 8d 09 02 00       	call   0x42c10a
40b77d:	eb 02                	jmp    0x40b781
40b77f:	33 f6                	xor    %esi,%esi
40b781:	8d 4d 98             	lea    -0x68(%ebp),%ecx
40b784:	e8 ad 3a 02 00       	call   0x42f236
40b789:	8d 4d 94             	lea    -0x6c(%ebp),%ecx
40b78c:	e8 a0 3a 02 00       	call   0x42f231
40b791:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
40b794:	e8 4f 2d 00 00       	call   0x40e4e8
40b799:	8b c6                	mov    %esi,%eax
40b79b:	e8 50 f6 00 00       	call   0x41adf0
40b7a0:	c2 14 00             	ret    $0x14
40b7a3:	8b ff                	mov    %edi,%edi
40b7a5:	55                   	push   %ebp
40b7a6:	8b ec                	mov    %esp,%ebp
40b7a8:	57                   	push   %edi
40b7a9:	8b b9 80 00 00 00    	mov    0x80(%ecx),%edi
40b7af:	85 ff                	test   %edi,%edi
40b7b1:	78 21                	js     0x40b7d4
40b7b3:	8b 51 68             	mov    0x68(%ecx),%edx
40b7b6:	85 d2                	test   %edx,%edx
40b7b8:	74 21                	je     0x40b7db
40b7ba:	8b 45 08             	mov    0x8(%ebp),%eax
40b7bd:	56                   	push   %esi
40b7be:	89 10                	mov    %edx,(%eax)
40b7c0:	8b 49 68             	mov    0x68(%ecx),%ecx
40b7c3:	51                   	push   %ecx
40b7c4:	8b 11                	mov    (%ecx),%edx
40b7c6:	8b 72 04             	mov    0x4(%edx),%esi
40b7c9:	8b ce                	mov    %esi,%ecx
40b7cb:	ff 15 20 a5 43 00    	call   *0x43a520
40b7d1:	ff d6                	call   *%esi
40b7d3:	5e                   	pop    %esi
40b7d4:	8b c7                	mov    %edi,%eax
40b7d6:	5f                   	pop    %edi
40b7d7:	5d                   	pop    %ebp
40b7d8:	c2 04 00             	ret    $0x4
40b7db:	bf 02 40 00 80       	mov    $0x80004002,%edi
40b7e0:	eb f2                	jmp    0x40b7d4
40b7e2:	cc                   	int3
40b7e3:	cc                   	int3
40b7e4:	cc                   	int3
40b7e5:	cc                   	int3
40b7e6:	cc                   	int3
40b7e7:	cc                   	int3
40b7e8:	cc                   	int3
40b7e9:	cc                   	int3
40b7ea:	cc                   	int3
40b7eb:	cc                   	int3
40b7ec:	cc                   	int3
40b7ed:	cc                   	int3
40b7ee:	cc                   	int3
40b7ef:	cc                   	int3
40b7f0:	8b ff                	mov    %edi,%edi
40b7f2:	55                   	push   %ebp
40b7f3:	8b ec                	mov    %esp,%ebp
40b7f5:	ff 75 10             	push   0x10(%ebp)
40b7f8:	8b 55 0c             	mov    0xc(%ebp),%edx
40b7fb:	8b 4d 08             	mov    0x8(%ebp),%ecx
40b7fe:	e8 04 00 00 00       	call   0x40b807
40b803:	5d                   	pop    %ebp
40b804:	c2 0c 00             	ret    $0xc
40b807:	8b ff                	mov    %edi,%edi
40b809:	55                   	push   %ebp
40b80a:	8b ec                	mov    %esp,%ebp
40b80c:	51                   	push   %ecx
40b80d:	53                   	push   %ebx
40b80e:	56                   	push   %esi
40b80f:	57                   	push   %edi
40b810:	8b 7d 08             	mov    0x8(%ebp),%edi
40b813:	8b c2                	mov    %edx,%eax
40b815:	8b f1                	mov    %ecx,%esi
40b817:	33 db                	xor    %ebx,%ebx
40b819:	ba 20 3f 40 00       	mov    $0x403f20,%edx
40b81e:	8b c8                	mov    %eax,%ecx
40b820:	89 1f                	mov    %ebx,(%edi)
40b822:	e8 e3 0d 00 00       	call   0x40c60a
40b827:	85 c0                	test   %eax,%eax
40b829:	0f 85 d3 46 01 00    	jne    0x41ff02
40b82f:	ba 30 3f 40 00       	mov    $0x403f30,%edx
40b834:	e8 d1 0d 00 00       	call   0x40c60a
40b839:	85 c0                	test   %eax,%eax
40b83b:	0f 84 98 46 01 00    	je     0x41fed9
40b841:	89 37                	mov    %esi,(%edi)
40b843:	8b 17                	mov    (%edi),%edx
40b845:	52                   	push   %edx
40b846:	8b 0a                	mov    (%edx),%ecx
40b848:	8b 71 04             	mov    0x4(%ecx),%esi
40b84b:	81 fe 60 f4 42 00    	cmp    $0x42f460,%esi
40b851:	0f 85 9c 46 01 00    	jne    0x41fef3
40b857:	e8 04 3c 02 00       	call   0x42f460
40b85c:	8b c3                	mov    %ebx,%eax
40b85e:	5f                   	pop    %edi
40b85f:	5e                   	pop    %esi
40b860:	5b                   	pop    %ebx
40b861:	c9                   	leave
40b862:	c2 04 00             	ret    $0x4
40b865:	68 40 04 00 00       	push   $0x440
40b86a:	b8 f8 e1 41 00       	mov    $0x41e1f8,%eax
40b86f:	e8 cd f5 00 00       	call   0x41ae41
40b874:	8b fa                	mov    %edx,%edi
40b876:	8b d9                	mov    %ecx,%ebx
40b878:	89 9d d8 fb ff ff    	mov    %ebx,-0x428(%ebp)
40b87e:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b881:	8b 45 0c             	mov    0xc(%ebp),%eax
40b884:	8b 15 1c 8a 43 00    	mov    0x438a1c,%edx
40b88a:	89 8d c8 fb ff ff    	mov    %ecx,-0x438(%ebp)
40b890:	8b 4d 14             	mov    0x14(%ebp),%ecx
40b893:	89 85 c4 fb ff ff    	mov    %eax,-0x43c(%ebp)
40b899:	89 8d cc fb ff ff    	mov    %ecx,-0x434(%ebp)
40b89f:	89 95 c0 fb ff ff    	mov    %edx,-0x440(%ebp)
40b8a5:	85 db                	test   %ebx,%ebx
40b8a7:	0f 84 64 47 01 00    	je     0x420011
40b8ad:	85 ff                	test   %edi,%edi
40b8af:	0f 84 5c 47 01 00    	je     0x420011
40b8b5:	85 c9                	test   %ecx,%ecx
40b8b7:	0f 84 54 47 01 00    	je     0x420011
40b8bd:	85 c0                	test   %eax,%eax
40b8bf:	0f 84 4c 47 01 00    	je     0x420011
40b8c5:	85 d2                	test   %edx,%edx
40b8c7:	0f 84 44 47 01 00    	je     0x420011
40b8cd:	8d 8d 48 ff ff ff    	lea    -0xb8(%ebp),%ecx
40b8d3:	e8 f7 3e 00 00       	call   0x40f7cf
40b8d8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b8dc:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
40b8df:	e8 eb 3e 00 00       	call   0x40f7cf
40b8e4:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40b8e8:	8d 8d 38 ff ff ff    	lea    -0xc8(%ebp),%ecx
40b8ee:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40b8f1:	89 85 d4 fb ff ff    	mov    %eax,-0x42c(%ebp)
40b8f7:	8b 07                	mov    (%edi),%eax
40b8f9:	51                   	push   %ecx
40b8fa:	57                   	push   %edi
40b8fb:	8b 70 14             	mov    0x14(%eax),%esi
40b8fe:	8b ce                	mov    %esi,%ecx
40b900:	ff 15 20 a5 43 00    	call   *0x43a520
40b906:	ff d6                	call   *%esi
40b908:	85 c0                	test   %eax,%eax
40b90a:	0f 89 0b 46 01 00    	jns    0x41ff1b
40b910:	33 db                	xor    %ebx,%ebx
40b912:	83 a5 dc fb ff ff 00 	andl   $0x0,-0x424(%ebp)
40b919:	8d 8d e0 fb ff ff    	lea    -0x420(%ebp),%ecx
40b91f:	e8 2e 83 00 00       	call   0x413c52
40b924:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40b928:	8d 85 dc fb ff ff    	lea    -0x424(%ebp),%eax
40b92e:	8b 37                	mov    (%edi),%esi
40b930:	50                   	push   %eax
40b931:	68 e0 3e 40 00       	push   $0x403ee0
40b936:	57                   	push   %edi
40b937:	8b 0e                	mov    (%esi),%ecx
40b939:	ff 15 20 a5 43 00    	call   *0x43a520
40b93f:	ff 16                	call   *(%esi)
40b941:	85 c0                	test   %eax,%eax
40b943:	78 7f                	js     0x40b9c4
40b945:	8b 8d dc fb ff ff    	mov    -0x424(%ebp),%ecx
40b94b:	8d 85 e0 fb ff ff    	lea    -0x420(%ebp),%eax
40b951:	50                   	push   %eax
40b952:	e8 55 d0 00 00       	call   0x4189ac
40b957:	33 f6                	xor    %esi,%esi
40b959:	c7 85 74 fd ff ff 18 	movl   $0x401218,-0x28c(%ebp)
40b960:	12 40 00
40b963:	8d 8d 80 fd ff ff    	lea    -0x280(%ebp),%ecx
40b969:	89 b5 78 fd ff ff    	mov    %esi,-0x288(%ebp)
40b96f:	e8 de 82 00 00       	call   0x413c52
40b974:	c7 85 74 fd ff ff fc 	movl   $0x4011fc,-0x28c(%ebp)
40b97b:	11 40 00
40b97e:	89 b5 34 ff ff ff    	mov    %esi,-0xcc(%ebp)
40b984:	51                   	push   %ecx
40b985:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40b989:	8d 8d 74 fd ff ff    	lea    -0x28c(%ebp),%ecx
40b98f:	ff b5 e4 fb ff ff    	push   -0x41c(%ebp)
40b995:	e8 42 2a 00 00       	call   0x40e3dc
40b99a:	8d 85 b4 fb ff ff    	lea    -0x44c(%ebp),%eax
40b9a0:	50                   	push   %eax
40b9a1:	8d 8d 74 fd ff ff    	lea    -0x28c(%ebp),%ecx
40b9a7:	e8 2c 01 00 00       	call   0x40bad8
40b9ac:	39 70 04             	cmp    %esi,0x4(%eax)
40b9af:	0f 85 71 45 01 00    	jne    0x41ff26
40b9b5:	8d 8d 74 fd ff ff    	lea    -0x28c(%ebp),%ecx
40b9bb:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40b9bf:	e8 b9 2a 00 00       	call   0x40e47d
40b9c4:	83 bd 54 ff ff ff 00 	cmpl   $0x0,-0xac(%ebp)
40b9cb:	75 59                	jne    0x40ba26
40b9cd:	8b 8d d8 fb ff ff    	mov    -0x428(%ebp),%ecx
40b9d3:	8d 85 b4 fb ff ff    	lea    -0x44c(%ebp),%eax
40b9d9:	50                   	push   %eax
40b9da:	81 c1 1c 04 00 00    	add    $0x41c,%ecx
40b9e0:	e8 f3 00 00 00       	call   0x40bad8
40b9e5:	8b c8                	mov    %eax,%ecx
40b9e7:	8b 41 08             	mov    0x8(%ecx),%eax
40b9ea:	8b 51 04             	mov    0x4(%ecx),%edx
40b9ed:	8b 09                	mov    (%ecx),%ecx
40b9ef:	52                   	push   %edx
40b9f0:	8b 40 04             	mov    0x4(%eax),%eax
40b9f3:	6a 00                	push   $0x0
40b9f5:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
40b9f8:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
40b9fe:	51                   	push   %ecx
40b9ff:	8b 70 10             	mov    0x10(%eax),%esi
40ba02:	81 fe a0 36 41 00    	cmp    $0x4136a0,%esi
40ba08:	0f 85 5a 45 01 00    	jne    0x41ff68
40ba0e:	8d 8d 48 ff ff ff    	lea    -0xb8(%ebp),%ecx
40ba14:	e8 87 7c 00 00       	call   0x4136a0
40ba19:	83 bd 54 ff ff ff 00 	cmpl   $0x0,-0xac(%ebp)
40ba20:	0f 84 57 45 01 00    	je     0x41ff7d
40ba26:	ff b5 cc fb ff ff    	push   -0x434(%ebp)
40ba2c:	8b 8d c8 fb ff ff    	mov    -0x438(%ebp),%ecx
40ba32:	8b 45 a8             	mov    -0x58(%ebp),%eax
40ba35:	8b 95 c0 fb ff ff    	mov    -0x440(%ebp),%edx
40ba3b:	f7 d8                	neg    %eax
40ba3d:	ff 71 04             	push   0x4(%ecx)
40ba40:	1b c0                	sbb    %eax,%eax
40ba42:	8b cb                	mov    %ebx,%ecx
40ba44:	ff b5 4c ff ff ff    	push   -0xb4(%ebp)
40ba4a:	23 45 a0             	and    -0x60(%ebp),%eax
40ba4d:	50                   	push   %eax
40ba4e:	ff b5 c4 fb ff ff    	push   -0x43c(%ebp)
40ba54:	e8 18 fc ff ff       	call   0x40b671
40ba59:	8b 8d e4 fb ff ff    	mov    -0x41c(%ebp),%ecx
40ba5f:	8b f0                	mov    %eax,%esi
40ba61:	c7 85 e0 fb ff ff e0 	movl   $0x4011e0,-0x420(%ebp)
40ba68:	11 40 00
40ba6b:	85 c9                	test   %ecx,%ecx
40ba6d:	74 0e                	je     0x40ba7d
40ba6f:	8d 85 f0 fb ff ff    	lea    -0x410(%ebp),%eax
40ba75:	3b c8                	cmp    %eax,%ecx
40ba77:	0f 85 6d 45 01 00    	jne    0x41ffea
40ba7d:	bf 80 11 40 00       	mov    $0x401180,%edi
40ba82:	8d 8d dc fb ff ff    	lea    -0x424(%ebp),%ecx
40ba88:	89 bd e0 fb ff ff    	mov    %edi,-0x420(%ebp)
40ba8e:	e8 6c 07 00 00       	call   0x40c1ff
40ba93:	8b 45 a0             	mov    -0x60(%ebp),%eax
40ba96:	bb 64 11 40 00       	mov    $0x401164,%ebx
40ba9b:	89 5d 9c             	mov    %ebx,-0x64(%ebp)
40ba9e:	85 c0                	test   %eax,%eax
40baa0:	74 0b                	je     0x40baad
40baa2:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40baa5:	3b c1                	cmp    %ecx,%eax
40baa7:	0f 85 4a 45 01 00    	jne    0x41fff7
40baad:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
40bab3:	89 7d 9c             	mov    %edi,-0x64(%ebp)
40bab6:	89 9d 48 ff ff ff    	mov    %ebx,-0xb8(%ebp)
40babc:	85 c0                	test   %eax,%eax
40babe:	74 0e                	je     0x40bace
40bac0:	8d 8d 58 ff ff ff    	lea    -0xa8(%ebp),%ecx
40bac6:	3b c1                	cmp    %ecx,%eax
40bac8:	0f 85 36 45 01 00    	jne    0x420004
40bace:	8b c6                	mov    %esi,%eax
40bad0:	e8 1b f3 00 00       	call   0x41adf0
40bad5:	c2 10 00             	ret    $0x10
40bad8:	8b ff                	mov    %edi,%edi
40bada:	55                   	push   %ebp
40badb:	8b ec                	mov    %esp,%ebp
40badd:	56                   	push   %esi
40bade:	8b f1                	mov    %ecx,%esi
40bae0:	e8 23 00 00 00       	call   0x40bb08
40bae5:	0f b7 86 b4 01 00 00 	movzwl 0x1b4(%esi),%eax
40baec:	8d 4e 0c             	lea    0xc(%esi),%ecx
40baef:	50                   	push   %eax
40baf0:	0f b7 86 b2 01 00 00 	movzwl 0x1b2(%esi),%eax
40baf7:	50                   	push   %eax
40baf8:	ff 75 08             	push   0x8(%ebp)
40bafb:	e8 1b 05 00 00       	call   0x40c01b
40bb00:	8b 45 08             	mov    0x8(%ebp),%eax
40bb03:	5e                   	pop    %esi
40bb04:	5d                   	pop    %ebp
40bb05:	c2 04 00             	ret    $0x4
40bb08:	8b ff                	mov    %edi,%edi
40bb0a:	55                   	push   %ebp
40bb0b:	8b ec                	mov    %esp,%ebp
40bb0d:	83 ec 0c             	sub    $0xc,%esp
40bb10:	56                   	push   %esi
40bb11:	8b f1                	mov    %ecx,%esi
40bb13:	0f b7 86 b6 01 00 00 	movzwl 0x1b6(%esi),%eax
40bb1a:	a8 10                	test   $0x10,%al
40bb1c:	74 6b                	je     0x40bb89
40bb1e:	25 ef ff 00 00       	and    $0xffef,%eax
40bb23:	57                   	push   %edi
40bb24:	66 89 86 b6 01 00 00 	mov    %ax,0x1b6(%esi)
40bb2b:	e8 87 00 00 00       	call   0x40bbb7
40bb30:	0f b7 86 ac 01 00 00 	movzwl 0x1ac(%esi),%eax
40bb37:	8d 4e 0c             	lea    0xc(%esi),%ecx
40bb3a:	50                   	push   %eax
40bb3b:	0f b7 86 aa 01 00 00 	movzwl 0x1aa(%esi),%eax
40bb42:	50                   	push   %eax
40bb43:	8d 45 f4             	lea    -0xc(%ebp),%eax
40bb46:	50                   	push   %eax
40bb47:	e8 cf 04 00 00       	call   0x40c01b
40bb4c:	51                   	push   %ecx
40bb4d:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40bb50:	e8 37 00 00 00       	call   0x40bb8c
40bb55:	8b f8                	mov    %eax,%edi
40bb57:	83 ff ff             	cmp    $0xffffffff,%edi
40bb5a:	74 2c                	je     0x40bb88
40bb5c:	47                   	inc    %edi
40bb5d:	57                   	push   %edi
40bb5e:	e8 ad f4 ff ff       	call   0x40b010
40bb63:	83 f8 ff             	cmp    $0xffffffff,%eax
40bb66:	75 20                	jne    0x40bb88
40bb68:	66 8b 86 aa 01 00 00 	mov    0x1aa(%esi),%ax
40bb6f:	0f b7 cf             	movzwl %di,%ecx
40bb72:	66 03 c1             	add    %cx,%ax
40bb75:	66 89 86 b2 01 00 00 	mov    %ax,0x1b2(%esi)
40bb7c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40bb7f:	2b c1                	sub    %ecx,%eax
40bb81:	66 89 86 b4 01 00 00 	mov    %ax,0x1b4(%esi)
40bb88:	5f                   	pop    %edi
40bb89:	5e                   	pop    %esi
40bb8a:	c9                   	leave
40bb8b:	c3                   	ret
40bb8c:	8b ff                	mov    %edi,%edi
40bb8e:	56                   	push   %esi
40bb8f:	8b 31                	mov    (%ecx),%esi
40bb91:	8d 56 ff             	lea    -0x1(%esi),%edx
40bb94:	03 51 04             	add    0x4(%ecx),%edx
40bb97:	eb 12                	jmp    0x40bbab
40bb99:	85 d2                	test   %edx,%edx
40bb9b:	78 12                	js     0x40bbaf
40bb9d:	8b 41 08             	mov    0x8(%ecx),%eax
40bba0:	8b 40 04             	mov    0x4(%eax),%eax
40bba3:	66 83 3c 50 2e       	cmpw   $0x2e,(%eax,%edx,2)
40bba8:	74 05                	je     0x40bbaf
40bbaa:	4a                   	dec    %edx
40bbab:	3b d6                	cmp    %esi,%edx
40bbad:	73 ea                	jae    0x40bb99
40bbaf:	2b d6                	sub    %esi,%edx
40bbb1:	8b c2                	mov    %edx,%eax
40bbb3:	5e                   	pop    %esi
40bbb4:	c2 04 00             	ret    $0x4
40bbb7:	8b ff                	mov    %edi,%edi
40bbb9:	56                   	push   %esi
40bbba:	8b f1                	mov    %ecx,%esi
40bbbc:	0f b7 86 b6 01 00 00 	movzwl 0x1b6(%esi),%eax
40bbc3:	a8 08                	test   $0x8,%al