40a8f8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a8fb:	8d 45 f8             	lea    -0x8(%ebp),%eax
40a8fe:	50                   	push   %eax
40a8ff:	6a 04                	push   $0x4
40a901:	e8 16 ff ff ff       	call   0x40a81c
40a906:	83 c4 10             	add    $0x10,%esp
40a909:	8b e5                	mov    %ebp,%esp
40a90b:	5d                   	pop    %ebp
40a90c:	c3                   	ret
40a90d:	8b ff                	mov    %edi,%edi
40a90f:	55                   	push   %ebp
40a910:	8b ec                	mov    %esp,%ebp
40a912:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40a916:	74 12                	je     0x40a92a
40a918:	ff 75 08             	push   0x8(%ebp)
40a91b:	e8 0e 00 00 00       	call   0x40a92e
40a920:	ff 75 08             	push   0x8(%ebp)
40a923:	e8 fc ee ff ff       	call   0x409824
40a928:	59                   	pop    %ecx
40a929:	59                   	pop    %ecx
40a92a:	5d                   	pop    %ebp
40a92b:	c2 04 00             	ret    $0x4
40a92e:	8b ff                	mov    %edi,%edi
40a930:	55                   	push   %ebp
40a931:	8b ec                	mov    %esp,%ebp
40a933:	51                   	push   %ecx
40a934:	8b 45 08             	mov    0x8(%ebp),%eax
40a937:	8b 08                	mov    (%eax),%ecx
40a939:	81 f9 98 be 41 00    	cmp    $0x41be98,%ecx
40a93f:	74 0a                	je     0x40a94b
40a941:	51                   	push   %ecx
40a942:	e8 dd ee ff ff       	call   0x409824
40a947:	8b 45 08             	mov    0x8(%ebp),%eax
40a94a:	59                   	pop    %ecx
40a94b:	ff 70 3c             	push   0x3c(%eax)
40a94e:	e8 d1 ee ff ff       	call   0x409824
40a953:	8b 45 08             	mov    0x8(%ebp),%eax
40a956:	ff 70 30             	push   0x30(%eax)
40a959:	e8 c6 ee ff ff       	call   0x409824
40a95e:	8b 45 08             	mov    0x8(%ebp),%eax
40a961:	ff 70 34             	push   0x34(%eax)
40a964:	e8 bb ee ff ff       	call   0x409824
40a969:	8b 45 08             	mov    0x8(%ebp),%eax
40a96c:	ff 70 38             	push   0x38(%eax)
40a96f:	e8 b0 ee ff ff       	call   0x409824
40a974:	8b 45 08             	mov    0x8(%ebp),%eax
40a977:	ff 70 28             	push   0x28(%eax)
40a97a:	e8 a5 ee ff ff       	call   0x409824
40a97f:	8b 45 08             	mov    0x8(%ebp),%eax
40a982:	ff 70 2c             	push   0x2c(%eax)
40a985:	e8 9a ee ff ff       	call   0x409824
40a98a:	8b 45 08             	mov    0x8(%ebp),%eax
40a98d:	ff 70 40             	push   0x40(%eax)
40a990:	e8 8f ee ff ff       	call   0x409824
40a995:	8b 45 08             	mov    0x8(%ebp),%eax
40a998:	ff 70 44             	push   0x44(%eax)
40a99b:	e8 84 ee ff ff       	call   0x409824
40a9a0:	8b 45 08             	mov    0x8(%ebp),%eax
40a9a3:	ff b0 60 03 00 00    	push   0x360(%eax)
40a9a9:	e8 76 ee ff ff       	call   0x409824
40a9ae:	8d 45 08             	lea    0x8(%ebp),%eax
40a9b1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a9b4:	8d 45 fc             	lea    -0x4(%ebp),%eax
40a9b7:	50                   	push   %eax
40a9b8:	6a 05                	push   $0x5
40a9ba:	e8 35 fe ff ff       	call   0x40a7f4
40a9bf:	8d 45 08             	lea    0x8(%ebp),%eax
40a9c2:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a9c5:	8d 45 fc             	lea    -0x4(%ebp),%eax
40a9c8:	50                   	push   %eax
40a9c9:	6a 04                	push   $0x4
40a9cb:	e8 74 fe ff ff       	call   0x40a844
40a9d0:	83 c4 34             	add    $0x34,%esp
40a9d3:	8b e5                	mov    %ebp,%esp
40a9d5:	5d                   	pop    %ebp
40a9d6:	c3                   	ret
40a9d7:	8b ff                	mov    %edi,%edi
40a9d9:	55                   	push   %ebp
40a9da:	8b ec                	mov    %esp,%ebp
40a9dc:	56                   	push   %esi
40a9dd:	8b 75 08             	mov    0x8(%ebp),%esi
40a9e0:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
40a9e4:	74 28                	je     0x40aa0e
40a9e6:	ff 76 4c             	push   0x4c(%esi)
40a9e9:	e8 d0 65 00 00       	call   0x410fbe
40a9ee:	8b 46 4c             	mov    0x4c(%esi),%eax
40a9f1:	59                   	pop    %ecx
40a9f2:	3b 05 bc 41 42 00    	cmp    0x4241bc,%eax
40a9f8:	74 14                	je     0x40aa0e
40a9fa:	3d 08 31 42 00       	cmp    $0x423108,%eax
40a9ff:	74 0d                	je     0x40aa0e
40aa01:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40aa05:	75 07                	jne    0x40aa0e
40aa07:	50                   	push   %eax
40aa08:	e8 e5 63 00 00       	call   0x410df2
40aa0d:	59                   	pop    %ecx
40aa0e:	8b 45 0c             	mov    0xc(%ebp),%eax
40aa11:	89 46 4c             	mov    %eax,0x4c(%esi)
40aa14:	5e                   	pop    %esi
40aa15:	85 c0                	test   %eax,%eax
40aa17:	74 07                	je     0x40aa20
40aa19:	50                   	push   %eax
40aa1a:	e8 56 63 00 00       	call   0x410d75
40aa1f:	59                   	pop    %ecx
40aa20:	5d                   	pop    %ebp
40aa21:	c3                   	ret
40aa22:	8b ff                	mov    %edi,%edi
40aa24:	56                   	push   %esi
40aa25:	57                   	push   %edi
40aa26:	ff 15 48 b0 41 00    	call   *0x41b048
40aa2c:	8b f0                	mov    %eax,%esi
40aa2e:	a1 5c 30 42 00       	mov    0x42305c,%eax
40aa33:	83 f8 ff             	cmp    $0xffffffff,%eax
40aa36:	74 0c                	je     0x40aa44
40aa38:	50                   	push   %eax
40aa39:	e8 a2 14 00 00       	call   0x40bee0
40aa3e:	8b f8                	mov    %eax,%edi
40aa40:	85 ff                	test   %edi,%edi
40aa42:	75 49                	jne    0x40aa8d
40aa44:	68 64 03 00 00       	push   $0x364
40aa49:	6a 01                	push   $0x1
40aa4b:	e8 5c ee ff ff       	call   0x4098ac
40aa50:	8b f8                	mov    %eax,%edi
40aa52:	59                   	pop    %ecx
40aa53:	59                   	pop    %ecx
40aa54:	85 ff                	test   %edi,%edi
40aa56:	75 09                	jne    0x40aa61
40aa58:	50                   	push   %eax
40aa59:	e8 c6 ed ff ff       	call   0x409824
40aa5e:	59                   	pop    %ecx
40aa5f:	eb 38                	jmp    0x40aa99
40aa61:	57                   	push   %edi
40aa62:	ff 35 5c 30 42 00    	push   0x42305c
40aa68:	e8 c9 14 00 00       	call   0x40bf36
40aa6d:	85 c0                	test   %eax,%eax
40aa6f:	75 03                	jne    0x40aa74
40aa71:	57                   	push   %edi
40aa72:	eb e5                	jmp    0x40aa59
40aa74:	68 bc 41 42 00       	push   $0x4241bc
40aa79:	57                   	push   %edi
40aa7a:	e8 15 fe ff ff       	call   0x40a894
40aa7f:	6a 00                	push   $0x0
40aa81:	e8 9e ed ff ff       	call   0x409824
40aa86:	83 c4 0c             	add    $0xc,%esp
40aa89:	85 ff                	test   %edi,%edi
40aa8b:	74 0c                	je     0x40aa99
40aa8d:	56                   	push   %esi
40aa8e:	ff 15 9c b0 41 00    	call   *0x41b09c
40aa94:	8b c7                	mov    %edi,%eax
40aa96:	5f                   	pop    %edi
40aa97:	5e                   	pop    %esi
40aa98:	c3                   	ret
40aa99:	56                   	push   %esi
40aa9a:	ff 15 9c b0 41 00    	call   *0x41b09c
40aaa0:	e8 3c ed ff ff       	call   0x4097e1
40aaa5:	cc                   	int3
40aaa6:	8b ff                	mov    %edi,%edi
40aaa8:	53                   	push   %ebx
40aaa9:	56                   	push   %esi
40aaaa:	57                   	push   %edi
40aaab:	ff 15 48 b0 41 00    	call   *0x41b048
40aab1:	8b f0                	mov    %eax,%esi
40aab3:	33 db                	xor    %ebx,%ebx
40aab5:	a1 5c 30 42 00       	mov    0x42305c,%eax
40aaba:	83 f8 ff             	cmp    $0xffffffff,%eax
40aabd:	74 0c                	je     0x40aacb
40aabf:	50                   	push   %eax
40aac0:	e8 1b 14 00 00       	call   0x40bee0
40aac5:	8b f8                	mov    %eax,%edi
40aac7:	85 ff                	test   %edi,%edi
40aac9:	75 51                	jne    0x40ab1c
40aacb:	68 64 03 00 00       	push   $0x364
40aad0:	6a 01                	push   $0x1
40aad2:	e8 d5 ed ff ff       	call   0x4098ac
40aad7:	8b f8                	mov    %eax,%edi
40aad9:	59                   	pop    %ecx
40aada:	59                   	pop    %ecx
40aadb:	85 ff                	test   %edi,%edi
40aadd:	75 09                	jne    0x40aae8
40aadf:	53                   	push   %ebx
40aae0:	e8 3f ed ff ff       	call   0x409824
40aae5:	59                   	pop    %ecx
40aae6:	eb 2b                	jmp    0x40ab13
40aae8:	57                   	push   %edi
40aae9:	ff 35 5c 30 42 00    	push   0x42305c
40aaef:	e8 42 14 00 00       	call   0x40bf36
40aaf4:	85 c0                	test   %eax,%eax
40aaf6:	75 03                	jne    0x40aafb
40aaf8:	57                   	push   %edi
40aaf9:	eb e5                	jmp    0x40aae0
40aafb:	68 bc 41 42 00       	push   $0x4241bc
40ab00:	57                   	push   %edi
40ab01:	e8 8e fd ff ff       	call   0x40a894
40ab06:	53                   	push   %ebx
40ab07:	e8 18 ed ff ff       	call   0x409824
40ab0c:	83 c4 0c             	add    $0xc,%esp
40ab0f:	85 ff                	test   %edi,%edi
40ab11:	75 09                	jne    0x40ab1c
40ab13:	56                   	push   %esi
40ab14:	ff 15 9c b0 41 00    	call   *0x41b09c
40ab1a:	eb 09                	jmp    0x40ab25
40ab1c:	56                   	push   %esi
40ab1d:	ff 15 9c b0 41 00    	call   *0x41b09c
40ab23:	8b df                	mov    %edi,%ebx
40ab25:	5f                   	pop    %edi
40ab26:	5e                   	pop    %esi
40ab27:	8b c3                	mov    %ebx,%eax
40ab29:	5b                   	pop    %ebx
40ab2a:	c3                   	ret
40ab2b:	68 0d a9 40 00       	push   $0x40a90d
40ab30:	e8 ff 12 00 00       	call   0x40be34
40ab35:	a3 5c 30 42 00       	mov    %eax,0x42305c
40ab3a:	83 f8 ff             	cmp    $0xffffffff,%eax
40ab3d:	75 03                	jne    0x40ab42
40ab3f:	32 c0                	xor    %al,%al
40ab41:	c3                   	ret
40ab42:	e8 5f ff ff ff       	call   0x40aaa6
40ab47:	85 c0                	test   %eax,%eax
40ab49:	75 09                	jne    0x40ab54
40ab4b:	50                   	push   %eax
40ab4c:	e8 06 00 00 00       	call   0x40ab57
40ab51:	59                   	pop    %ecx
40ab52:	eb eb                	jmp    0x40ab3f
40ab54:	b0 01                	mov    $0x1,%al
40ab56:	c3                   	ret
40ab57:	a1 5c 30 42 00       	mov    0x42305c,%eax
40ab5c:	83 f8 ff             	cmp    $0xffffffff,%eax
40ab5f:	74 0d                	je     0x40ab6e
40ab61:	50                   	push   %eax
40ab62:	e8 23 13 00 00       	call   0x40be8a
40ab67:	83 0d 5c 30 42 00 ff 	orl    $0xffffffff,0x42305c
40ab6e:	b0 01                	mov    $0x1,%al
40ab70:	c3                   	ret
40ab71:	8b ff                	mov    %edi,%edi
40ab73:	55                   	push   %ebp
40ab74:	8b ec                	mov    %esp,%ebp
40ab76:	56                   	push   %esi
40ab77:	8b 75 0c             	mov    0xc(%ebp),%esi
40ab7a:	8b 06                	mov    (%esi),%eax
40ab7c:	3b 05 bc 41 42 00    	cmp    0x4241bc,%eax
40ab82:	74 17                	je     0x40ab9b
40ab84:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ab87:	a1 20 38 42 00       	mov    0x423820,%eax
40ab8c:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
40ab92:	75 07                	jne    0x40ab9b
40ab94:	e8 a6 64 00 00       	call   0x41103f
40ab99:	89 06                	mov    %eax,(%esi)
40ab9b:	5e                   	pop    %esi
40ab9c:	5d                   	pop    %ebp
40ab9d:	c3                   	ret
40ab9e:	8b ff                	mov    %edi,%edi
40aba0:	55                   	push   %ebp
40aba1:	8b ec                	mov    %esp,%ebp
40aba3:	56                   	push   %esi
40aba4:	8b 75 0c             	mov    0xc(%ebp),%esi
40aba7:	8b 06                	mov    (%esi),%eax
40aba9:	3b 05 c0 37 42 00    	cmp    0x4237c0,%eax
40abaf:	74 17                	je     0x40abc8
40abb1:	8b 4d 08             	mov    0x8(%ebp),%ecx
40abb4:	a1 20 38 42 00       	mov    0x423820,%eax
40abb9:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
40abbf:	75 07                	jne    0x40abc8
40abc1:	e8 5b 4d 00 00       	call   0x40f921
40abc6:	89 06                	mov    %eax,(%esi)
40abc8:	5e                   	pop    %esi
40abc9:	5d                   	pop    %ebp
40abca:	c3                   	ret
40abcb:	8b ff                	mov    %edi,%edi
40abcd:	55                   	push   %ebp
40abce:	8b ec                	mov    %esp,%ebp
40abd0:	8b 45 08             	mov    0x8(%ebp),%eax
40abd3:	b9 ff 07 00 00       	mov    $0x7ff,%ecx
40abd8:	53                   	push   %ebx
40abd9:	56                   	push   %esi
40abda:	33 d2                	xor    %edx,%edx
40abdc:	8b 18                	mov    (%eax),%ebx
40abde:	8b 70 04             	mov    0x4(%eax),%esi
40abe1:	8b c6                	mov    %esi,%eax
40abe3:	c1 e8 14             	shr    $0x14,%eax
40abe6:	23 c1                	and    %ecx,%eax
40abe8:	57                   	push   %edi
40abe9:	3b c1                	cmp    %ecx,%eax
40abeb:	75 43                	jne    0x40ac30
40abed:	3b d2                	cmp    %edx,%edx
40abef:	75 3f                	jne    0x40ac30
40abf1:	8b fe                	mov    %esi,%edi
40abf3:	8b c3                	mov    %ebx,%eax
40abf5:	81 e7 ff ff 0f 00    	and    $0xfffff,%edi
40abfb:	0b c7                	or     %edi,%eax
40abfd:	75 03                	jne    0x40ac02
40abff:	40                   	inc    %eax
40ac00:	eb 30                	jmp    0x40ac32
40ac02:	8b ce                	mov    %esi,%ecx
40ac04:	8b c2                	mov    %edx,%eax
40ac06:	81 e1 00 00 00 80    	and    $0x80000000,%ecx
40ac0c:	0b c1                	or     %ecx,%eax
40ac0e:	b8 00 00 08 00       	mov    $0x80000,%eax
40ac13:	74 0d                	je     0x40ac22
40ac15:	3b da                	cmp    %edx,%ebx
40ac17:	75 09                	jne    0x40ac22
40ac19:	3b f8                	cmp    %eax,%edi
40ac1b:	75 05                	jne    0x40ac22
40ac1d:	6a 04                	push   $0x4
40ac1f:	58                   	pop    %eax
40ac20:	eb 10                	jmp    0x40ac32
40ac22:	23 f0                	and    %eax,%esi
40ac24:	0b d6                	or     %esi,%edx
40ac26:	74 04                	je     0x40ac2c
40ac28:	6a 02                	push   $0x2
40ac2a:	eb f3                	jmp    0x40ac1f
40ac2c:	6a 03                	push   $0x3
40ac2e:	eb ef                	jmp    0x40ac1f
40ac30:	33 c0                	xor    %eax,%eax
40ac32:	5f                   	pop    %edi
40ac33:	5e                   	pop    %esi
40ac34:	5b                   	pop    %ebx
40ac35:	5d                   	pop    %ebp
40ac36:	c3                   	ret
40ac37:	8b ff                	mov    %edi,%edi
40ac39:	55                   	push   %ebp
40ac3a:	8b ec                	mov    %esp,%ebp
40ac3c:	8b 45 08             	mov    0x8(%ebp),%eax
40ac3f:	33 d2                	xor    %edx,%edx
40ac41:	8b 48 04             	mov    0x4(%eax),%ecx
40ac44:	8b c2                	mov    %edx,%eax
40ac46:	81 e1 00 00 00 80    	and    $0x80000000,%ecx
40ac4c:	0b c1                	or     %ecx,%eax
40ac4e:	74 01                	je     0x40ac51
40ac50:	42                   	inc    %edx
40ac51:	8a c2                	mov    %dl,%al
40ac53:	5d                   	pop    %ebp
40ac54:	c3                   	ret
40ac55:	8b ff                	mov    %edi,%edi
40ac57:	55                   	push   %ebp
40ac58:	8b ec                	mov    %esp,%ebp
40ac5a:	83 ec 30             	sub    $0x30,%esp
40ac5d:	53                   	push   %ebx
40ac5e:	56                   	push   %esi
40ac5f:	57                   	push   %edi
40ac60:	8b 7d 1c             	mov    0x1c(%ebp),%edi
40ac63:	33 db                	xor    %ebx,%ebx
40ac65:	85 ff                	test   %edi,%edi
40ac67:	79 02                	jns    0x40ac6b
40ac69:	8b fb                	mov    %ebx,%edi
40ac6b:	8b 75 0c             	mov    0xc(%ebp),%esi
40ac6e:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40ac71:	ff 75 28             	push   0x28(%ebp)
40ac74:	88 1e                	mov    %bl,(%esi)
40ac76:	e8 36 aa ff ff       	call   0x4056b1
40ac7b:	8d 47 0b             	lea    0xb(%edi),%eax