40a839:	cc                   	int3
40a83a:	cc                   	int3
40a83b:	cc                   	int3
40a83c:	cc                   	int3
40a83d:	cc                   	int3
40a83e:	cc                   	int3
40a83f:	cc                   	int3
40a840:	55                   	push   %ebp
40a841:	8b ec                	mov    %esp,%ebp
40a843:	51                   	push   %ecx
40a844:	8b 51 08             	mov    0x8(%ecx),%edx
40a847:	8b ca                	mov    %edx,%ecx
40a849:	56                   	push   %esi
40a84a:	8b 75 08             	mov    0x8(%ebp),%esi
40a84d:	57                   	push   %edi
40a84e:	8d 79 01             	lea    0x1(%ecx),%edi
40a851:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40a857:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40a85e:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
40a865:	8a 01                	mov    (%ecx),%al
40a867:	41                   	inc    %ecx
40a868:	84 c0                	test   %al,%al
40a86a:	75 f9                	jne    0x40a865
40a86c:	2b cf                	sub    %edi,%ecx
40a86e:	51                   	push   %ecx
40a86f:	52                   	push   %edx
40a870:	8b ce                	mov    %esi,%ecx
40a872:	e8 29 18 00 00       	call   0x40c0a0
40a877:	5f                   	pop    %edi
40a878:	8b c6                	mov    %esi,%eax
40a87a:	5e                   	pop    %esi
40a87b:	8b e5                	mov    %ebp,%esp
40a87d:	5d                   	pop    %ebp
40a87e:	c2 04 00             	ret    $0x4
40a881:	cc                   	int3
40a882:	cc                   	int3
40a883:	cc                   	int3
40a884:	cc                   	int3
40a885:	cc                   	int3
40a886:	cc                   	int3
40a887:	cc                   	int3
40a888:	cc                   	int3
40a889:	cc                   	int3
40a88a:	cc                   	int3
40a88b:	cc                   	int3
40a88c:	cc                   	int3
40a88d:	cc                   	int3
40a88e:	cc                   	int3
40a88f:	cc                   	int3
40a890:	66 8b 41 0e          	mov    0xe(%ecx),%ax
40a894:	c3                   	ret
40a895:	cc                   	int3
40a896:	cc                   	int3
40a897:	cc                   	int3
40a898:	cc                   	int3
40a899:	cc                   	int3
40a89a:	cc                   	int3
40a89b:	cc                   	int3
40a89c:	cc                   	int3
40a89d:	cc                   	int3
40a89e:	cc                   	int3
40a89f:	cc                   	int3
40a8a0:	66 8b 41 0c          	mov    0xc(%ecx),%ax
40a8a4:	c3                   	ret
40a8a5:	cc                   	int3
40a8a6:	cc                   	int3
40a8a7:	cc                   	int3
40a8a8:	cc                   	int3
40a8a9:	cc                   	int3
40a8aa:	cc                   	int3
40a8ab:	cc                   	int3
40a8ac:	cc                   	int3
40a8ad:	cc                   	int3
40a8ae:	cc                   	int3
40a8af:	cc                   	int3
40a8b0:	55                   	push   %ebp
40a8b1:	8b ec                	mov    %esp,%ebp
40a8b3:	51                   	push   %ecx
40a8b4:	8b 45 0c             	mov    0xc(%ebp),%eax
40a8b7:	53                   	push   %ebx
40a8b8:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
40a8bb:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a8be:	56                   	push   %esi
40a8bf:	8b 75 14             	mov    0x14(%ebp),%esi
40a8c2:	85 db                	test   %ebx,%ebx
40a8c4:	74 5c                	je     0x40a922
40a8c6:	57                   	push   %edi
40a8c7:	85 f6                	test   %esi,%esi
40a8c9:	74 4a                	je     0x40a915
40a8cb:	8b 46 20             	mov    0x20(%esi),%eax
40a8ce:	83 38 00             	cmpl   $0x0,(%eax)
40a8d1:	74 1e                	je     0x40a8f1
40a8d3:	8b 46 30             	mov    0x30(%esi),%eax
40a8d6:	8b 08                	mov    (%eax),%ecx
40a8d8:	85 c9                	test   %ecx,%ecx
40a8da:	7e 15                	jle    0x40a8f1
40a8dc:	49                   	dec    %ecx
40a8dd:	89 08                	mov    %ecx,(%eax)
40a8df:	8b 4e 20             	mov    0x20(%esi),%ecx
40a8e2:	8b 11                	mov    (%ecx),%edx
40a8e4:	8d 42 02             	lea    0x2(%edx),%eax
40a8e7:	89 01                	mov    %eax,(%ecx)
40a8e9:	8b 45 18             	mov    0x18(%ebp),%eax
40a8ec:	66 89 02             	mov    %ax,(%edx)
40a8ef:	eb 14                	jmp    0x40a905
40a8f1:	8b 06                	mov    (%esi),%eax
40a8f3:	ff 75 18             	push   0x18(%ebp)
40a8f6:	8b 78 0c             	mov    0xc(%eax),%edi
40a8f9:	8b cf                	mov    %edi,%ecx
40a8fb:	ff 15 3c f2 43 00    	call   *0x43f23c
40a901:	8b ce                	mov    %esi,%ecx
40a903:	ff d7                	call   *%edi
40a905:	8b 75 14             	mov    0x14(%ebp),%esi
40a908:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40a90d:	0f b7 c0             	movzwl %ax,%eax
40a910:	66 3b c8             	cmp    %ax,%cx
40a913:	75 04                	jne    0x40a919
40a915:	c6 45 10 01          	movb   $0x1,0x10(%ebp)
40a919:	83 eb 01             	sub    $0x1,%ebx
40a91c:	75 a9                	jne    0x40a8c7
40a91e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a921:	5f                   	pop    %edi
40a922:	8b 4d 10             	mov    0x10(%ebp),%ecx
40a925:	89 70 04             	mov    %esi,0x4(%eax)
40a928:	5e                   	pop    %esi
40a929:	89 08                	mov    %ecx,(%eax)
40a92b:	5b                   	pop    %ebx
40a92c:	8b e5                	mov    %ebp,%esp
40a92e:	5d                   	pop    %ebp
40a92f:	c3                   	ret
40a930:	55                   	push   %ebp
40a931:	8b ec                	mov    %esp,%ebp
40a933:	83 ec 0c             	sub    $0xc,%esp
40a936:	8b 45 0c             	mov    0xc(%ebp),%eax
40a939:	53                   	push   %ebx
40a93a:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
40a93d:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a940:	56                   	push   %esi
40a941:	8b 75 14             	mov    0x14(%ebp),%esi
40a944:	57                   	push   %edi
40a945:	8b 7d 18             	mov    0x18(%ebp),%edi
40a948:	89 7d fc             	mov    %edi,-0x4(%ebp)
40a94b:	85 db                	test   %ebx,%ebx
40a94d:	74 6d                	je     0x40a9bc
40a94f:	90                   	nop
40a950:	85 f6                	test   %esi,%esi
40a952:	74 56                	je     0x40a9aa
40a954:	8b 46 20             	mov    0x20(%esi),%eax
40a957:	0f b7 0f             	movzwl (%edi),%ecx
40a95a:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a95d:	83 38 00             	cmpl   $0x0,(%eax)
40a960:	74 23                	je     0x40a985
40a962:	8b 46 30             	mov    0x30(%esi),%eax
40a965:	8b 00                	mov    (%eax),%eax
40a967:	85 c0                	test   %eax,%eax
40a969:	7e 1a                	jle    0x40a985
40a96b:	8d 48 ff             	lea    -0x1(%eax),%ecx
40a96e:	8b 46 30             	mov    0x30(%esi),%eax
40a971:	89 08                	mov    %ecx,(%eax)
40a973:	8b 4e 20             	mov    0x20(%esi),%ecx
40a976:	8b 11                	mov    (%ecx),%edx
40a978:	8d 42 02             	lea    0x2(%edx),%eax
40a97b:	89 01                	mov    %eax,(%ecx)
40a97d:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a980:	66 89 02             	mov    %ax,(%edx)
40a983:	eb 15                	jmp    0x40a99a
40a985:	8b 06                	mov    (%esi),%eax
40a987:	51                   	push   %ecx
40a988:	8b 78 0c             	mov    0xc(%eax),%edi
40a98b:	8b cf                	mov    %edi,%ecx
40a98d:	ff 15 3c f2 43 00    	call   *0x43f23c
40a993:	8b ce                	mov    %esi,%ecx
40a995:	ff d7                	call   *%edi
40a997:	8b 7d fc             	mov    -0x4(%ebp),%edi
40a99a:	8b 75 14             	mov    0x14(%ebp),%esi
40a99d:	b9 ff ff 00 00       	mov    $0xffff,%ecx
40a9a2:	0f b7 c0             	movzwl %ax,%eax
40a9a5:	66 3b c8             	cmp    %ax,%cx
40a9a8:	75 04                	jne    0x40a9ae
40a9aa:	c6 45 10 01          	movb   $0x1,0x10(%ebp)
40a9ae:	83 c7 02             	add    $0x2,%edi
40a9b1:	89 7d fc             	mov    %edi,-0x4(%ebp)
40a9b4:	83 eb 01             	sub    $0x1,%ebx
40a9b7:	75 97                	jne    0x40a950
40a9b9:	8b 45 f4             	mov    -0xc(%ebp),%eax
40a9bc:	8b 4d 10             	mov    0x10(%ebp),%ecx
40a9bf:	5f                   	pop    %edi
40a9c0:	89 70 04             	mov    %esi,0x4(%eax)
40a9c3:	5e                   	pop    %esi
40a9c4:	89 08                	mov    %ecx,(%eax)
40a9c6:	5b                   	pop    %ebx
40a9c7:	8b e5                	mov    %ebp,%esp
40a9c9:	5d                   	pop    %ebp
40a9ca:	c3                   	ret
40a9cb:	cc                   	int3
40a9cc:	cc                   	int3
40a9cd:	cc                   	int3
40a9ce:	cc                   	int3
40a9cf:	cc                   	int3
40a9d0:	55                   	push   %ebp
40a9d1:	8b ec                	mov    %esp,%ebp
40a9d3:	6a ff                	push   $0xffffffff
40a9d5:	68 35 db 43 00       	push   $0x43db35
40a9da:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40a9e0:	50                   	push   %eax
40a9e1:	83 ec 54             	sub    $0x54,%esp
40a9e4:	a1 14 40 45 00       	mov    0x454014,%eax
40a9e9:	33 c5                	xor    %ebp,%eax
40a9eb:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a9ee:	53                   	push   %ebx
40a9ef:	56                   	push   %esi
40a9f0:	57                   	push   %edi
40a9f1:	50                   	push   %eax
40a9f2:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a9f5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a9fb:	8b 5d 24             	mov    0x24(%ebp),%ebx
40a9fe:	8b 45 0c             	mov    0xc(%ebp),%eax
40aa01:	8b 7d 18             	mov    0x18(%ebp),%edi
40aa04:	8b 55 20             	mov    0x20(%ebp),%edx
40aa07:	89 45 a0             	mov    %eax,-0x60(%ebp)
40aa0a:	89 7d ac             	mov    %edi,-0x54(%ebp)
40aa0d:	89 55 a8             	mov    %edx,-0x58(%ebp)
40aa10:	85 db                	test   %ebx,%ebx
40aa12:	74 11                	je     0x40aa25
40aa14:	8a 02                	mov    (%edx),%al
40aa16:	3c 2b                	cmp    $0x2b,%al
40aa18:	74 04                	je     0x40aa1e
40aa1a:	3c 2d                	cmp    $0x2d,%al
40aa1c:	75 07                	jne    0x40aa25
40aa1e:	b9 01 00 00 00       	mov    $0x1,%ecx
40aa23:	eb 02                	jmp    0x40aa27
40aa25:	33 c9                	xor    %ecx,%ecx
40aa27:	8b 47 14             	mov    0x14(%edi),%eax
40aa2a:	25 00 0e 00 00       	and    $0xe00,%eax
40aa2f:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40aa32:	3d 00 08 00 00       	cmp    $0x800,%eax
40aa37:	75 1c                	jne    0x40aa55
40aa39:	8d 71 02             	lea    0x2(%ecx),%esi
40aa3c:	3b f3                	cmp    %ebx,%esi
40aa3e:	77 15                	ja     0x40aa55
40aa40:	80 3c 0a 30          	cmpb   $0x30,(%edx,%ecx,1)
40aa44:	75 0f                	jne    0x40aa55
40aa46:	8a 44 0a 01          	mov    0x1(%edx,%ecx,1),%al
40aa4a:	3c 78                	cmp    $0x78,%al
40aa4c:	74 04                	je     0x40aa52
40aa4e:	3c 58                	cmp    $0x58,%al
40aa50:	75 03                	jne    0x40aa55
40aa52:	89 75 b8             	mov    %esi,-0x48(%ebp)
40aa55:	8b 47 30             	mov    0x30(%edi),%eax
40aa58:	8b 78 04             	mov    0x4(%eax),%edi
40aa5b:	89 7d b4             	mov    %edi,-0x4c(%ebp)
40aa5e:	8b 07                	mov    (%edi),%eax
40aa60:	8b 70 04             	mov    0x4(%eax),%esi
40aa63:	8b ce                	mov    %esi,%ecx
40aa65:	ff 15 3c f2 43 00    	call   *0x43f23c
40aa6b:	8b cf                	mov    %edi,%ecx
40aa6d:	ff d6                	call   *%esi
40aa6f:	8d 45 b0             	lea    -0x50(%ebp),%eax
40aa72:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40aa79:	50                   	push   %eax
40aa7a:	e8 11 1a 00 00       	call   0x40c490
40aa7f:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40aa86:	83 c4 04             	add    $0x4,%esp
40aa89:	8b 7d b4             	mov    -0x4c(%ebp),%edi
40aa8c:	89 45 bc             	mov    %eax,-0x44(%ebp)
40aa8f:	85 ff                	test   %edi,%edi
40aa91:	74 29                	je     0x40aabc
40aa93:	8b 07                	mov    (%edi),%eax
40aa95:	8b 70 08             	mov    0x8(%eax),%esi
40aa98:	8b ce                	mov    %esi,%ecx
40aa9a:	ff 15 3c f2 43 00    	call   *0x43f23c
40aaa0:	8b cf                	mov    %edi,%ecx
40aaa2:	ff d6                	call   *%esi
40aaa4:	8b f8                	mov    %eax,%edi
40aaa6:	85 ff                	test   %edi,%edi
40aaa8:	74 12                	je     0x40aabc
40aaaa:	8b 07                	mov    (%edi),%eax
40aaac:	6a 01                	push   $0x1
40aaae:	8b 30                	mov    (%eax),%esi
40aab0:	8b ce                	mov    %esi,%ecx
40aab2:	ff 15 3c f2 43 00    	call   *0x43f23c
40aab8:	8b cf                	mov    %edi,%ecx
40aaba:	ff d6                	call   *%esi
40aabc:	53                   	push   %ebx
40aabd:	6a 00                	push   $0x0
40aabf:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40aac2:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
40aac9:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40aad0:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40aad7:	e8 74 14 00 00       	call   0x40bf50
40aadc:	8b 7d bc             	mov    -0x44(%ebp),%edi
40aadf:	8d 45 d8             	lea    -0x28(%ebp),%eax
40aae2:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40aae9:	8b 55 a8             	mov    -0x58(%ebp),%edx
40aaec:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40aaf0:	8b 0f                	mov    (%edi),%ecx
40aaf2:	0f 43 45 d8          	cmovae -0x28(%ebp),%eax
40aaf6:	50                   	push   %eax
40aaf7:	8d 04 13             	lea    (%ebx,%edx,1),%eax
40aafa:	8b 71 2c             	mov    0x2c(%ecx),%esi
40aafd:	8b ce                	mov    %esi,%ecx
40aaff:	50                   	push   %eax
40ab00:	52                   	push   %edx
40ab01:	ff 15 3c f2 43 00    	call   *0x43f23c
40ab07:	8b cf                	mov    %edi,%ecx
40ab09:	ff d6                	call   *%esi
40ab0b:	8b 55 ac             	mov    -0x54(%ebp),%edx
40ab0e:	8b 42 30             	mov    0x30(%edx),%eax
40ab11:	8b 78 04             	mov    0x4(%eax),%edi
40ab14:	89 7d a8             	mov    %edi,-0x58(%ebp)
40ab17:	8b 07                	mov    (%edi),%eax
40ab19:	8b 70 04             	mov    0x4(%eax),%esi
40ab1c:	8b ce                	mov    %esi,%ecx
40ab1e:	ff 15 3c f2 43 00    	call   *0x43f23c
40ab24:	8b cf                	mov    %edi,%ecx
40ab26:	ff d6                	call   *%esi
40ab28:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40ab2b:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40ab2f:	50                   	push   %eax
40ab30:	e8 4b 16 00 00       	call   0x40c180
40ab35:	8b f8                	mov    %eax,%edi
40ab37:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40ab3b:	8b 45 a8             	mov    -0x58(%ebp),%eax
40ab3e:	83 c4 04             	add    $0x4,%esp
40ab41:	89 7d bc             	mov    %edi,-0x44(%ebp)
40ab44:	85 c0                	test   %eax,%eax
40ab46:	74 2d                	je     0x40ab75
40ab48:	8b 00                	mov    (%eax),%eax
40ab4a:	8b 70 08             	mov    0x8(%eax),%esi
40ab4d:	8b ce                	mov    %esi,%ecx
40ab4f:	ff 15 3c f2 43 00    	call   *0x43f23c
40ab55:	8b 4d a8             	mov    -0x58(%ebp),%ecx
40ab58:	ff d6                	call   *%esi
40ab5a:	8b f8                	mov    %eax,%edi
40ab5c:	85 ff                	test   %edi,%edi
40ab5e:	74 12                	je     0x40ab72
40ab60:	8b 07                	mov    (%edi),%eax
40ab62:	6a 01                	push   $0x1
40ab64:	8b 30                	mov    (%eax),%esi
40ab66:	8b ce                	mov    %esi,%ecx
40ab68:	ff 15 3c f2 43 00    	call   *0x43f23c
40ab6e:	8b cf                	mov    %edi,%ecx
40ab70:	ff d6                	call   *%esi
40ab72:	8b 7d bc             	mov    -0x44(%ebp),%edi
40ab75:	8b 07                	mov    (%edi),%eax
40ab77:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40ab7a:	51                   	push   %ecx
40ab7b:	8b 70 14             	mov    0x14(%eax),%esi
40ab7e:	8b ce                	mov    %esi,%ecx
40ab80:	ff 15 3c f2 43 00    	call   *0x43f23c