4056f8:	0f 84 9e 41 01 00    	je     0x41989c
4056fe:	3d e7 7f 00 00       	cmp    $0x7fe7,%eax
405703:	0f 83 93 41 01 00    	jae    0x41989c
405709:	8b 8c 24 78 06 00 00 	mov    0x678(%esp),%ecx
405710:	85 c9                	test   %ecx,%ecx
405712:	0f 84 0c 41 01 00    	je     0x419824
405718:	8b 94 24 80 06 00 00 	mov    0x680(%esp),%edx
40571f:	8d 44 24 20          	lea    0x20(%esp),%eax
405723:	50                   	push   %eax
405724:	e8 05 fc ff ff       	call   0x40532e
405729:	85 c0                	test   %eax,%eax
40572b:	0f 84 ff 40 01 00    	je     0x419830
405731:	8b 94 24 78 06 00 00 	mov    0x678(%esp),%edx
405738:	8b ca                	mov    %edx,%ecx
40573a:	85 d2                	test   %edx,%edx
40573c:	0f 84 32 41 01 00    	je     0x419874
405742:	8d 71 02             	lea    0x2(%ecx),%esi
405745:	66 8b 01             	mov    (%ecx),%ax
405748:	03 cb                	add    %ebx,%ecx
40574a:	66 3b 44 24 2c       	cmp    0x2c(%esp),%ax
40574f:	75 f4                	jne    0x405745
405751:	2b ce                	sub    %esi,%ecx
405753:	33 c0                	xor    %eax,%eax
405755:	8b 74 24 20          	mov    0x20(%esp),%esi
405759:	d1 f9                	sar    $1,%ecx
40575b:	2b f1                	sub    %ecx,%esi
40575d:	89 84 24 78 06 00 00 	mov    %eax,0x678(%esp)
405764:	89 74 24 20          	mov    %esi,0x20(%esp)
405768:	85 d2                	test   %edx,%edx
40576a:	74 08                	je     0x405774
40576c:	52                   	push   %edx
40576d:	ff 15 e0 a3 44 00    	call   *0x44a3e0
405773:	59                   	pop    %ecx
405774:	8d 04 3e             	lea    (%esi,%edi,1),%eax
405777:	3d e7 7f 00 00       	cmp    $0x7fe7,%eax
40577c:	0f 87 fe 40 01 00    	ja     0x419880
405782:	8b 94 24 48 02 00 00 	mov    0x248(%esp),%edx
405789:	85 d2                	test   %edx,%edx
40578b:	0f 84 f6 40 01 00    	je     0x419887
405791:	8b 8c 24 60 04 00 00 	mov    0x460(%esp),%ecx
405798:	85 c9                	test   %ecx,%ecx
40579a:	0f 84 f0 40 01 00    	je     0x419890
4057a0:	8d 44 24 30          	lea    0x30(%esp),%eax
4057a4:	50                   	push   %eax
4057a5:	8d 45 08             	lea    0x8(%ebp),%eax
4057a8:	50                   	push   %eax
4057a9:	e8 1d fc ff ff       	call   0x4053cb
4057ae:	85 c0                	test   %eax,%eax
4057b0:	0f 84 00 41 01 00    	je     0x4198b6
4057b6:	83 7c 24 30 00       	cmpl   $0x0,0x30(%esp)
4057bb:	74 0f                	je     0x4057cc
4057bd:	ff 44 24 24          	incl   0x24(%esp)
4057c1:	83 7c 24 34 00       	cmpl   $0x0,0x34(%esp)
4057c6:	0f 85 31 01 00 00    	jne    0x4058fd
4057cc:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
4057d1:	0f 84 73 40 01 00    	je     0x41984a
4057d7:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4057db:	e8 6d 33 00 00       	call   0x408b4d
4057e0:	e8 83 0c 00 00       	call   0x406468
4057e5:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4057e9:	be 30 8e 44 00       	mov    $0x448e30,%esi
4057ee:	8b 41 18             	mov    0x18(%ecx),%eax
4057f1:	8b 18                	mov    (%eax),%ebx
4057f3:	8b 44 24 24          	mov    0x24(%esp),%eax
4057f7:	50                   	push   %eax
4057f8:	68 94 1f 40 00       	push   $0x401f94
4057fd:	68 04 01 00 00       	push   $0x104
405802:	56                   	push   %esi
405803:	e8 b7 42 00 00       	call   0x409abf
405808:	80 e3 10             	and    $0x10,%bl
40580b:	0f b6 c3             	movzbl %bl,%eax
40580e:	f7 d8                	neg    %eax
405810:	56                   	push   %esi
405811:	1b c0                	sbb    %eax,%eax
405813:	05 6e 23 00 00       	add    $0x236e,%eax
405818:	6a 01                	push   $0x1
40581a:	50                   	push   %eax
40581b:	e8 9d 0b 00 00       	call   0x4063bd
405820:	8b 84 24 64 02 00 00 	mov    0x264(%esp),%eax
405827:	33 db                	xor    %ebx,%ebx
405829:	83 c4 1c             	add    $0x1c,%esp
40582c:	39 5c 24 14          	cmp    %ebx,0x14(%esp)
405830:	0f 95 c3             	setne  %bl
405833:	33 f6                	xor    %esi,%esi
405835:	89 b4 24 48 02 00 00 	mov    %esi,0x248(%esp)
40583c:	85 c0                	test   %eax,%eax
40583e:	74 08                	je     0x405848
405840:	50                   	push   %eax
405841:	ff 15 e0 a3 44 00    	call   *0x44a3e0
405847:	59                   	pop    %ecx
405848:	8b 84 24 60 04 00 00 	mov    0x460(%esp),%eax
40584f:	89 b4 24 60 04 00 00 	mov    %esi,0x460(%esp)
405856:	85 c0                	test   %eax,%eax
405858:	74 08                	je     0x405862
40585a:	50                   	push   %eax
40585b:	ff 15 e0 a3 44 00    	call   *0x44a3e0
405861:	59                   	pop    %ecx
405862:	8b c3                	mov    %ebx,%eax
405864:	8b 8c 24 94 06 00 00 	mov    0x694(%esp),%ecx
40586b:	5f                   	pop    %edi
40586c:	5e                   	pop    %esi
40586d:	5b                   	pop    %ebx
40586e:	33 cc                	xor    %esp,%ecx
405870:	e8 bb 12 01 00       	call   0x416b30
405875:	8b e5                	mov    %ebp,%esp
405877:	5d                   	pop    %ebp
405878:	c2 0c 00             	ret    $0xc
40587b:	8b 8c 24 48 02 00 00 	mov    0x248(%esp),%ecx
405882:	85 c9                	test   %ecx,%ecx
405884:	0f 84 23 3f 01 00    	je     0x4197ad
40588a:	6a 5c                	push   $0x5c
40588c:	5a                   	pop    %edx
40588d:	e8 63 a9 00 00       	call   0x4101f5
405892:	8b 8c 24 48 02 00 00 	mov    0x248(%esp),%ecx
405899:	8d 34 03             	lea    (%ebx,%eax,1),%esi
40589c:	85 c9                	test   %ecx,%ecx
40589e:	0f 84 12 3f 01 00    	je     0x4197b6
4058a4:	8b 47 18             	mov    0x18(%edi),%eax
4058a7:	8b 94 24 50 02 00 00 	mov    0x250(%esp),%edx
4058ae:	83 c0 2c             	add    $0x2c,%eax
4058b1:	50                   	push   %eax
4058b2:	8b c6                	mov    %esi,%eax
4058b4:	2b c1                	sub    %ecx,%eax
4058b6:	8b ce                	mov    %esi,%ecx
4058b8:	d1 f8                	sar    $1,%eax
4058ba:	2b d0                	sub    %eax,%edx
4058bc:	e8 df 9a 00 00       	call   0x40f3a0
4058c1:	8b 8c 24 48 02 00 00 	mov    0x248(%esp),%ecx
4058c8:	85 c9                	test   %ecx,%ecx
4058ca:	74 4e                	je     0x40591a
4058cc:	8d 51 02             	lea    0x2(%ecx),%edx
4058cf:	33 f6                	xor    %esi,%esi
4058d1:	66 8b 01             	mov    (%ecx),%ax
4058d4:	03 cb                	add    %ebx,%ecx
4058d6:	66 3b c6             	cmp    %si,%ax
4058d9:	75 f6                	jne    0x4058d1
4058db:	2b ca                	sub    %edx,%ecx
4058dd:	d1 f9                	sar    $1,%ecx
4058df:	81 f9 e7 7f 00 00    	cmp    $0x7fe7,%ecx
4058e5:	0f 86 27 fd ff ff    	jbe    0x405612
4058eb:	e9 a0 40 01 00       	jmp    0x419990
4058f0:	6a 02                	push   $0x2
4058f2:	c6 44 24 16 01       	movb   $0x1,0x16(%esp)
4058f7:	5b                   	pop    %ebx
4058f8:	e9 5b fc ff ff       	jmp    0x405558
4058fd:	8b 84 24 60 04 00 00 	mov    0x460(%esp),%eax
405904:	85 c0                	test   %eax,%eax
405906:	74 18                	je     0x405920
405908:	50                   	push   %eax
405909:	68 80 22 40 00       	push   $0x402280
40590e:	e8 3d 40 00 00       	call   0x409950
405913:	59                   	pop    %ecx
405914:	59                   	pop    %ecx
405915:	e9 b2 fe ff ff       	jmp    0x4057cc
40591a:	8d 4c 24 40          	lea    0x40(%esp),%ecx
40591e:	eb ac                	jmp    0x4058cc
405920:	8d 84 24 58 02 00 00 	lea    0x258(%esp),%eax
405927:	eb df                	jmp    0x405908
405929:	8b ff                	mov    %edi,%edi
40592b:	55                   	push   %ebp
40592c:	8b ec                	mov    %esp,%ebp
40592e:	81 ec 5c 02 00 00    	sub    $0x25c,%esp
405934:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
405939:	33 c5                	xor    %ebp,%eax
40593b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40593e:	53                   	push   %ebx
40593f:	56                   	push   %esi
405940:	57                   	push   %edi
405941:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
405947:	8b f9                	mov    %ecx,%edi
405949:	50                   	push   %eax
40594a:	8d 85 a8 fd ff ff    	lea    -0x258(%ebp),%eax
405950:	33 f6                	xor    %esi,%esi
405952:	50                   	push   %eax
405953:	56                   	push   %esi
405954:	bb d0 59 41 00       	mov    $0x4159d0,%ebx
405959:	8b d7                	mov    %edi,%edx
40595b:	6a 20                	push   $0x20
40595d:	8b cb                	mov    %ebx,%ecx
40595f:	e8 36 ff 00 00       	call   0x41589a
405964:	84 c0                	test   %al,%al
405966:	0f 84 88 40 01 00    	je     0x4199f4
40596c:	8b bd a4 fd ff ff    	mov    -0x25c(%ebp),%edi
405972:	57                   	push   %edi
405973:	6a 20                	push   $0x20
405975:	8d 95 a8 fd ff ff    	lea    -0x258(%ebp),%edx
40597b:	8b cb                	mov    %ebx,%ecx
40597d:	46                   	inc    %esi
40597e:	e8 ce fe 00 00       	call   0x415851
405983:	84 c0                	test   %al,%al
405985:	75 eb                	jne    0x405972
405987:	8b cf                	mov    %edi,%ecx
405989:	e8 bf 31 00 00       	call   0x408b4d
40598e:	8b c6                	mov    %esi,%eax
405990:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405993:	5f                   	pop    %edi
405994:	5e                   	pop    %esi
405995:	33 cd                	xor    %ebp,%ecx
405997:	5b                   	pop    %ebx
405998:	e8 93 11 01 00       	call   0x416b30
40599d:	c9                   	leave
40599e:	c3                   	ret
40599f:	cc                   	int3
4059a0:	8b ff                	mov    %edi,%edi
4059a2:	55                   	push   %ebp
4059a3:	8b ec                	mov    %esp,%ebp
4059a5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4059a8:	ba c0 59 40 00       	mov    $0x4059c0,%edx
4059ad:	6a 08                	push   $0x8
4059af:	8b 49 3c             	mov    0x3c(%ecx),%ecx
4059b2:	e8 ec 04 00 00       	call   0x405ea3
4059b7:	a3 dc 65 43 00       	mov    %eax,0x4365dc
4059bc:	5d                   	pop    %ebp
4059bd:	c2 04 00             	ret    $0x4
4059c0:	8b ff                	mov    %edi,%edi
4059c2:	55                   	push   %ebp
4059c3:	8b ec                	mov    %esp,%ebp
4059c5:	81 ec 28 02 00 00    	sub    $0x228,%esp
4059cb:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
4059d0:	33 c5                	xor    %ebp,%eax
4059d2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4059d5:	53                   	push   %ebx
4059d6:	56                   	push   %esi
4059d7:	8b 75 08             	mov    0x8(%ebp),%esi
4059da:	57                   	push   %edi
4059db:	6a 3a                	push   $0x3a
4059dd:	58                   	pop    %eax
4059de:	66 39 46 02          	cmp    %ax,0x2(%esi)
4059e2:	75 10                	jne    0x4059f4
4059e4:	66 8b 0e             	mov    (%esi),%cx
4059e7:	e8 26 b1 00 00       	call   0x410b12
4059ec:	85 c0                	test   %eax,%eax
4059ee:	0f 84 33 40 01 00    	je     0x419a27
4059f4:	33 c0                	xor    %eax,%eax
4059f6:	bf 04 01 00 00       	mov    $0x104,%edi
4059fb:	57                   	push   %edi
4059fc:	50                   	push   %eax
4059fd:	89 45 e8             	mov    %eax,-0x18(%ebp)
405a00:	33 db                	xor    %ebx,%ebx
405a02:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
405a08:	89 7d f0             	mov    %edi,-0x10(%ebp)
405a0b:	43                   	inc    %ebx
405a0c:	50                   	push   %eax
405a0d:	88 5d ec             	mov    %bl,-0x14(%ebp)
405a10:	e8 a8 25 01 00       	call   0x417fbd
405a15:	33 c0                	xor    %eax,%eax
405a17:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
405a1d:	83 c4 0c             	add    $0xc,%esp
405a20:	38 45 ec             	cmp    %al,-0x14(%ebp)
405a23:	0f 94 c0             	sete   %al
405a26:	48                   	dec    %eax
405a27:	25 e3 7e 00 00       	and    $0x7ee3,%eax
405a2c:	03 c7                	add    %edi,%eax
405a2e:	50                   	push   %eax
405a2f:	e8 bc 89 00 00       	call   0x40e3f0
405a34:	85 c0                	test   %eax,%eax
405a36:	0f 88 fe 3f 01 00    	js     0x419a3a
405a3c:	8b 45 e8             	mov    -0x18(%ebp),%eax
405a3f:	85 c0                	test   %eax,%eax
405a41:	0f 84 f8 3f 01 00    	je     0x419a3f
405a47:	8d 8d dc fd ff ff    	lea    -0x224(%ebp),%ecx
405a4d:	51                   	push   %ecx
405a4e:	50                   	push   %eax
405a4f:	ff 75 f0             	push   -0x10(%ebp)
405a52:	56                   	push   %esi
405a53:	ff 15 a4 a0 44 00    	call   *0x44a0a4
405a59:	85 c0                	test   %eax,%eax
405a5b:	0f 84 e9 3f 01 00    	je     0x419a4a
405a61:	3d e7 7f 00 00       	cmp    $0x7fe7,%eax
405a66:	0f 83 f4 3f 01 00    	jae    0x419a60
405a6c:	33 ff                	xor    %edi,%edi
405a6e:	57                   	push   %edi
405a6f:	56                   	push   %esi
405a70:	ff 15 f0 a0 44 00    	call   *0x44a0f0
405a76:	85 c0                	test   %eax,%eax
405a78:	74 27                	je     0x405aa1
405a7a:	8b df                	mov    %edi,%ebx
405a7c:	8b 45 e8             	mov    -0x18(%ebp),%eax
405a7f:	89 7d e8             	mov    %edi,-0x18(%ebp)
405a82:	85 c0                	test   %eax,%eax
405a84:	74 08                	je     0x405a8e
405a86:	50                   	push   %eax
405a87:	ff 15 e0 a3 44 00    	call   *0x44a3e0
405a8d:	59                   	pop    %ecx
405a8e:	8b c3                	mov    %ebx,%eax
405a90:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405a93:	5f                   	pop    %edi
405a94:	5e                   	pop    %esi
405a95:	33 cd                	xor    %ebp,%ecx
405a97:	5b                   	pop    %ebx
405a98:	e8 93 10 01 00       	call   0x416b30
405a9d:	c9                   	leave
405a9e:	c2 04 00             	ret    $0x4
405aa1:	ff 15 80 a0 44 00    	call   *0x44a080
405aa7:	3d b7 00 00 00       	cmp    $0xb7,%eax
405aac:	0f 84 c4 3f 01 00    	je     0x419a76
405ab2:	83 f8 03             	cmp    $0x3,%eax
405ab5:	0f 85 97 3f 01 00    	jne    0x419a52
405abb:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
405ac2:	0f 84 c3 00 00 00    	je     0x405b8b
405ac8:	8b 4d e8             	mov    -0x18(%ebp),%ecx
405acb:	8b c1                	mov    %ecx,%eax
405acd:	85 c9                	test   %ecx,%ecx
405acf:	0f 84 b5 3f 01 00    	je     0x419a8a
405ad5:	6a 5c                	push   $0x5c
405ad7:	5a                   	pop    %edx
405ad8:	6a 3a                	push   $0x3a
405ada:	5e                   	pop    %esi
405adb:	66 39 70 02          	cmp    %si,0x2(%eax)
405adf:	0f 85 bb 3f 01 00    	jne    0x419aa0
405ae5:	8b d1                	mov    %ecx,%edx
405ae7:	85 c9                	test   %ecx,%ecx
405ae9:	0f 84 a6 3f 01 00    	je     0x419a95
405aef:	83 c2 06             	add    $0x6,%edx
405af2:	eb 41                	jmp    0x405b35
405af4:	6a 5c                	push   $0x5c
405af6:	5e                   	pop    %esi
405af7:	33 c0                	xor    %eax,%eax
405af9:	66 89 02             	mov    %ax,(%edx)
405afc:	8b 45 e8             	mov    -0x18(%ebp),%eax
405aff:	85 c0                	test   %eax,%eax
405b01:	0f 84 6a 40 01 00    	je     0x419b71
405b07:	57                   	push   %edi
405b08:	50                   	push   %eax
405b09:	ff 15 f0 a0 44 00    	call   *0x44a0f0
405b0f:	85 c0                	test   %eax,%eax
405b11:	75 0d                	jne    0x405b20
405b13:	ff 15 80 a0 44 00    	call   *0x44a080
405b19:	3d b7 00 00 00       	cmp    $0xb7,%eax
405b1e:	75 6b                	jne    0x405b8b
405b20:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
405b26:	66 89 30             	mov    %si,(%eax)
405b29:	8b 95 dc fd ff ff    	mov    -0x224(%ebp),%edx
405b2f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
405b32:	83 c2 02             	add    $0x2,%edx
405b35:	89 95 dc fd ff ff    	mov    %edx,-0x224(%ebp)
405b3b:	0f b7 32             	movzwl (%edx),%esi
405b3e:	66 85 f6             	test   %si,%si
405b41:	74 25                	je     0x405b68
405b43:	6a 5c                	push   $0x5c
405b45:	58                   	pop    %eax
405b46:	66 3b f0             	cmp    %ax,%si
405b49:	74 a9                	je     0x405af4
405b4b:	83 c2 02             	add    $0x2,%edx
405b4e:	89 95 dc fd ff ff    	mov    %edx,-0x224(%ebp)
405b54:	0f b7 02             	movzwl (%edx),%eax
405b57:	8b f0                	mov    %eax,%esi
405b59:	66 85 c0             	test   %ax,%ax
405b5c:	75 e5                	jne    0x405b43
405b5e:	6a 5c                	push   $0x5c