43888e:	75 08                	jne    0x438898
438890:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438893:	e8 7f d6 ff ff       	call   0x435f17
438898:	8b 03                	mov    (%ebx),%eax
43889a:	ff 75 12             	push   0x12(%ebp)
43889d:	6a 48                	push   $0x48
43889f:	8b 70 10             	mov    0x10(%eax),%esi
4388a2:	8b ce                	mov    %esi,%ecx
4388a4:	ff 15 54 43 49 00    	call   *0x494354
4388aa:	8b cb                	mov    %ebx,%ecx
4388ac:	ff d6                	call   *%esi
4388ae:	84 c0                	test   %al,%al
4388b0:	74 18                	je     0x4388ca
4388b2:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4388b5:	e8 87 c1 ff ff       	call   0x434a41
4388ba:	8d 45 14             	lea    0x14(%ebp),%eax
4388bd:	50                   	push   %eax
4388be:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4388c1:	e8 7a 25 00 00       	call   0x43ae40
4388c6:	84 c0                	test   %al,%al
4388c8:	74 c0                	je     0x43888a
4388ca:	8d 45 14             	lea    0x14(%ebp),%eax
4388cd:	50                   	push   %eax
4388ce:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4388d1:	e8 6a 25 00 00       	call   0x43ae40
4388d6:	84 c0                	test   %al,%al
4388d8:	74 08                	je     0x4388e2
4388da:	83 0f 02             	orl    $0x2,(%edi)
4388dd:	e9 ce 00 00 00       	jmp    0x4389b0
4388e2:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
4388e6:	75 08                	jne    0x4388f0
4388e8:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4388eb:	e8 27 d6 ff ff       	call   0x435f17
4388f0:	8b 03                	mov    (%ebx),%eax
4388f2:	ff 75 12             	push   0x12(%ebp)
4388f5:	6a 04                	push   $0x4
4388f7:	8b 70 10             	mov    0x10(%eax),%esi
4388fa:	8b ce                	mov    %esi,%ecx
4388fc:	ff 15 54 43 49 00    	call   *0x494354
438902:	8b cb                	mov    %ebx,%ecx
438904:	ff d6                	call   *%esi
438906:	84 c0                	test   %al,%al
438908:	75 27                	jne    0x438931
43890a:	83 7d ec 04          	cmpl   $0x4,-0x14(%ebp)
43890e:	75 ca                	jne    0x4388da
438910:	ff 75 24             	push   0x24(%ebp)
438913:	8b 4d f0             	mov    -0x10(%ebp),%ecx
438916:	8d 45 e0             	lea    -0x20(%ebp),%eax
438919:	57                   	push   %edi
43891a:	ff 75 1c             	push   0x1c(%ebp)
43891d:	ff 75 18             	push   0x18(%ebp)
438920:	ff 75 14             	push   0x14(%ebp)
438923:	ff 75 10             	push   0x10(%ebp)
438926:	ff 75 0c             	push   0xc(%ebp)
438929:	50                   	push   %eax
43892a:	e8 e8 25 00 00       	call   0x43af17
43892f:	eb 74                	jmp    0x4389a5
438931:	8b 45 ec             	mov    -0x14(%ebp),%eax
438934:	83 f8 04             	cmp    $0x4,%eax
438937:	75 25                	jne    0x43895e
438939:	8b 75 24             	mov    0x24(%ebp),%esi
43893c:	8d 45 14             	lea    0x14(%ebp),%eax
43893f:	53                   	push   %ebx
438940:	83 c6 10             	add    $0x10,%esi
438943:	56                   	push   %esi
438944:	6a 0c                	push   $0xc
438946:	6a 01                	push   $0x1
438948:	50                   	push   %eax
438949:	8d 45 0c             	lea    0xc(%ebp),%eax
43894c:	50                   	push   %eax
43894d:	ff 75 f0             	push   -0x10(%ebp)
438950:	e8 9d a7 ff ff       	call   0x4330f2
438955:	09 07                	or     %eax,(%edi)
438957:	83 c4 1c             	add    $0x1c,%esp
43895a:	ff 0e                	decl   (%esi)
43895c:	eb 52                	jmp    0x4389b0
43895e:	83 f8 03             	cmp    $0x3,%eax
438961:	75 23                	jne    0x438986
438963:	8b 45 24             	mov    0x24(%ebp),%eax
438966:	53                   	push   %ebx
438967:	83 c0 0c             	add    $0xc,%eax
43896a:	50                   	push   %eax
43896b:	6a 1f                	push   $0x1f
43896d:	6a 01                	push   $0x1
43896f:	8d 45 14             	lea    0x14(%ebp),%eax
438972:	50                   	push   %eax
438973:	8d 45 0c             	lea    0xc(%ebp),%eax
438976:	50                   	push   %eax
438977:	ff 75 f0             	push   -0x10(%ebp)
43897a:	e8 73 a7 ff ff       	call   0x4330f2
43897f:	83 c4 1c             	add    $0x1c,%esp
438982:	09 07                	or     %eax,(%edi)
438984:	eb 2a                	jmp    0x4389b0
438986:	ff 75 24             	push   0x24(%ebp)
438989:	8b 4d f0             	mov    -0x10(%ebp),%ecx
43898c:	8d 45 d8             	lea    -0x28(%ebp),%eax
43898f:	57                   	push   %edi
438990:	ff 75 1c             	push   0x1c(%ebp)
438993:	ff 75 18             	push   0x18(%ebp)
438996:	ff 75 14             	push   0x14(%ebp)
438999:	ff 75 10             	push   0x10(%ebp)
43899c:	ff 75 0c             	push   0xc(%ebp)
43899f:	50                   	push   %eax
4389a0:	e8 52 26 00 00       	call   0x43aff7
4389a5:	8b 08                	mov    (%eax),%ecx
4389a7:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4389aa:	8b 40 04             	mov    0x4(%eax),%eax
4389ad:	89 45 10             	mov    %eax,0x10(%ebp)
4389b0:	8d 45 14             	lea    0x14(%ebp),%eax
4389b3:	50                   	push   %eax
4389b4:	8d 4d 0c             	lea    0xc(%ebp),%ecx
4389b7:	e8 84 24 00 00       	call   0x43ae40
4389bc:	84 c0                	test   %al,%al
4389be:	74 03                	je     0x4389c3
4389c0:	83 0f 01             	orl    $0x1,(%edi)
4389c3:	8b 45 08             	mov    0x8(%ebp),%eax
4389c6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4389c9:	89 08                	mov    %ecx,(%eax)
4389cb:	8b 4d 10             	mov    0x10(%ebp),%ecx
4389ce:	89 48 04             	mov    %ecx,0x4(%eax)
4389d1:	e8 3d 70 00 00       	call   0x43fa13
4389d6:	c2 20 00             	ret    $0x20
4389d9:	6a 1c                	push   $0x1c
4389db:	b8 b1 25 49 00       	mov    $0x4925b1,%eax
4389e0:	e8 65 70 00 00       	call   0x43fa4a
4389e5:	8b f1                	mov    %ecx,%esi
4389e7:	89 75 f0             	mov    %esi,-0x10(%ebp)
4389ea:	8b 45 1c             	mov    0x1c(%ebp),%eax
4389ed:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4389f0:	ff 70 30             	push   0x30(%eax)
4389f3:	e8 44 04 ff ff       	call   0x428e3c
4389f8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4389fc:	8d 45 e8             	lea    -0x18(%ebp),%eax
4389ff:	50                   	push   %eax
438a00:	e8 5d 03 fd ff       	call   0x408d62
438a05:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
438a09:	8b d8                	mov    %eax,%ebx
438a0b:	59                   	pop    %ecx
438a0c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
438a0f:	e8 d3 69 fd ff       	call   0x40f3e7
438a14:	8b ce                	mov    %esi,%ecx
438a16:	e8 0f e6 ff ff       	call   0x43702a
438a1b:	8b f0                	mov    %eax,%esi
438a1d:	89 75 ec             	mov    %esi,-0x14(%ebp)
438a20:	85 f6                	test   %esi,%esi
438a22:	75 07                	jne    0x438a2b
438a24:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
438a2b:	8d 45 14             	lea    0x14(%ebp),%eax
438a2e:	50                   	push   %eax
438a2f:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438a32:	e8 bd 81 fe ff       	call   0x420bf4
438a37:	8b 7d 20             	mov    0x20(%ebp),%edi
438a3a:	84 c0                	test   %al,%al
438a3c:	0f 85 09 01 00 00    	jne    0x438b4b
438a42:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
438a46:	75 08                	jne    0x438a50
438a48:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438a4b:	e8 45 3a fe ff       	call   0x41c495
438a50:	8b 03                	mov    (%ebx),%eax
438a52:	ff 75 12             	push   0x12(%ebp)
438a55:	6a 04                	push   $0x4
438a57:	8b 70 10             	mov    0x10(%eax),%esi
438a5a:	8b ce                	mov    %esi,%ecx
438a5c:	ff 15 54 43 49 00    	call   *0x494354
438a62:	8b cb                	mov    %ebx,%ecx
438a64:	ff d6                	call   *%esi
438a66:	84 c0                	test   %al,%al
438a68:	75 30                	jne    0x438a9a
438a6a:	8b 45 24             	mov    0x24(%ebp),%eax
438a6d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
438a70:	50                   	push   %eax
438a71:	57                   	push   %edi
438a72:	ff 75 1c             	push   0x1c(%ebp)
438a75:	8d 45 e8             	lea    -0x18(%ebp),%eax
438a78:	ff 75 18             	push   0x18(%ebp)
438a7b:	ff 75 14             	push   0x14(%ebp)
438a7e:	ff 75 10             	push   0x10(%ebp)
438a81:	ff 75 0c             	push   0xc(%ebp)
438a84:	50                   	push   %eax
438a85:	e8 c5 24 00 00       	call   0x43af4f
438a8a:	6a 02                	push   $0x2
438a8c:	5e                   	pop    %esi
438a8d:	8b 08                	mov    (%eax),%ecx
438a8f:	89 4d 0c             	mov    %ecx,0xc(%ebp)
438a92:	8b 40 04             	mov    0x4(%eax),%eax
438a95:	89 75 ec             	mov    %esi,-0x14(%ebp)
438a98:	eb 7c                	jmp    0x438b16
438a9a:	8b 75 ec             	mov    -0x14(%ebp),%esi
438a9d:	83 fe 02             	cmp    $0x2,%esi
438aa0:	75 28                	jne    0x438aca
438aa2:	8b 75 24             	mov    0x24(%ebp),%esi
438aa5:	8d 45 14             	lea    0x14(%ebp),%eax
438aa8:	53                   	push   %ebx
438aa9:	83 c6 10             	add    $0x10,%esi
438aac:	56                   	push   %esi
438aad:	6a 0c                	push   $0xc
438aaf:	6a 01                	push   $0x1
438ab1:	50                   	push   %eax
438ab2:	8d 45 0c             	lea    0xc(%ebp),%eax
438ab5:	50                   	push   %eax
438ab6:	ff 75 f0             	push   -0x10(%ebp)
438ab9:	e8 e4 a7 ff ff       	call   0x4332a2
438abe:	09 07                	or     %eax,(%edi)
438ac0:	83 c4 1c             	add    $0x1c,%esp
438ac3:	ff 0e                	decl   (%esi)
438ac5:	e9 81 00 00 00       	jmp    0x438b4b
438aca:	8b 45 24             	mov    0x24(%ebp),%eax
438acd:	83 fe 01             	cmp    $0x1,%esi
438ad0:	75 1f                	jne    0x438af1
438ad2:	53                   	push   %ebx
438ad3:	83 c0 0c             	add    $0xc,%eax
438ad6:	50                   	push   %eax
438ad7:	6a 1f                	push   $0x1f
438ad9:	56                   	push   %esi
438ada:	8d 45 14             	lea    0x14(%ebp),%eax
438add:	50                   	push   %eax
438ade:	8d 45 0c             	lea    0xc(%ebp),%eax
438ae1:	50                   	push   %eax
438ae2:	ff 75 f0             	push   -0x10(%ebp)
438ae5:	e8 b8 a7 ff ff       	call   0x4332a2
438aea:	83 c4 1c             	add    $0x1c,%esp
438aed:	09 07                	or     %eax,(%edi)
438aef:	eb 5a                	jmp    0x438b4b
438af1:	8b 4d f0             	mov    -0x10(%ebp),%ecx
438af4:	50                   	push   %eax
438af5:	57                   	push   %edi
438af6:	ff 75 1c             	push   0x1c(%ebp)
438af9:	8d 45 e0             	lea    -0x20(%ebp),%eax
438afc:	ff 75 18             	push   0x18(%ebp)
438aff:	ff 75 14             	push   0x14(%ebp)
438b02:	ff 75 10             	push   0x10(%ebp)
438b05:	ff 75 0c             	push   0xc(%ebp)
438b08:	50                   	push   %eax
438b09:	e8 21 25 00 00       	call   0x43b02f
438b0e:	8b 08                	mov    (%eax),%ecx
438b10:	89 4d 0c             	mov    %ecx,0xc(%ebp)
438b13:	8b 40 04             	mov    0x4(%eax),%eax
438b16:	89 45 10             	mov    %eax,0x10(%ebp)
438b19:	eb 30                	jmp    0x438b4b
438b1b:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
438b1f:	75 08                	jne    0x438b29
438b21:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438b24:	e8 6c 39 fe ff       	call   0x41c495
438b29:	8b 03                	mov    (%ebx),%eax
438b2b:	ff 75 12             	push   0x12(%ebp)
438b2e:	6a 48                	push   $0x48
438b30:	8b 70 10             	mov    0x10(%eax),%esi
438b33:	8b ce                	mov    %esi,%ecx
438b35:	ff 15 54 43 49 00    	call   *0x494354
438b3b:	8b cb                	mov    %ebx,%ecx
438b3d:	ff d6                	call   *%esi
438b3f:	84 c0                	test   %al,%al
438b41:	74 18                	je     0x438b5b
438b43:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438b46:	e8 84 22 fe ff       	call   0x41adcf
438b4b:	8d 45 14             	lea    0x14(%ebp),%eax
438b4e:	50                   	push   %eax
438b4f:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438b52:	e8 9d 80 fe ff       	call   0x420bf4
438b57:	84 c0                	test   %al,%al
438b59:	74 c0                	je     0x438b1b
438b5b:	8d 45 14             	lea    0x14(%ebp),%eax
438b5e:	50                   	push   %eax
438b5f:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438b62:	e8 8d 80 fe ff       	call   0x420bf4
438b67:	84 c0                	test   %al,%al
438b69:	75 61                	jne    0x438bcc
438b6b:	38 45 10             	cmp    %al,0x10(%ebp)
438b6e:	75 08                	jne    0x438b78
438b70:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438b73:	e8 1d 39 fe ff       	call   0x41c495
438b78:	8b 03                	mov    (%ebx),%eax
438b7a:	6a 00                	push   $0x0
438b7c:	ff 75 12             	push   0x12(%ebp)
438b7f:	8b 70 38             	mov    0x38(%eax),%esi
438b82:	8b ce                	mov    %esi,%ecx
438b84:	ff 15 54 43 49 00    	call   *0x494354
438b8a:	8b cb                	mov    %ebx,%ecx
438b8c:	ff d6                	call   *%esi
438b8e:	3c 3a                	cmp    $0x3a,%al
438b90:	74 32                	je     0x438bc4
438b92:	3c 2c                	cmp    $0x2c,%al
438b94:	74 2e                	je     0x438bc4
438b96:	3c 2f                	cmp    $0x2f,%al
438b98:	75 32                	jne    0x438bcc
438b9a:	eb 28                	jmp    0x438bc4
438b9c:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
438ba0:	75 08                	jne    0x438baa
438ba2:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438ba5:	e8 eb 38 fe ff       	call   0x41c495
438baa:	8b 03                	mov    (%ebx),%eax
438bac:	ff 75 12             	push   0x12(%ebp)
438baf:	6a 48                	push   $0x48
438bb1:	8b 70 10             	mov    0x10(%eax),%esi
438bb4:	8b ce                	mov    %esi,%ecx
438bb6:	ff 15 54 43 49 00    	call   *0x494354
438bbc:	8b cb                	mov    %ebx,%ecx
438bbe:	ff d6                	call   *%esi
438bc0:	84 c0                	test   %al,%al
438bc2:	74 18                	je     0x438bdc
438bc4:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438bc7:	e8 03 22 fe ff       	call   0x41adcf
438bcc:	8d 45 14             	lea    0x14(%ebp),%eax
438bcf:	50                   	push   %eax
438bd0:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438bd3:	e8 1c 80 fe ff       	call   0x420bf4
438bd8:	84 c0                	test   %al,%al
438bda:	74 c0                	je     0x438b9c
438bdc:	8d 45 14             	lea    0x14(%ebp),%eax
438bdf:	50                   	push   %eax
438be0:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438be3:	e8 0c 80 fe ff       	call   0x420bf4
438be8:	84 c0                	test   %al,%al
438bea:	0f 85 f7 00 00 00    	jne    0x438ce7
438bf0:	38 45 10             	cmp    %al,0x10(%ebp)
438bf3:	75 08                	jne    0x438bfd
438bf5:	8d 4d 0c             	lea    0xc(%ebp),%ecx
438bf8:	e8 98 38 fe ff       	call   0x41c495
438bfd:	8b 03                	mov    (%ebx),%eax
438bff:	ff 75 12             	push   0x12(%ebp)
438c02:	6a 04                	push   $0x4
438c04:	8b 70 10             	mov    0x10(%eax),%esi
438c07:	8b ce                	mov    %esi,%ecx
438c09:	ff 15 54 43 49 00    	call   *0x494354
438c0f:	8b cb                	mov    %ebx,%ecx
438c11:	ff d6                	call   *%esi
438c13:	8b 75 ec             	mov    -0x14(%ebp),%esi
438c16:	84 c0                	test   %al,%al
438c18:	75 4b                	jne    0x438c65
438c1a:	83 fe 02             	cmp    $0x2,%esi
438c1d:	75 07                	jne    0x438c26
438c1f:	09 37                	or     %esi,(%edi)
438c21:	e9 c1 00 00 00       	jmp    0x438ce7
438c26:	ff 75 24             	push   0x24(%ebp)
438c29:	8b 4d f0             	mov    -0x10(%ebp),%ecx
438c2c:	8d 45 e0             	lea    -0x20(%ebp),%eax
438c2f:	57                   	push   %edi
438c30:	ff 75 1c             	push   0x1c(%ebp)
438c33:	ff 75 18             	push   0x18(%ebp)
438c36:	ff 75 14             	push   0x14(%ebp)
438c39:	ff 75 10             	push   0x10(%ebp)
438c3c:	ff 75 0c             	push   0xc(%ebp)
438c3f:	50                   	push   %eax
438c40:	e8 0a 23 00 00       	call   0x43af4f
438c45:	8b 08                	mov    (%eax),%ecx
438c47:	89 4d 0c             	mov    %ecx,0xc(%ebp)
438c4a:	8b 40 04             	mov    0x4(%eax),%eax
438c4d:	89 45 10             	mov    %eax,0x10(%ebp)
438c50:	83 fe 04             	cmp    $0x4,%esi
438c53:	0f 85 8e 00 00 00    	jne    0x438ce7