40a936:	e8 35 23 00 00       	call   0x40cc70
40a93b:	3d 00 40 00 00       	cmp    $0x4000,%eax
40a940:	75 2d                	jne    0x40a96f
40a942:	a1 fc 66 43 00       	mov    0x4366fc,%eax
40a947:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
40a94a:	e8 81 33 00 00       	call   0x40dcd0
40a94f:	8b f0                	mov    %eax,%esi
40a951:	85 f6                	test   %esi,%esi
40a953:	0f 84 4e f3 00 00    	je     0x419ca7
40a959:	8b 15 fc 66 43 00    	mov    0x4366fc,%edx
40a95f:	8b ce                	mov    %esi,%ecx
40a961:	68 f0 4a 44 00       	push   $0x444af0
40a966:	e8 35 4a 00 00       	call   0x40f3a0
40a96b:	8b c6                	mov    %esi,%eax
40a96d:	5e                   	pop    %esi
40a96e:	c3                   	ret
40a96f:	e8 e5 df 01 00       	call   0x428959
40a974:	eb cc                	jmp    0x40a942
40a976:	8b ff                	mov    %edi,%edi
40a978:	53                   	push   %ebx
40a979:	33 db                	xor    %ebx,%ebx
40a97b:	88 1d c6 65 43 00    	mov    %bl,0x4365c6
40a981:	56                   	push   %esi
40a982:	85 d2                	test   %edx,%edx
40a984:	74 1c                	je     0x40a9a2
40a986:	8b f2                	mov    %edx,%esi
40a988:	57                   	push   %edi
40a989:	8d 7e 02             	lea    0x2(%esi),%edi
40a98c:	66 8b 06             	mov    (%esi),%ax
40a98f:	83 c6 02             	add    $0x2,%esi
40a992:	66 3b c3             	cmp    %bx,%ax
40a995:	75 f5                	jne    0x40a98c
40a997:	2b f7                	sub    %edi,%esi
40a999:	d1 fe                	sar    $1,%esi
40a99b:	f7 de                	neg    %esi
40a99d:	5f                   	pop    %edi
40a99e:	1b f6                	sbb    %esi,%esi
40a9a0:	23 d6                	and    %esi,%edx
40a9a2:	52                   	push   %edx
40a9a3:	51                   	push   %ecx
40a9a4:	ff 15 c0 a1 44 00    	call   *0x44a1c0
40a9aa:	ff 35 94 25 43 00    	push   0x432594
40a9b0:	8b f0                	mov    %eax,%esi
40a9b2:	53                   	push   %ebx
40a9b3:	ff 15 34 a1 44 00    	call   *0x44a134
40a9b9:	50                   	push   %eax
40a9ba:	ff 15 3c a1 44 00    	call   *0x44a13c
40a9c0:	e8 0f 00 00 00       	call   0x40a9d4
40a9c5:	a3 94 25 43 00       	mov    %eax,0x432594
40a9ca:	33 c0                	xor    %eax,%eax
40a9cc:	85 f6                	test   %esi,%esi
40a9ce:	5e                   	pop    %esi
40a9cf:	0f 94 c0             	sete   %al
40a9d2:	5b                   	pop    %ebx
40a9d3:	c3                   	ret
40a9d4:	8b ff                	mov    %edi,%edi
40a9d6:	56                   	push   %esi
40a9d7:	57                   	push   %edi
40a9d8:	ff 15 d4 a1 44 00    	call   *0x44a1d4
40a9de:	8b f0                	mov    %eax,%esi
40a9e0:	33 ff                	xor    %edi,%edi
40a9e2:	85 f6                	test   %esi,%esi
40a9e4:	74 33                	je     0x40aa19
40a9e6:	53                   	push   %ebx
40a9e7:	8b ce                	mov    %esi,%ecx
40a9e9:	e8 32 00 00 00       	call   0x40aa20
40a9ee:	8b d8                	mov    %eax,%ebx
40a9f0:	53                   	push   %ebx
40a9f1:	6a 08                	push   $0x8
40a9f3:	ff 15 34 a1 44 00    	call   *0x44a134
40a9f9:	50                   	push   %eax
40a9fa:	ff 15 28 a1 44 00    	call   *0x44a128
40aa00:	8b f8                	mov    %eax,%edi
40aa02:	85 ff                	test   %edi,%edi
40aa04:	74 0b                	je     0x40aa11
40aa06:	53                   	push   %ebx
40aa07:	56                   	push   %esi
40aa08:	57                   	push   %edi
40aa09:	e8 2e d2 00 00       	call   0x417c3c
40aa0e:	83 c4 0c             	add    $0xc,%esp
40aa11:	56                   	push   %esi
40aa12:	ff 15 c8 a1 44 00    	call   *0x44a1c8
40aa18:	5b                   	pop    %ebx
40aa19:	8b c7                	mov    %edi,%eax
40aa1b:	5f                   	pop    %edi
40aa1c:	5e                   	pop    %esi
40aa1d:	c3                   	ret
40aa1e:	cc                   	int3
40aa1f:	cc                   	int3
40aa20:	8b d1                	mov    %ecx,%edx
40aa22:	8b c2                	mov    %edx,%eax
40aa24:	85 d2                	test   %edx,%edx
40aa26:	74 21                	je     0x40aa49
40aa28:	66 83 3a 00          	cmpw   $0x0,(%edx)
40aa2c:	74 12                	je     0x40aa40
40aa2e:	8b ff                	mov    %edi,%edi
40aa30:	0f b7 08             	movzwl (%eax),%ecx
40aa33:	83 c0 02             	add    $0x2,%eax
40aa36:	66 85 c9             	test   %cx,%cx
40aa39:	75 f5                	jne    0x40aa30
40aa3b:	66 39 08             	cmp    %cx,(%eax)
40aa3e:	75 f0                	jne    0x40aa30
40aa40:	2b c2                	sub    %edx,%eax
40aa42:	83 c0 02             	add    $0x2,%eax
40aa45:	83 e0 fe             	and    $0xfffffffe,%eax
40aa48:	c3                   	ret
40aa49:	33 c0                	xor    %eax,%eax
40aa4b:	c3                   	ret
40aa4c:	cc                   	int3
40aa4d:	cc                   	int3
40aa4e:	cc                   	int3
40aa4f:	cc                   	int3
40aa50:	8b ff                	mov    %edi,%edi
40aa52:	55                   	push   %ebp
40aa53:	8b ec                	mov    %esp,%ebp
40aa55:	51                   	push   %ecx
40aa56:	83 3d 34 67 43 00 02 	cmpl   $0x2,0x436734
40aa5d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40aa60:	0f 85 85 1f 01 00    	jne    0x41c9eb
40aa66:	e8 0a 00 00 00       	call   0x40aa75
40aa6b:	a3 dc 65 43 00       	mov    %eax,0x4365dc
40aa70:	59                   	pop    %ecx
40aa71:	5d                   	pop    %ebp
40aa72:	c2 04 00             	ret    $0x4
40aa75:	8b ff                	mov    %edi,%edi
40aa77:	55                   	push   %ebp
40aa78:	8b ec                	mov    %esp,%ebp
40aa7a:	83 ec 0c             	sub    $0xc,%esp
40aa7d:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
40aa84:	53                   	push   %ebx
40aa85:	56                   	push   %esi
40aa86:	8b 71 3c             	mov    0x3c(%ecx),%esi
40aa89:	57                   	push   %edi
40aa8a:	0f 84 c9 1f 01 00    	je     0x41ca59
40aa90:	85 f6                	test   %esi,%esi
40aa92:	0f 84 b1 1f 01 00    	je     0x41ca49
40aa98:	0f b7 06             	movzwl (%esi),%eax
40aa9b:	66 85 c0             	test   %ax,%ax
40aa9e:	0f 84 a5 1f 01 00    	je     0x41ca49
40aaa4:	6a 20                	push   $0x20
40aaa6:	8b c8                	mov    %eax,%ecx
40aaa8:	58                   	pop    %eax
40aaa9:	6a 02                	push   $0x2
40aaab:	5f                   	pop    %edi
40aaac:	66 3b c8             	cmp    %ax,%cx
40aaaf:	77 0f                	ja     0x40aac0
40aab1:	03 f7                	add    %edi,%esi
40aab3:	6a 20                	push   $0x20
40aab5:	0f b7 06             	movzwl (%esi),%eax
40aab8:	8b c8                	mov    %eax,%ecx
40aaba:	66 85 c0             	test   %ax,%ax
40aabd:	58                   	pop    %eax
40aabe:	75 ec                	jne    0x40aaac
40aac0:	33 db                	xor    %ebx,%ebx
40aac2:	66 39 1e             	cmp    %bx,(%esi)
40aac5:	0f 84 7e 1f 01 00    	je     0x41ca49
40aacb:	57                   	push   %edi
40aacc:	68 a0 22 40 00       	push   $0x4022a0
40aad1:	56                   	push   %esi
40aad2:	ff 15 28 a4 44 00    	call   *0x44a428
40aad8:	83 c4 0c             	add    $0xc,%esp
40aadb:	85 c0                	test   %eax,%eax
40aadd:	74 5e                	je     0x40ab3d
40aadf:	57                   	push   %edi
40aae0:	68 98 22 40 00       	push   $0x402298
40aae5:	56                   	push   %esi
40aae6:	ff 15 28 a4 44 00    	call   *0x44a428
40aaec:	83 c4 0c             	add    $0xc,%esp
40aaef:	85 c0                	test   %eax,%eax
40aaf1:	0f 84 06 1f 01 00    	je     0x41c9fd
40aaf7:	0f b7 06             	movzwl (%esi),%eax
40aafa:	83 f8 2f             	cmp    $0x2f,%eax
40aafd:	0f 84 fa 1f 01 00    	je     0x41cafd
40ab03:	6a 22                	push   $0x22
40ab05:	5a                   	pop    %edx
40ab06:	66 3b c2             	cmp    %dx,%ax
40ab09:	0f 84 fb 1e 01 00    	je     0x41ca0a
40ab0f:	6a 3d                	push   $0x3d
40ab11:	58                   	pop    %eax
40ab12:	66 39 06             	cmp    %ax,(%esi)
40ab15:	0f 84 e2 1f 01 00    	je     0x41cafd
40ab1b:	50                   	push   %eax
40ab1c:	56                   	push   %esi
40ab1d:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40ab23:	59                   	pop    %ecx
40ab24:	59                   	pop    %ecx
40ab25:	85 c0                	test   %eax,%eax
40ab27:	74 1e                	je     0x40ab47
40ab29:	33 c9                	xor    %ecx,%ecx
40ab2b:	8d 50 02             	lea    0x2(%eax),%edx
40ab2e:	66 89 08             	mov    %cx,(%eax)
40ab31:	8b ce                	mov    %esi,%ecx
40ab33:	e8 3e fe ff ff       	call   0x40a976
40ab38:	5f                   	pop    %edi
40ab39:	5e                   	pop    %esi
40ab3a:	5b                   	pop    %ebx
40ab3b:	c9                   	leave
40ab3c:	c3                   	ret
40ab3d:	8d 4e 04             	lea    0x4(%esi),%ecx
40ab40:	e8 e1 87 00 00       	call   0x413326
40ab45:	eb f1                	jmp    0x40ab38
40ab47:	8b ce                	mov    %esi,%ecx
40ab49:	e8 9a a6 01 00       	call   0x4251e8
40ab4e:	eb e8                	jmp    0x40ab38
40ab50:	8b ff                	mov    %edi,%edi
40ab52:	55                   	push   %ebp
40ab53:	8b ec                	mov    %esp,%ebp
40ab55:	56                   	push   %esi
40ab56:	8b 75 08             	mov    0x8(%ebp),%esi
40ab59:	33 c9                	xor    %ecx,%ecx
40ab5b:	8b 56 38             	mov    0x38(%esi),%edx
40ab5e:	e8 0d 39 00 00       	call   0x40e470
40ab63:	80 3d 44 67 43 00 00 	cmpb   $0x0,0x436744
40ab6a:	75 0f                	jne    0x40ab7b
40ab6c:	8b 56 3c             	mov    0x3c(%esi),%edx
40ab6f:	33 c9                	xor    %ecx,%ecx
40ab71:	e8 fa 38 00 00       	call   0x40e470
40ab76:	5e                   	pop    %esi
40ab77:	5d                   	pop    %ebp
40ab78:	c2 04 00             	ret    $0x4
40ab7b:	33 c0                	xor    %eax,%eax
40ab7d:	eb f7                	jmp    0x40ab76
40ab7f:	8b ff                	mov    %edi,%edi
40ab81:	56                   	push   %esi
40ab82:	8b f1                	mov    %ecx,%esi
40ab84:	85 f6                	test   %esi,%esi
40ab86:	74 23                	je     0x40abab
40ab88:	57                   	push   %edi
40ab89:	0f b7 3e             	movzwl (%esi),%edi
40ab8c:	57                   	push   %edi
40ab8d:	ff 15 ac a3 44 00    	call   *0x44a3ac
40ab93:	59                   	pop    %ecx
40ab94:	85 c0                	test   %eax,%eax
40ab96:	75 17                	jne    0x40abaf
40ab98:	57                   	push   %edi
40ab99:	68 d0 22 40 00       	push   $0x4022d0
40ab9e:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40aba4:	59                   	pop    %ecx
40aba5:	59                   	pop    %ecx
40aba6:	85 c0                	test   %eax,%eax
40aba8:	75 0f                	jne    0x40abb9
40abaa:	5f                   	pop    %edi
40abab:	8b c6                	mov    %esi,%eax
40abad:	5e                   	pop    %esi
40abae:	c3                   	ret
40abaf:	83 ff 0a             	cmp    $0xa,%edi
40abb2:	74 e4                	je     0x40ab98
40abb4:	83 c6 02             	add    $0x2,%esi
40abb7:	eb d0                	jmp    0x40ab89
40abb9:	66 85 ff             	test   %di,%di
40abbc:	74 ec                	je     0x40abaa
40abbe:	eb f4                	jmp    0x40abb4
40abc0:	8b ff                	mov    %edi,%edi
40abc2:	55                   	push   %ebp
40abc3:	8b ec                	mov    %esp,%ebp
40abc5:	83 ec 1c             	sub    $0x1c,%esp
40abc8:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
40abcd:	33 c5                	xor    %ebp,%eax
40abcf:	89 45 fc             	mov    %eax,-0x4(%ebp)
40abd2:	53                   	push   %ebx
40abd3:	56                   	push   %esi
40abd4:	57                   	push   %edi
40abd5:	68 f0 4a 44 00       	push   $0x444af0
40abda:	33 db                	xor    %ebx,%ebx
40abdc:	68 50 23 40 00       	push   $0x402350
40abe1:	8b fb                	mov    %ebx,%edi
40abe3:	ff 15 40 a4 44 00    	call   *0x44a440
40abe9:	59                   	pop    %ecx
40abea:	59                   	pop    %ecx
40abeb:	85 c0                	test   %eax,%eax
40abed:	0f 84 1f 1f 01 00    	je     0x41cb12
40abf3:	6a 2d                	push   $0x2d
40abf5:	59                   	pop    %ecx
40abf6:	e8 95 0f 00 00       	call   0x40bb90
40abfb:	8b f0                	mov    %eax,%esi
40abfd:	6a 2f                	push   $0x2f
40abff:	58                   	pop    %eax
40ac00:	85 ff                	test   %edi,%edi
40ac02:	0f 85 1a 1f 01 00    	jne    0x41cb22
40ac08:	33 c9                	xor    %ecx,%ecx
40ac0a:	e8 61 20 00 00       	call   0x40cc70
40ac0f:	6a 2f                	push   $0x2f
40ac11:	58                   	pop    %eax
40ac12:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
40ac16:	8d 55 e8             	lea    -0x18(%ebp),%edx
40ac19:	33 c0                	xor    %eax,%eax
40ac1b:	bf f0 4a 44 00       	mov    $0x444af0,%edi
40ac20:	6a 02                	push   $0x2
40ac22:	8b cf                	mov    %edi,%ecx
40ac24:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
40ac28:	e8 03 10 00 00       	call   0x40bc30
40ac2d:	53                   	push   %ebx
40ac2e:	6a 2d                	push   $0x2d
40ac30:	8b d0                	mov    %eax,%edx
40ac32:	59                   	pop    %ecx
40ac33:	e8 c8 fb ff ff       	call   0x40a800
40ac38:	84 c0                	test   %al,%al
40ac3a:	0f 85 fe 1e 01 00    	jne    0x41cb3e
40ac40:	53                   	push   %ebx
40ac41:	33 d2                	xor    %edx,%edx
40ac43:	33 c9                	xor    %ecx,%ecx
40ac45:	e8 c6 22 00 00       	call   0x40cf10
40ac4a:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40ac4f:	66 39 18             	cmp    %bx,(%eax)
40ac52:	74 35                	je     0x40ac89
40ac54:	6a 20                	push   $0x20
40ac56:	59                   	pop    %ecx
40ac57:	e8 14 20 00 00       	call   0x40cc70
40ac5c:	3d 00 40 00 00       	cmp    $0x4000,%eax
40ac61:	75 37                	jne    0x40ac9a
40ac63:	a1 fc 66 43 00       	mov    0x4366fc,%eax
40ac68:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
40ac6b:	e8 60 30 00 00       	call   0x40dcd0
40ac70:	85 c0                	test   %eax,%eax
40ac72:	0f 84 d4 1e 01 00    	je     0x41cb4c
40ac78:	8b 15 fc 66 43 00    	mov    0x4366fc,%edx
40ac7e:	8b c8                	mov    %eax,%ecx
40ac80:	57                   	push   %edi
40ac81:	89 46 3c             	mov    %eax,0x3c(%esi)
40ac84:	e8 17 47 00 00       	call   0x40f3a0
40ac89:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ac8c:	8b c6                	mov    %esi,%eax
40ac8e:	5f                   	pop    %edi
40ac8f:	5e                   	pop    %esi
40ac90:	33 cd                	xor    %ebp,%ecx
40ac92:	5b                   	pop    %ebx
40ac93:	e8 98 be 00 00       	call   0x416b30
40ac98:	c9                   	leave
40ac99:	c3                   	ret
40ac9a:	53                   	push   %ebx
40ac9b:	33 d2                	xor    %edx,%edx
40ac9d:	33 c9                	xor    %ecx,%ecx
40ac9f:	e8 6c 22 00 00       	call   0x40cf10
40aca4:	eb e3                	jmp    0x40ac89
40aca6:	cc                   	int3
40aca7:	cc                   	int3
40aca8:	cc                   	int3
40aca9:	cc                   	int3
40acaa:	cc                   	int3
40acab:	cc                   	int3
40acac:	cc                   	int3
40acad:	cc                   	int3
40acae:	cc                   	int3
40acaf:	cc                   	int3
40acb0:	8b ff                	mov    %edi,%edi
40acb2:	53                   	push   %ebx
40acb3:	56                   	push   %esi
40acb4:	57                   	push   %edi
40acb5:	8b f9                	mov    %ecx,%edi
40acb7:	8b f7                	mov    %edi,%esi