4378e1:	f7 d8                	neg    %eax
4378e3:	3b f8                	cmp    %eax,%edi
4378e5:	7c 02                	jl     0x4378e9
4378e7:	8b f8                	mov    %eax,%edi
4378e9:	57                   	push   %edi
4378ea:	56                   	push   %esi
4378eb:	e8 6c 03 00 00       	call   0x437c5c
4378f0:	57                   	push   %edi
4378f1:	6a 30                	push   $0x30
4378f3:	56                   	push   %esi
4378f4:	e8 27 b7 fe ff       	call   0x423020
4378f9:	83 c4 14             	add    $0x14,%esp
4378fc:	5f                   	pop    %edi
4378fd:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
437901:	74 07                	je     0x43790a
437903:	8b 4d f4             	mov    -0xc(%ebp),%ecx
437906:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
43790a:	5e                   	pop    %esi
43790b:	8b c3                	mov    %ebx,%eax
43790d:	5b                   	pop    %ebx
43790e:	8b e5                	mov    %ebp,%esp
437910:	5d                   	pop    %ebp
437911:	c3                   	ret
437912:	55                   	push   %ebp
437913:	8b ec                	mov    %esp,%ebp
437915:	83 ec 2c             	sub    $0x2c,%esp
437918:	a1 50 fd 4b 00       	mov    0x4bfd50,%eax
43791d:	33 c5                	xor    %ebp,%eax
43791f:	89 45 fc             	mov    %eax,-0x4(%ebp)
437922:	8b 45 08             	mov    0x8(%ebp),%eax
437925:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
437928:	53                   	push   %ebx
437929:	57                   	push   %edi
43792a:	8b 7d 0c             	mov    0xc(%ebp),%edi
43792d:	6a 16                	push   $0x16
43792f:	5b                   	pop    %ebx
437930:	53                   	push   %ebx
437931:	51                   	push   %ecx
437932:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
437935:	51                   	push   %ecx
437936:	ff 70 04             	push   0x4(%eax)
437939:	ff 30                	push   (%eax)
43793b:	e8 5f 1c 00 00       	call   0x43959f
437940:	83 c4 14             	add    $0x14,%esp
437943:	85 ff                	test   %edi,%edi
437945:	75 10                	jne    0x437957
437947:	e8 1c 14 ff ff       	call   0x428d68
43794c:	89 18                	mov    %ebx,(%eax)
43794e:	e8 a3 16 ff ff       	call   0x428ff6
437953:	8b c3                	mov    %ebx,%eax
437955:	eb 6c                	jmp    0x4379c3
437957:	56                   	push   %esi
437958:	8b 75 10             	mov    0x10(%ebp),%esi
43795b:	85 f6                	test   %esi,%esi
43795d:	75 10                	jne    0x43796f
43795f:	e8 04 14 ff ff       	call   0x428d68
437964:	89 18                	mov    %ebx,(%eax)
437966:	e8 8b 16 ff ff       	call   0x428ff6
43796b:	8b c3                	mov    %ebx,%eax
43796d:	eb 53                	jmp    0x4379c2
43796f:	83 c9 ff             	or     $0xffffffff,%ecx
437972:	3b f1                	cmp    %ecx,%esi
437974:	74 0d                	je     0x437983
437976:	33 c0                	xor    %eax,%eax
437978:	8b ce                	mov    %esi,%ecx
43797a:	83 7d d4 2d          	cmpl   $0x2d,-0x2c(%ebp)
43797e:	0f 94 c0             	sete   %al
437981:	2b c8                	sub    %eax,%ecx
437983:	8b 5d 14             	mov    0x14(%ebp),%ebx
437986:	8d 45 d4             	lea    -0x2c(%ebp),%eax
437989:	50                   	push   %eax
43798a:	8b 45 d8             	mov    -0x28(%ebp),%eax
43798d:	03 c3                	add    %ebx,%eax
43798f:	50                   	push   %eax
437990:	33 c0                	xor    %eax,%eax
437992:	83 7d d4 2d          	cmpl   $0x2d,-0x2c(%ebp)
437996:	51                   	push   %ecx
437997:	0f 94 c0             	sete   %al
43799a:	03 c7                	add    %edi,%eax
43799c:	50                   	push   %eax
43799d:	e8 85 1a 00 00       	call   0x439427
4379a2:	83 c4 10             	add    $0x10,%esp
4379a5:	85 c0                	test   %eax,%eax
4379a7:	74 05                	je     0x4379ae
4379a9:	c6 07 00             	movb   $0x0,(%edi)
4379ac:	eb 14                	jmp    0x4379c2
4379ae:	ff 75 18             	push   0x18(%ebp)
4379b1:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4379b4:	6a 00                	push   $0x0
4379b6:	50                   	push   %eax
4379b7:	53                   	push   %ebx
4379b8:	56                   	push   %esi
4379b9:	57                   	push   %edi
4379ba:	e8 67 fe ff ff       	call   0x437826
4379bf:	83 c4 18             	add    $0x18,%esp
4379c2:	5e                   	pop    %esi
4379c3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4379c6:	5f                   	pop    %edi
4379c7:	33 cd                	xor    %ebp,%ecx
4379c9:	5b                   	pop    %ebx
4379ca:	e8 67 4e ff ff       	call   0x42c836
4379cf:	8b e5                	mov    %ebp,%esp
4379d1:	5d                   	pop    %ebp
4379d2:	c3                   	ret
4379d3:	55                   	push   %ebp
4379d4:	8b ec                	mov    %esp,%ebp
4379d6:	83 ec 30             	sub    $0x30,%esp
4379d9:	a1 50 fd 4b 00       	mov    0x4bfd50,%eax
4379de:	33 c5                	xor    %ebp,%eax
4379e0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4379e3:	8b 45 08             	mov    0x8(%ebp),%eax
4379e6:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4379e9:	53                   	push   %ebx
4379ea:	57                   	push   %edi
4379eb:	8b 7d 0c             	mov    0xc(%ebp),%edi
4379ee:	6a 16                	push   $0x16
4379f0:	5b                   	pop    %ebx
4379f1:	53                   	push   %ebx
4379f2:	51                   	push   %ecx
4379f3:	8d 4d d0             	lea    -0x30(%ebp),%ecx
4379f6:	51                   	push   %ecx
4379f7:	ff 70 04             	push   0x4(%eax)
4379fa:	ff 30                	push   (%eax)
4379fc:	e8 9e 1b 00 00       	call   0x43959f
437a01:	83 c4 14             	add    $0x14,%esp
437a04:	85 ff                	test   %edi,%edi
437a06:	75 13                	jne    0x437a1b
437a08:	e8 5b 13 ff ff       	call   0x428d68
437a0d:	89 18                	mov    %ebx,(%eax)
437a0f:	e8 e2 15 ff ff       	call   0x428ff6
437a14:	8b c3                	mov    %ebx,%eax
437a16:	e9 a7 00 00 00       	jmp    0x437ac2
437a1b:	56                   	push   %esi
437a1c:	8b 75 10             	mov    0x10(%ebp),%esi
437a1f:	85 f6                	test   %esi,%esi
437a21:	75 13                	jne    0x437a36
437a23:	e8 40 13 ff ff       	call   0x428d68
437a28:	89 18                	mov    %ebx,(%eax)
437a2a:	e8 c7 15 ff ff       	call   0x428ff6
437a2f:	8b c3                	mov    %ebx,%eax
437a31:	e9 8b 00 00 00       	jmp    0x437ac1
437a36:	8b 45 d4             	mov    -0x2c(%ebp),%eax
437a39:	33 c9                	xor    %ecx,%ecx
437a3b:	48                   	dec    %eax
437a3c:	83 7d d0 2d          	cmpl   $0x2d,-0x30(%ebp)
437a40:	89 45 e0             	mov    %eax,-0x20(%ebp)
437a43:	0f 94 c1             	sete   %cl
437a46:	83 c8 ff             	or     $0xffffffff,%eax
437a49:	8d 1c 39             	lea    (%ecx,%edi,1),%ebx
437a4c:	3b f0                	cmp    %eax,%esi
437a4e:	74 04                	je     0x437a54
437a50:	8b c6                	mov    %esi,%eax
437a52:	2b c1                	sub    %ecx,%eax
437a54:	8d 4d d0             	lea    -0x30(%ebp),%ecx
437a57:	51                   	push   %ecx
437a58:	ff 75 14             	push   0x14(%ebp)
437a5b:	50                   	push   %eax
437a5c:	53                   	push   %ebx
437a5d:	e8 c5 19 00 00       	call   0x439427
437a62:	83 c4 10             	add    $0x10,%esp
437a65:	85 c0                	test   %eax,%eax
437a67:	74 05                	je     0x437a6e
437a69:	c6 07 00             	movb   $0x0,(%edi)
437a6c:	eb 53                	jmp    0x437ac1
437a6e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
437a71:	48                   	dec    %eax
437a72:	39 45 e0             	cmp    %eax,-0x20(%ebp)
437a75:	0f 9c c1             	setl   %cl
437a78:	83 f8 fc             	cmp    $0xfffffffc,%eax
437a7b:	7c 2b                	jl     0x437aa8
437a7d:	3b 45 14             	cmp    0x14(%ebp),%eax
437a80:	7d 26                	jge    0x437aa8
437a82:	84 c9                	test   %cl,%cl
437a84:	74 0a                	je     0x437a90
437a86:	8a 03                	mov    (%ebx),%al
437a88:	43                   	inc    %ebx
437a89:	84 c0                	test   %al,%al
437a8b:	75 f9                	jne    0x437a86
437a8d:	88 43 fe             	mov    %al,-0x2(%ebx)
437a90:	ff 75 1c             	push   0x1c(%ebp)
437a93:	8d 45 d0             	lea    -0x30(%ebp),%eax
437a96:	6a 01                	push   $0x1
437a98:	50                   	push   %eax
437a99:	ff 75 14             	push   0x14(%ebp)
437a9c:	56                   	push   %esi
437a9d:	57                   	push   %edi
437a9e:	e8 83 fd ff ff       	call   0x437826
437aa3:	83 c4 18             	add    $0x18,%esp
437aa6:	eb 19                	jmp    0x437ac1
437aa8:	ff 75 1c             	push   0x1c(%ebp)
437aab:	8d 45 d0             	lea    -0x30(%ebp),%eax
437aae:	6a 01                	push   $0x1
437ab0:	50                   	push   %eax
437ab1:	ff 75 18             	push   0x18(%ebp)
437ab4:	ff 75 14             	push   0x14(%ebp)
437ab7:	56                   	push   %esi
437ab8:	57                   	push   %edi
437ab9:	e8 49 fb ff ff       	call   0x437607
437abe:	83 c4 1c             	add    $0x1c,%esp
437ac1:	5e                   	pop    %esi
437ac2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
437ac5:	5f                   	pop    %edi
437ac6:	33 cd                	xor    %ebp,%ecx
437ac8:	5b                   	pop    %ebx
437ac9:	e8 68 4d ff ff       	call   0x42c836
437ace:	8b e5                	mov    %ebp,%esp
437ad0:	5d                   	pop    %ebp
437ad1:	c3                   	ret
437ad2:	55                   	push   %ebp
437ad3:	8b ec                	mov    %esp,%ebp
437ad5:	6a 00                	push   $0x0
437ad7:	ff 75 08             	push   0x8(%ebp)
437ada:	e8 04 00 00 00       	call   0x437ae3
437adf:	59                   	pop    %ecx
437ae0:	59                   	pop    %ecx
437ae1:	5d                   	pop    %ebp
437ae2:	c3                   	ret
437ae3:	55                   	push   %ebp
437ae4:	8b ec                	mov    %esp,%ebp
437ae6:	83 ec 10             	sub    $0x10,%esp
437ae9:	57                   	push   %edi
437aea:	ff 75 0c             	push   0xc(%ebp)
437aed:	8d 4d f0             	lea    -0x10(%ebp),%ecx
437af0:	e8 c0 b5 fe ff       	call   0x4230b5
437af5:	8b 55 08             	mov    0x8(%ebp),%edx
437af8:	8b 7d f0             	mov    -0x10(%ebp),%edi
437afb:	8a 0a                	mov    (%edx),%cl
437afd:	84 c9                	test   %cl,%cl
437aff:	74 15                	je     0x437b16
437b01:	8b 87 84 00 00 00    	mov    0x84(%edi),%eax
437b07:	8b 00                	mov    (%eax),%eax
437b09:	8a 00                	mov    (%eax),%al
437b0b:	3a c8                	cmp    %al,%cl
437b0d:	74 07                	je     0x437b16
437b0f:	42                   	inc    %edx
437b10:	8a 0a                	mov    (%edx),%cl
437b12:	84 c9                	test   %cl,%cl
437b14:	75 f5                	jne    0x437b0b
437b16:	8a 02                	mov    (%edx),%al
437b18:	42                   	inc    %edx
437b19:	84 c0                	test   %al,%al
437b1b:	74 34                	je     0x437b51
437b1d:	eb 09                	jmp    0x437b28
437b1f:	3c 65                	cmp    $0x65,%al
437b21:	74 0b                	je     0x437b2e
437b23:	3c 45                	cmp    $0x45,%al
437b25:	74 07                	je     0x437b2e
437b27:	42                   	inc    %edx
437b28:	8a 02                	mov    (%edx),%al
437b2a:	84 c0                	test   %al,%al
437b2c:	75 f1                	jne    0x437b1f
437b2e:	56                   	push   %esi
437b2f:	8b f2                	mov    %edx,%esi
437b31:	4a                   	dec    %edx
437b32:	80 3a 30             	cmpb   $0x30,(%edx)
437b35:	74 fa                	je     0x437b31
437b37:	8b 87 84 00 00 00    	mov    0x84(%edi),%eax
437b3d:	8b 08                	mov    (%eax),%ecx
437b3f:	8a 02                	mov    (%edx),%al
437b41:	3a 01                	cmp    (%ecx),%al
437b43:	75 01                	jne    0x437b46
437b45:	4a                   	dec    %edx
437b46:	8a 06                	mov    (%esi),%al
437b48:	42                   	inc    %edx
437b49:	46                   	inc    %esi
437b4a:	88 02                	mov    %al,(%edx)
437b4c:	84 c0                	test   %al,%al
437b4e:	75 f6                	jne    0x437b46
437b50:	5e                   	pop    %esi
437b51:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
437b55:	5f                   	pop    %edi
437b56:	74 07                	je     0x437b5f
437b58:	8b 45 f8             	mov    -0x8(%ebp),%eax
437b5b:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
437b5f:	8b e5                	mov    %ebp,%esp
437b61:	5d                   	pop    %ebp
437b62:	c3                   	ret
437b63:	55                   	push   %ebp
437b64:	8b ec                	mov    %esp,%ebp
437b66:	6a 00                	push   $0x0
437b68:	ff 75 10             	push   0x10(%ebp)
437b6b:	ff 75 0c             	push   0xc(%ebp)
437b6e:	ff 75 08             	push   0x8(%ebp)
437b71:	e8 05 00 00 00       	call   0x437b7b
437b76:	83 c4 10             	add    $0x10,%esp
437b79:	5d                   	pop    %ebp
437b7a:	c3                   	ret
437b7b:	55                   	push   %ebp
437b7c:	8b ec                	mov    %esp,%ebp
437b7e:	51                   	push   %ecx
437b7f:	51                   	push   %ecx
437b80:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
437b84:	ff 75 14             	push   0x14(%ebp)
437b87:	ff 75 10             	push   0x10(%ebp)
437b8a:	74 19                	je     0x437ba5
437b8c:	8d 45 f8             	lea    -0x8(%ebp),%eax
437b8f:	50                   	push   %eax
437b90:	e8 bd e5 ff ff       	call   0x436152
437b95:	8b 4d 0c             	mov    0xc(%ebp),%ecx
437b98:	8b 45 f8             	mov    -0x8(%ebp),%eax
437b9b:	89 01                	mov    %eax,(%ecx)
437b9d:	8b 45 fc             	mov    -0x4(%ebp),%eax
437ba0:	89 41 04             	mov    %eax,0x4(%ecx)
437ba3:	eb 11                	jmp    0x437bb6
437ba5:	8d 45 08             	lea    0x8(%ebp),%eax
437ba8:	50                   	push   %eax
437ba9:	e8 32 e6 ff ff       	call   0x4361e0
437bae:	8b 4d 0c             	mov    0xc(%ebp),%ecx
437bb1:	8b 45 08             	mov    0x8(%ebp),%eax
437bb4:	89 01                	mov    %eax,(%ecx)
437bb6:	83 c4 0c             	add    $0xc,%esp
437bb9:	8b e5                	mov    %ebp,%esp
437bbb:	5d                   	pop    %ebp
437bbc:	c3                   	ret
437bbd:	55                   	push   %ebp
437bbe:	8b ec                	mov    %esp,%ebp
437bc0:	6a 00                	push   $0x0
437bc2:	ff 75 08             	push   0x8(%ebp)
437bc5:	e8 04 00 00 00       	call   0x437bce
437bca:	59                   	pop    %ecx
437bcb:	59                   	pop    %ecx
437bcc:	5d                   	pop    %ebp
437bcd:	c3                   	ret
437bce:	55                   	push   %ebp
437bcf:	8b ec                	mov    %esp,%ebp
437bd1:	83 ec 10             	sub    $0x10,%esp
437bd4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
437bd7:	56                   	push   %esi
437bd8:	ff 75 0c             	push   0xc(%ebp)
437bdb:	e8 d5 b4 fe ff       	call   0x4230b5
437be0:	8b 75 08             	mov    0x8(%ebp),%esi
437be3:	0f be 06             	movsbl (%esi),%eax
437be6:	50                   	push   %eax
437be7:	e8 30 d4 fe ff       	call   0x42501c
437bec:	83 f8 65             	cmp    $0x65,%eax
437bef:	eb 0c                	jmp    0x437bfd
437bf1:	46                   	inc    %esi
437bf2:	0f b6 06             	movzbl (%esi),%eax
437bf5:	50                   	push   %eax
437bf6:	e8 a4 c2 fe ff       	call   0x423e9f
437bfb:	85 c0                	test   %eax,%eax
437bfd:	59                   	pop    %ecx
437bfe:	75 f1                	jne    0x437bf1
437c00:	0f be 06             	movsbl (%esi),%eax
437c03:	50                   	push   %eax
437c04:	e8 13 d4 fe ff       	call   0x42501c
437c09:	59                   	pop    %ecx
437c0a:	83 f8 78             	cmp    $0x78,%eax
437c0d:	75 03                	jne    0x437c12
437c0f:	83 c6 02             	add    $0x2,%esi